---
Por qué era necesario: la primera alarma en Slack
Un día en Slack, vimos un mensaje de uno de nuestros reclutadores: "Parece que la IA no entiende lo que significa ser un desarrollador Senior de Go". No era solo una queja; esto afectaba a todo nuestro sistema de selección de personal. Comenzamos a darnos cuenta de que los errores en la evaluación de candidatos podían llevar a una pérdida de tiempo y recursos para nuestro equipo y las empresas con las que trabajamos.
Contexto del problema
En el mundo actual, el reclutamiento requiere una alta precisión. Buscábamos utilizar la IA para automatizar la evaluación de candidatos, pero con cada nueva solicitud nos encontrábamos con problemas crecientes de alucinaciones de IA. Candidatos que claramente no cumplían con los requisitos avanzaban a la siguiente etapa. Esto generaba descontento entre los reclutadores y disminuía la confianza en nuestra plataforma.
Problema en detalle
Uno de los ejemplos más destacados fue un currículum reciente que llegó a nuestro sistema. El candidato afirmaba tener 10 años de experiencia en Go, pero en su perfil no había menciones de proyectos o tecnologías específicas relacionadas con esta plataforma. La IA lo clasificó como un candidato fuerte, pero al analizarlo más a fondo, nos dimos cuenta de que era simplemente una alucinación.
Primeros intentos de solución
Nuestro primer intento incluyó el uso de palabras clave simples para filtrar currículums. Sin embargo, como demostró la práctica, esto no resolvía el problema. Candidatos con experiencia insuficiente seguían ingresando al sistema. Incluso consideramos implementar pruebas en múltiples niveles, pero esto aumentaba el tiempo y los recursos dedicados a la selección.
Enfoque técnico
Finalmente, decidimos combinar varios enfoques. Añadimos filtros deterministas que verificaban la presencia de tecnologías y proyectos específicos en los currículums. También implementamos un análisis de señales de calificación que consideraba no solo la experiencia, sino también la participación en proyectos de código abierto o publicaciones. Como complemento, utilizamos explicaciones en caché de GPT para un análisis más profundo.
func filterCandidates(candidates []Candidate) []Candidate {
var qualified []Candidate
for _, candidate := range candidates {
if hasRelevantExperience(candidate) && isSenior(candidate) {
qualified = append(qualified, candidate)
}
}
return qualified
}
Qué ha cambiado en el producto
Después de implementar nuevos filtros y métodos de análisis, notamos una disminución significativa en el número de candidatos con expectativas injustificadas. Esto permitió a los reclutadores centrarse en especialistas realmente calificados, mejorando así la calidad de la selección. También actualizamos las páginas /jobs y /for-companies para reflejar el nuevo enfoque en la evaluación de candidatos.
Lo que hemos aprendido
- La verificación de hechos es más importante de lo que parece. Las palabras clave simples no proporcionan una imagen precisa.
- Los filtros deterministas pueden mejorar significativamente la calidad de los resultados.
- La retroalimentación de los reclutadores es clave para mejorar los procesos.
- El uso de datos en caché permite reducir el tiempo de procesamiento de solicitudes.
Qué significa esto para los candidatos
Para los candidatos, esto significa que sus currículums serán analizados teniendo en cuenta habilidades y experiencia reales. Buscamos crear un sistema de selección más justo y transparente, donde sus logros sean valorados adecuadamente. Esto también significa que los candidatos tendrán mayores posibilidades de conseguir una entrevista si su calificación se ajusta a los requisitos.
Qué significa esto para los reclutadores
Los reclutadores pueden estar seguros de que el sistema filtra eficazmente a los candidatos, lo que les permite centrarse en aspectos más importantes de su trabajo. Esto ahorrará tiempo y mejorará la calidad de la contratación. Además, podrán proporcionar recomendaciones de mayor calidad basadas en datos precisos.
Próximos pasos
A pesar del progreso logrado, entendemos que el trabajo no ha terminado. Seguimos supervisando la calidad del análisis y estamos listos para realizar cambios en los algoritmos si es necesario. Si tuviéramos la oportunidad de volver al principio, podríamos haber integrado inmediatamente métodos de análisis más complejos para evitar las dificultades iniciales. ---