Después de 25 años en desarrollo de software abordé un problema que hoy es cada vez más común: implementar un sistema RAG producción listo para búsqueda de currículums usando AWS Bedrock Knowledge Bases. El caso de uso fue búsqueda de candidatos en una base de datos de reclutamiento y los resultados fueron lo bastante relevantes como para compartir lo que funcionó, lo que no funcionó y las trampas que encontré.
El problema: la búsqueda por palabras clave no es suficiente. Los reclutadores se ahogaban en trabajo manual. Hacían búsquedas por palabras clave en la base de currículums y luego pasaban horas filtrando resultados para casar candidatos con descripciones de puestos. El problema central es que la búsqueda basada en palabras no entiende contexto ni significado semántico. Una descripción que pide experiencia en frontend con frameworks modernos de JavaScript puede no encontrar candidatos excelentes que en su CV indiquen React developer o Vue.js specialist si no coinciden las palabras literales. El resultado era que búsquedas que deberían tardar una hora llevaban 2 días o más para compilar una lista de calidad.
La solución: AWS Bedrock Knowledge Base con búsqueda semántica. En lugar de pedir a los reclutadores que hicieran búsquedas más complejas, invertimos el problema. El sistema toma la descripción del puesto, genera una consulta semántica optimizada y busca en la knowledge base candidatos cuya experiencia realmente coincida con lo que el rol necesita, no solo con las palabras usadas para describirlo.
Arquitectura resumida: fuente de datos Bullhorn ATS, transformación de datos exportando currículums y convirtiéndolos a archivos Markdown con notas del reclutador incrustadas para contexto adicional, almacenamiento en S3, vector store en AWS Bedrock Knowledge Base con OpenSearch Serverless, embeddings con Cohere Embed y procesamiento de consultas convirtiendo descripciones de puesto en prompts optimizados antes de consultar. La transformación a Markdown fue crítica para mantener un formato limpio y consistente y preservar el contexto del reclutador que muchas veces marca la diferencia entre técnicamente cualificado y realmente encajable.
Estrategia de chunking que funcionó. Tras mucho ensayo y error dejé atrás el splitting semántico y adopté chunks de tamaño fijo con solapamiento. Lo que intenté al principio con separación por significado mantuvo la coherencia de contenido, pero los resultados se sintieron dispersos: aparecían fragmentos de toda la trayectoria de una persona en vez de las partes relevantes.
Lo que funcionó: chunks de 400 caracteres con 20% de solapamiento. Por qué funcionó mejor: la consistencia importa para la búsqueda vectorial. Los chunks de tamaño fijo generan embeddings más uniformes y resultados de búsqueda más predecibles. El solapamiento evita pérdida de contexto cuando una calificación clave cruza el límite entre dos chunks. Chunks más cortos aportan coincidencias más precisas; a 400 caracteres cada fragmento representa una pieza enfocada de la experiencia del candidato y cuando una consulta coincide se obtiene contexto específico en vez de una historia laboral completa. La mejora fue notable de inmediato: resultados más centrados y secciones relevantes del currículum subían consistentemente a la cima.
Metadatos: qué importó y qué no. La búsqueda semántica cruda es buena; la búsqueda semántica combinada con filtrado por metadatos es transformadora. Metadatos que adjuntamos a cada chunk: título del puesto, departamento, reclutador que lo trajo, habilidades extraídas, empresas, educación, ubicación y correo electrónico. Lo que realmente marcó la diferencia fueron los filtros por departamento, habilidades y ubicación. Filtrar por departamento redujo ruido inmediatamente. Cuando se busca un puesto en finanzas no interesa que aparezcan perfiles creativos que mencionan budgets en otro contexto. Las habilidades permiten combinar búsqueda semántica con requisitos técnicos duros, por ejemplo encontrar candidatos cuyo fondo coincide con la descripción y que además listan Python y AWS en sus skills. El filtrado por ubicación es esencial cuando el puesto no es remoto. Los demás campos son útiles en la capa de aplicación pero no impulsan la recuperación tanto como los anteriores.
Resultados reales: de 2 días o más a 2 horas. Antes, compilar una lista de candidatos de calidad para un rol especializado llevaba 2 días o más de trabajo de reclutamiento. Después, la misma tarea se completaba en 2 horas. El reclutador revisa la descripción del puesto, el sistema devuelve candidatos ordenados con la experiencia relevante destacada y el reclutador invierte su tiempo en evaluación real en vez de búsquedas arqueológicas. En validación de calidad, los candidatos finalmente contratados aparecían en la mayoría de casos entre los primeros resultados, así que el sistema no solo fue más rápido sino que encontró a las personas correctas.
La mayor trampa: estrategia de indexado. Mi primera implementación enviaba documentos inline vía API a Bedrock. Funcionaba, pero el indexado era lentísimo, tardando días en procesar y indexar currículums desde Bullhorn. Una decisión importante fue indexar solo currículums actualizados en los últimos 2 años, porque fuera de ese rango la relevancia baja rápidamente. La solución que aceleró el proceso fue un pipeline en dos pasos: exportar desde Bullhorn filtrando por los últimos 2 años, transformar a Markdown incrustando notas del reclutador, almacenar en S3 y apuntar la Knowledge Base al bucket. Resultado: el tiempo de indexado cayó de días a horas.
Por qué funcionó mejor: las Knowledge Bases de AWS Bedrock están optimizadas para flujos de trabajo basados en S3 y pueden paralelizar el procesamiento de ficheros más eficientemente que el manejo de contenido inline por API. Markdown aportó estructura y consistencia frente a formatos variados como PDF o Word, lo que mejoró velocidad y calidad de indexado. Las notas del reclutador añadieron contexto humano importante, permitiendo a la búsqueda semántica capturar soft skills y estilo de trabajo además de habilidades técnicas.
Qué mejoraría todavía. El sistema es de producción pero sigue siendo perfeccionable: dimensionado dinámico de chunks según tipo de contenido, mejor manejo de acrónimos y jerga de la industria para evitar falsos negativos entre K8s y Kubernetes, y optimización de prompts según el tipo de rol. Cada categoría profesional puede beneficiarse de distintas formulaciones de consulta.
Lecciones aprendidas: empezar con chunking de tamaño fijo porque es más simple, predecible y fácil de afinar; el solapamiento es rentable, 20% evita pérdida de contexto; el filtrado por metadatos es imprescindible para poner el sistema en producción; transformar los datos a un formato consistente como Markdown antes de indexar mejora velocidad y calidad; usar S3 desde el primer día evita el dolor de indexado inline; incrustar contexto humano siempre que sea posible; y medir lo que importa, por ejemplo tiempo hasta lista de candidatos y tasas de colocación, porque esas métricas prueban el valor del sistema y guían la priorización de mejoras.
Si tu empresa necesita ayuda para implementar Knowledge Bases con AWS Bedrock, optimizar un sistema RAG o desarrollar soluciones de inteligencia artificial para selección de talento, en Q2BSTUDIO somos especialistas en desarrollo de software a medida, aplicaciones a medida y soluciones de inteligencia artificial para empresas. Ofrecemos consultoría e implementación completa, incluyendo integración con ATS, pipelines de transformación, almacenamiento en la nube y optimización de modelos. Si buscas soporte en arquitectura cloud y despliegue en AWS o Azure también podemos ayudarte con nuestros servicios cloud aws y azure y con prácticas de ciberseguridad y pentesting para proteger tus datos.
En Q2BSTUDIO combinamos experiencia en software a medida, servicios inteligencia de negocio y power bi con soluciones de agentes IA y automatización para empresas. Si quieres explorar cómo un sistema RAG puede transformar tu proceso de reclutamiento o mejorar búsquedas internas, hablamos y adaptamos una solución a tus necesidades. Conoce nuestro enfoque en servicios cloud y modernización de infraestructuras en servicios cloud aws y azure y descubre nuestras capacidades en inteligencia artificial y ofertas de ia para empresas en soluciones de inteligencia artificial.
En resumen, implementar sistemas RAG con AWS Bedrock no es ciencia espacial, pero los detalles importan. La diferencia entre resultados aceptables y una herramienta que los reclutadores usan a diario suele reducirse a la estrategia de chunking, el diseño de metadatos, la transformación de datos y las decisiones de infraestructura. Para casos de uso de reclutamiento, búsqueda documental, atención al cliente o recuperación de conocimiento, los principios son transferibles: empieza simple, mide resultados y optimiza según lo que tus usuarios necesitan. Si trabajas con datos de un ATS, CRM o sistemas heterogéneos invierte tiempo en un pipeline de transformación limpio. Compensa con creces.


