RR. HH.: clasificación de CV automatizado
Para clasificar currículums localmente, extrae el texto con PyMuPDF, oculta la identidad, haz que un modelo como Qwen 3.5 9B extraiga los hechos con un esquema JSON obligatorio, calcula la experiencia y la puntuación mediante código a partir de una matriz de criterios y mantén a una persona a cargo de la decisión. La clasificación asistida no está prohibida; la decisión puramente automatizada sí lo está (RGPD, art. 22), y el anexo III del Reglamento de IA clasifica estas herramientas como de alto riesgo.
Clasificar 200 CV para llamar a diez candidatos es un trabajo repetitivo en el que una ayuda puede ahorrar tiempo de verdad, siempre que no se convierta un modelo de lenguaje en un sistema opaco que tome decisiones. Esta guía construye un pipeline local en el que cada resultado se explica y puede verificarse, aclara lo que realmente dice la legislación y propone pruebas para detectar sesgos antes de que perjudiquen a los candidatos.
#Lo que construimos: una ayuda para clasificar, no un decisor
Un pipeline local de análisis de CV lee una carpeta de archivos PDF y una descripción del puesto, extrae para cada candidato hechos verificables (puestos, fechas, competencias mencionadas, formación), los contrasta con criterios escritos por el reclutador y genera una clasificación explicada. La diferencia respecto a una simple «puntuación de IA» radica en dos decisiones: los cálculos se realizan en código, no en el modelo, y cada criterio está respaldado por un fragmento del CV que el reclutador puede volver a leer. El resultado es una lista ordenada de candidatos que examinar, nunca una lista de rechazos.
La ejecución en local cierra una puerta: la del envío de datos de candidatos a un proveedor externo. No cierra otras: el modelo puede reproducir sesgos, interpretar mal un CV maquetado en columnas o inventar una competencia. Esta guía aborda, por tanto, a partes iguales la mecánica del pipeline y las salvaguardas que hacen defendible su uso.
#El marco legal: lo que está establecido, lo que a menudo se exagera
Agentes que actúan en tu máquina: Cline agéntico, MCP, n8n + Ollama, automatizaciones locales.
- Espacio en línea de por vida
- PDF + archivos
- Reembolsado 30 j
A veces se lee que enviar CV a un servicio de IA alojado estaría prohibido en Francia desde 2024. Ninguna ley establece una prohibición general de ese tipo. Los aspectos que realmente importan requieren más matices y también se aplican en local. El primero es el artículo 22 del RGPD: la persona interesada tiene derecho a no ser objeto de una decisión basada exclusivamente en un tratamiento automatizado, incluida la elaboración de perfiles, que produzca efectos jurídicos o la afecte de manera significativa. Una decisión de no contratar a alguien entra en este ámbito si ningún ser humano toma realmente la decisión.
El segundo es el reglamento europeo sobre IA. Su anexo III clasifica como sistemas de alto riesgo los destinados a la contratación o selección de personas, en particular para analizar y filtrar candidaturas y evaluar candidatos. El calendario ha cambiado: según el análisis del bufete Bird & Bird, el acuerdo provisional del 7 de mayo de 2026 sobre el paquete denominado Digital Omnibus aplaza hasta el 2 de diciembre de 2027 las obligaciones de alto riesgo del anexo III. Comprueba en el Diario Oficial de la Unión Europea el texto definitivamente adoptado antes de fijar tu calendario de cumplimiento: esta guía no constituye asesoramiento jurídico.
| Tema | Lo que se necesita | Aplicación práctica |
|---|---|---|
| Decisión automática (RGPD, artículo 22) | Una persona toma realmente la decisión | La salida es una lista para revisar, sin rechazo automático |
| Alto riesgo (reglamento de IA, anexo III) | Gestión de riesgos, supervisión humana, documentación, trazabilidad | Registro de entradas y salidas, procedimiento de relectura |
| Información a los candidatos | Informarles del tratamiento | Mención en la oferta y en la política de contratación |
| Minimización | Tratar solo los datos pertinentes para el puesto | Ocultación de los datos de contacto y de identidad civil antes de enviarlos al modelo |
| Non-discrimination | Ningún criterio prohibido | Descripción del puesto revisada, pruebas de sesgo periódicas |
#La pila: lector de PDF, modelo local, formato impuesto
Un lector de PDF como PyMuPDF extrae el texto. Ollama sirve el modelo: Qwen 3.5 de 9 mil millones de parámetros pesa 6,6 GB, acepta 256 000 tokens de contexto y cabe en una tarjeta de 8 GB; Mistral Small 24B (14 GB) requiere más memoria. Ollama también permite restringir la respuesta a un esquema JSON: según su documentación, se pasa el esquema en el campo format. Es más fiable que el simple modo JSON, porque las claves y los tipos quedan fijados.
Un CV es un documento corto: dos páginas representan unos miles de tokens. Por tanto, el problema no es la ventana de contexto, salvo que adjuntes también cartas de presentación. La dificultad está en la maquetación, que se aborda en el paso siguiente.
#Extraer el texto y ocultar lo que no sea necesario
Muchos CV están en dos columnas, con un panel lateral para habilidades y idiomas. La lectura de un PDF depende entonces del orden de los bloques en el archivo. PyMuPDF ofrece una opción de ordenación que organiza el texto por coordenadas verticales y luego horizontales: en un CV en columnas, puede mezclar las líneas de las dos columnas. El comportamiento predeterminado, que sigue el orden del archivo, suele leer mejor los CV en columnas. Prueba ambas opciones en tus CV más complejos y conserva la que produce un texto coherente.
La ocultación de datos innecesarios para el puesto responde al principio de minimización: dirección de correo electrónico, teléfono, dirección postal, enlaces a perfiles, fecha de nacimiento. Las expresiones regulares detectan formatos regulares; no identifican un nombre o un apellido en medio de un texto. Un enfoque fiable consiste en procesar la primera línea del CV, donde casi siempre figura la identidad, y sustituir los datos personales de identificación por un identificador de expediente.
#Extraer hechos, calcular mediante código
El modelo debe extraer lo que está escrito, no calcular. Una instrucción como «annees_experience = suma de las experiencias» genera totales incorrectos: los modelos suman mal duraciones que se superponen o que están expresadas en meses y años. Por eso se pide al modelo los puestos con sus fechas de inicio y fin, y el total se calcula en Python, fusionando los períodos que se superponen.
#Contrastar con los criterios: una matriz de evaluación en lugar de una puntuación inventada
Pedir al modelo «un puntaje entre 0 y 100» da un número que parece preciso pero no lo es: dos ejecuciones pueden divergir y nadie sabe qué mide. Una rúbrica de evaluación es más robusta. El reclutador escribe sus criterios de una vez por todas, diferenciando los obligatorios de los deseables. Para cada criterio, el modelo responde con solo tres estados: satisfecho, no satisfecho, no documentado, copiando la frase del CV que lo justifica. El puntaje se calcula luego mediante código, con una regla que puedes explicar a un candidato.
Esta configuración tiene tres ventajas. Las pruebas se verifican mediante un programa: una frase que el modelo afirma citar y que no aparece en el CV no cuenta. La clasificación es reproducible, ya que la puntuación se calcula mediante una fórmula. Y si no se encuentra un criterio obligatorio, eso no elimina al candidato: se señala al reclutador, quien lee el CV, porque la información puede estar simplemente expresada de otra manera.
#Producir la lista y mantener un registro
La lista final ordena a los candidatos por puntuación, pero también muestra, al principio, aquellos para los que un criterio obligatorio figura como «a revisar». Guarda para cada CV un registro fechado: identificador, versión del modelo, criterios utilizados, salidas brutas. Este registro sirve para responder a un candidato que pregunte cómo fue evaluado y para demostrar una supervisión humana real, exigida para un sistema de selección clasificado como de alto riesgo.
#Medir los sesgos en lugar de asumir que no existen
El sesgo de los modelos de lenguaje en los CV está documentado. Un estudio de la Universidad de Washington, presentado en octubre de 2024, varió los nombres de pila asociados a personas blancas y negras, hombres y mujeres, en más de 550 CV reales: los modelos probados favorecieron los nombres asociados a personas blancas en el 85 % de los casos y los asociados a mujeres en solo el 11 %, y nunca prefirieron un nombre asociado a un hombre negro a uno asociado a un hombre blanco. Estos modelos eran sistemas de clasificación, no los que ejecutarás; la enseñanza es que un sesgo puede existir sin que nadie lo vea.
Son necesarias dos medidas. La primera es una prueba de permutación: se toman unas decenas de CV, se sustituye el nombre de pila por nombres asociados a otros orígenes o al género opuesto y se comparan los resultados. Sin enmascaramiento, la diferencia debe ser nula; si no lo es, el pipeline no es utilizable. La segunda es un seguimiento de los resultados: si puedes reconstruir categorías después de la clasificación, compara las tasas de preselección. Una diferencia sin explicación se aborda revisando la descripción del puesto y la tabla de evaluación.
#Verificar que la herramienta ahorre tiempo
Compara la clasificación de la herramienta con la de un reclutador sobre unos treinta currículums de un puesto ya cubierto. Cuenta cuántos de los candidatos seleccionados por el reclutador aparecen en la parte superior de la lista y qué buenos candidatos ha colocado la herramienta demasiado abajo. Si se descartan demasiados buenos perfiles, corrige la tabla de evaluación antes de ampliar su uso. Un criterio mal formulado es la causa más frecuente.
#Lo que falla en la práctica
- CV creativos y escaneados
- Los CV gráficos o escaneados dan un texto pobre. El script rechaza un archivo sin texto y lo señala en lugar de evaluarlo a ciegas.
- Habilidades implícitas
- Un candidato puede dominar una herramienta sin nombrarla. El estado «no documentado» existe para eso: da lugar a una revisión por una persona, no a un rechazo.
- Idiomas y trayectorias en el extranjero
- La calidad disminuye con los CV en varios idiomas o con equivalencias de títulos académicos. Pruébalos explícitamente.
- Desviación respecto al perfil del puesto
- Los criterios vagos u obsoletos (« junior dynamique ») introducen sesgos de edad. Reléelos antes de incorporarlos.
- Confianza excesiva
- Una clasificación tranquiliza e incita a no volver a leer. Mide la proporción de CV que el reclutador realmente vuelve a leer.
- IA local en la empresa: RGPD y soberanía
- Ley de IA y modelos con pesos abiertos
- Lista de verificación de confidencialidad
- Salidas JSON estructuradas con Ollama
- Limitar las alucinaciones de un LLM local
- Extracción de facturas: el mismo esquema de control
- Fuente: anexo III del reglamento sobre la IA
- Fuente: artículo 22 del RGPD
- Fuente: Bird & Bird sobre el acuerdo Digital Omnibus
- Fuente: Universidad de Washington sobre sesgos en el filtrado de CV
- Fuente: salidas estructuradas de Ollama
¿Se pueden filtrar CV con IA en Francia?+
¿Es ilegal enviar CV a ChatGPT?+
¿Qué modelo local usar para analizar CV?+
¿Por qué no pedir una puntuación sobre 100 al modelo?+
¿Cómo verificar que el modelo no sea discriminatorio?+
¿Cuánto tiempo ahorra el filtrado de CV?+
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.