Construyendo un Sistema de Coincidencia de Talento Semántico Potenciado por IA

Resumen: En este artículo explicamos cómo diseñamos y desplegamos un motor de coincidencia de talento semántico que sustituye la búsqueda por palabras clave por una búsqueda basada en vectores y embeddings semánticos. La solución combina MongoDB Atlas Vector Search con embeddings de OpenAI text-embedding-3-small y una API backend en Node.js y TypeScript para ofrecer resultados más rápidos y más relevantes.

Motivación: Los motores tradicionales basados en palabras clave generan muchos falsos positivos y omiten candidatos relevantes cuando no coinciden literalmente con los términos de la oferta. En nuestro caso inicial la búsqueda por palabras clave devolvía resultados irrelevantes y tardaba alrededor de 12 segundos. Al usar embeddings de alta dimensión podemos capturar el significado de requisitos y habilidades, logrando una coincidencia semántica precisa con un tiempo de respuesta cercano a 1 segundo.

Arquitectura general: Las piezas clave son perfiles de usuario con embeddings almacenados en una colección userSkills, una biblioteca de embeddings de habilidades precomputados en una colección skillEmbedding y la generación de un embedding único para los requisitos del puesto. MongoDB Atlas realiza el indexado vectorial nativo, lo que evita usar una base de vectores externa y permite combinar filtros y búsqueda vectorial en la misma agregación.

Generación de embeddings: Utilizamos el modelo text-embedding-3-small de OpenAI para representar en 1536 dimensiones tanto el perfil profesional como la descripción del puesto y habilidades individuales. Para perfiles se agregan datos como nombre, email y lista de habilidades formateadas. Para ofertas se incluyen título del puesto, habilidades requeridas, nivel de experiencia, duración y notas adicionales. Las habilidades frecuentes se precomputan y almacenan para evitar costosas llamadas en tiempo de búsqueda.

Almacenamiento: userSkills almacena el embedding del perfil junto con una lista agregada de habilidades y metadatos de actualización. skillEmbedding guarda embeddings reutilizables por habilidad para acelerar el cálculo de relevancia por habilidad. El preprocesado de habilidades y el cacheo reduce latencias y coste de llamadas a la API de embeddings.

Indexado vectorial: En MongoDB Atlas se crea un índice vectorial sobre el campo embedding con similitud por coseno y numDimensions igual a 1536. La búsqueda vectorial devuelve un conjunto de candidatos por similitud y luego se realiza un lookup contra la colección de perfiles para aplicar filtros relacionados con disponibilidad, tipo de perfil y banderas de eliminación. Es importante aplicar esos filtros tras el lookup porque Vector Search solo puede filtrar sobre campos de la misma colección donde está el índice.

Pipeline y ranking: La agregación incluye la etapa de vector search, el lookup para obtener detalles de perfil, el filtrado posterior y la clasificación por vectorScore. Para producir etiquetas de ajuste comprensibles aplicamos percentiles: High Fit para el top 10, Good Fit para el top 10 a 30, Moderate Fit para el top 30 a 60, Low Fit para candidatos con puntuación mayor o igual a 0.5 y Not Fit para el resto. Este enfoque evita interpretaciones incorrectas cuando las puntuaciones absolutas varían.

Selección de habilidades relevantes: En lugar de mostrar todas las habilidades del candidato, calculamos la similitud entre las habilidades precomputadas y el embedding de la oferta y retornamos solo las 20 habilidades más relevantes por candidato. Prioriza coincidencias exactas y luego similitud semántica. Para optimizar rendimiento este cálculo solo se realiza sobre los candidatos finales que se paginan y se muestran al usuario.

Optimización de rendimiento: En la primera versión las búsquedas eran lentas porque se generaban embeddings en cada petición. Se mejoró considerablemente con las siguientes medidas: precomputar y cachear embeddings de habilidades, actualizar embeddings de perfil solo cuando el usuario modifica sus habilidades, y aplicar filtros de perfil después del lookup para reducir trabajo innecesario. El resultado fue una mejora de aproximadamente 12 veces en tiempo de respuesta.

Resultados: Antes la búsqueda tardaba cerca de 12 segundos con baja precisión por keywords. Después la búsqueda semántica reduce la latencia a alrededor de 1 segundo y ofrece coincidencias más relevantes que entienden equivalencias como comunicacion similar a colaboracion, resolucion de problemas similar a pensamiento analitico y frontend developer relacionado con React y JavaScript.

Stack tecnológico: Backend Node.js y TypeScript, base de datos MongoDB Atlas con Vector Search, embeddings de OpenAI text-embedding-3-small, ODM como Mongoose o Typegoose y métrica de similitud coseno.

Por qué elegirnos: En Q2BSTUDIO somos una empresa de desarrollo de software especializada en aplicaciones y software a medida, inteligencia artificial y ciberseguridad. Diseñamos soluciones que integran servicios cloud aws y azure, inteligencia de negocio y herramientas como power bi para transformar datos en decisiones. Si buscas una solución a medida para mejorar reclutamiento, automatizar procesos o potenciar agentes IA para tu empresa, podemos ayudarte a implementar un sistema semántico de matching y más.

Servicios relacionados: Ofrecemos desarrollo de aplicaciones y software a medida con enfoque en experiencia y escalabilidad. Con nuestros servicios de inteligencia artificial diseñamos pipelines de embeddings, agentes IA y modelos para ia para empresas. También implementamos arquitecturas seguras y auditorías con servicios de ciberseguridad y pentesting y migraciones seguras a la nube con servicios cloud aws y azure.

Conclusión: Migrar a una arquitectura vectorial con embeddings precomputados y búsqueda semántica transforma la calidad y velocidad de la coincidencia entre ofertas y candidatos. Q2BSTUDIO puede acompañar en todo el ciclo, desde el diseño del modelo de datos hasta la integración en producción, asegurando rendimiento, seguridad y alineación con objetivos de negocio como inteligencia de negocio, automatización de procesos y adopción de agentes IA.

Keywords: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.