Entre el 14 de agosto y el 10 de septiembre de 2026, un modelo de lenguaje leyó 4.932 currículums en el portal de empleo de una red nacional de reclutamiento. No fue piloto ni demostración: candidatos reales enviaron archivos reales, y la lectura alimentó la base que los reclutadores usan para buscar y filtrar.
Este texto cuenta qué hace la IA en ese flujo, cómo se montó la arquitectura, qué salió mal, qué medimos y qué decidimos no aplicar. Todos los números vienen de la auditoría técnica que hicimos el 10/09/2026 sobre el código y la base de producción. El cliente aparece solo por sector.
El problema: el currículum llega en cualquier formato
Un portal de empleo vive de currículums. Llegan en PDF bien diagramado, en documento escaneado, en archivo exportado de otro sitio, a veces en algo que ni es currículum. Para el reclutador, cada uno de esos archivos tiene que convertirse en lo mismo: nombre, contacto, experiencias con fechas, formación, cargo buscado. Solo así se puede buscar, filtrar y comparar candidatos.
Hecho a mano, eso es digitación. Con reglas fijas (expresiones regulares, lectura de PDF por posición), se rompe en el primer diseño distinto. Un modelo de lenguaje resuelve bien ese punto medio: lee texto sin estructura y devuelve datos estructurados. La pregunta que importa no es si la IA puede leer un currículum, sino si aguanta miles por mes sin trabarse, sin desperdiciar y sin grabar basura en la base.
Qué hace la IA en el flujo
La lectura de currículums es la función principal, pero no la única. En el período medido, el portal tenía estas funciones usando el modelo:
- Lectura y extracción de currículums: el archivo va al modelo, que devuelve un JSON con 13 campos definidos por schema. Se dispara con el envío del candidato, el registro por la página de captación, el login social y una cola procesada por programación. Fueron 4.932 lecturas.
- Guion de entrevista: generado cuando se aprueba la vacante, con preguntas ligadas a los requisitos. 70 ejecuciones.
- Descripción estructurada de la vacante: también generada en la aprobación. 70 ejecuciones.
- Kit de difusión de la vacante y fit cultural de la empresa: textos de apoyo para que el reclutador revise. 71 y 76 ejecuciones.
- Filtrado automático: preguntas de filtro registradas en la vacante y respuestas evaluadas en cola. 3 ejecuciones en el período, porque la función era reciente.
- Informe final de la entrevista: lectura de anexo y dictamen, entregado el 10/09. 3 ejecuciones.
Sumadas, todas las funciones que no son lectura de currículums dieron cerca de 340 operaciones. La lectura de currículums fue el 94% del volumen. Ese fue el primer aprendizaje: el consumo y el riesgo no estaban repartidos por las pantallas, estaban concentrados en un solo punto. Y como es ahí donde el archivo entero va al modelo, la entrada de tokens era más de cuatro veces la salida.
Arquitectura a alto nivel
Lo que permite que una IA funcione en producción sin sustos tiene menos que ver con el modelo y más con lo que lo rodea.
Un cliente único para la API
Todas las funciones de texto pasan por un único cliente de la API. Ahí están el timeout (45 segundos), la temperatura baja (0,1), la respuesta obligatoria en JSON y el schema que el modelo debe respetar. Un punto único facilita todo lo demás: reintento, disyuntor, medición. La única función que llamaba a la API por fuera de ese cliente, la de generación de imágenes, fue justamente la que quedó sin rastro en el log.
Cola con bloqueo y espaciado
Un currículum enviado por un candidato no necesita leerse en el mismo segundo. La mayor parte entra en una cola procesada por programación. Tras la auditoría, la cola ganó bloqueo propio, reclamo atómico de cada ítem (solo procesa quien logró marcarlo), una ventana de diez minutos para recuperar ítems huérfanos, espera creciente por intento y 400 ms entre ítems.
Límites y disyuntor
Cuando el proveedor informa cuota agotada, un disyuntor marca la IA como no disponible por 15 minutos y el portal deja de insistir. El registro sigue funcionando; la lectura queda para después. Vale para todos los caminos que llaman a la IA, no solo para la cola.
Reintento con espera y modelo de reserva
El error transitorio (límite de tasa, inestabilidad del servidor, falla de red) merece un nuevo intento con espera exponencial y variación aleatoria, respetando el tiempo que pide el proveedor. El error definitivo (solicitud inválida) no se repite. Existe un modelo de reserva, pero es el último recurso, no la primera reacción: cambiar de modelo a cada tropiezo altera la calidad de la extracción sin que nadie lo note.
Caché por contenido del archivo
Guardar un hash de cada archivo recibido permite no releer un PDF idéntico, lo que ataca directo la fuente dominante del consumo. Aplicarlo exige una regla de negocio: cuándo reprocesar (currículum actualizado, prompt nuevo, corrección hecha por el propio candidato).
Decide una persona
La IA extrae, organiza y sugiere. El candidato tiene una pantalla de revisión para verificar lo que se leyó, y la decisión sobre quién avanza es del reclutador. La IA no aprueba ni rechaza a nadie.
Lo que ajustamos después de la auditoría
Con el portal ya en producción, auditamos el código y el registro de llamadas para que la operación fuera más rápida y previsible. Tres ajustes marcaron la diferencia.
Una solicitud por operación
Cada modelo acepta su propio conjunto de parámetros. Cuando el cliente de API envía un parámetro que el modelo en uso no reconoce, la llamada tiene que repetirse, y eso duplica el trabajo sin que nadie lo note desde afuera.
El ajuste fue enviar cada parámetro solo al modelo que lo acepta. Antes de cambiarlo, probamos con llamadas reales para confirmar que no se perdía nada en la respuesta. Las solicitudes por operación bajaron de dos a una: menos latencia, menos consumo de cuota y más previsibilidad.
Cola con límites y respaldo en el momento justo
Los currículums llegan en olas. La cola ganó límite de concurrencia y un único punto de control, para que dos procesos nunca tomen el mismo ítem. El modelo de respaldo pasó a entrar solo después de una espera, y no en el mismo instante de la primera falla, para espaciar los picos en lugar de trasladarlos.
El pico del 24/08
El 24/08 tuvo 744 currículums leídos, 2,2 veces el segundo mayor día (340, el 25/08), con 1.738 solicitudes. La primera hipótesis fue la importación masiva de candidatos hecha ese mismo día. El código la desmintió: el currículum que viene de una planilla se convierte en PDF a partir de datos ya estructurados y nunca pasa por la IA. La causa exacta del pico quedó registrada como no medida. Preferimos eso a inventar una explicación.
El prompt reducido que medimos y no aplicamos
El prompt de lectura repetía instrucciones: "no inventes fechas" aparecía tres veces, tres ejemplos enseñaban la misma conversión de mes y un único subcampo ocupaba el 26% del texto. Escribimos una versión reducida con los mismos 13 campos y medimos las dos en un conjunto de evaluación con seis currículums sintéticos, en doce llamadas reales:
| Medida | Prompt actual | Propuesto | Diferencia |
|---|---|---|---|
| Tokens de entrada por lectura | 1.161 | 688 | 41% menos |
| Tokens de salida por lectura | 454 | 444 | igual |
| Tiempo por lectura | 2.241 ms | 2.101 ms | igual |
| Currículums con diferencia de contenido | 3 de 6 |
El ahorro de entrada era real, pero tres currículums salieron distintos. En uno, el título profesional se acortó, porque se había quitado el ejemplo que enseñaba a conservar la línea completa. En otro, donde el origen no tenía tildes, el prompt actual las corregía y el propuesto copiaba el origen. La primera versión del prompt reducido era peor: escrita sin tildes, hizo que el modelo devolviera palabras sin tilde incluso en currículums acentuados. Sin el conjunto de evaluación, eso habría llegado a la base. Decisión: una ronda más antes de aplicar.
El aprendizaje que vale para cualquier IA en producción
En IA de producción, lo que más pesa suele ser el código alrededor del modelo: cómo se controla la cola, cuándo ocurre el reintento, si el mismo archivo se lee dos veces. Antes de cambiar de modelo, conviene medir y ajustar el entorno.
LGPD y revisión humana
Un currículum es dato personal de principio a fin: nombre, teléfono, historial profesional, a veces dirección. Las decisiones del proyecto parten de eso.
- Medición sin datos personales: cada llamada registra función, modelo, intento, estado, tokens y tiempo, y ningún contenido del currículum. El mensaje de error se limpia de correos y secuencias largas de dígitos antes de ir al log.
- Evaluación con datos sintéticos: los seis currículums del conjunto de prueba son ficticios y cubren casos difíciles (perfil operativo sin correo, tres formatos de fecha en el mismo texto, currículum casi vacío, documento que ni es currículum). Ningún dato de candidato real entra al repositorio.
- Pedir solo lo que se usa: cada campo extraído necesita finalidad. La revisión del schema forma parte de la rutina.
- Revisión antes de cambiar contenido: los cambios que afectan lo que la IA extrae solo entran después del conjunto de evaluación, la comparación de estructura y la revisión humana.
- Decisión humana: la IA organiza la información; aprobar o rechazar un candidato es tarea del reclutador.
Para el lado jurídico y de procesos, la guía de LGPD en la práctica en sistemas y apps cubre base legal, consentimiento y derechos del titular.
Métricas que importan
Quien pone IA en producción suele mirar solo la factura. Los números de abajo muestran por qué eso no alcanza: volumen, tamaño de la entrada y tiempo de respuesta dicen más sobre la operación que el costo.
| Medida | Valor |
|---|---|
| Período medido | 14/08 al 10/09/2026 (4 semanas) |
| Currículums leídos por la IA | 4.932 |
| Todas las demás funciones de IA sumadas | cerca de 340 operaciones |
| Peso de la lectura de currículums en el volumen | 94% |
| Tokens de entrada frente a salida | más de 4 veces |
| Día de mayor volumen (24/08) | 744 currículums y 1.738 solicitudes |
| Solicitudes por operación | 2 antes, 1 después de la corrección |
| Tiempo por lectura en el conjunto de evaluación | cerca de 2,2 s |
Tras la corrección, cada llamada graba en una tabla propia la función que llamó, el modelo, el intento, el estado, los tokens de entrada, salida, caché y razonamiento, y el tiempo. La función se descubre por la pila de llamadas, así que cualquier punto nuevo nace medido. Sin eso, ningún ahorro futuro sería comprobable.
Las cuatro métricas que recomendamos seguir desde el primer día: solicitudes por operación (debería ser 1), tasa de éxito por función, distribución de errores por tipo y tokens de entrada por ítem procesado. El costo total es consecuencia de esas cuatro.
Cuándo vale la pena para una PYME
El caso es de un portal con miles de currículums por mes, pero el patrón sirve para cualquier empresa que recibe documentos sin estructura: pedidos por correo, facturas, informes, contratos, fichas de registro.
- Vale cuando el volumen es recurrente y hoy alguien digita o copia datos de documentos a un sistema.
- Vale cuando el error es tolerable porque hay revisión: el candidato verifica, el agente aprueba, finanzas valida.
- Vale cuando el documento varía demasiado para reglas fijas, pero el resultado cabe en un schema cerrado.
- No vale cuando el dato ya llega estructurado. La importación por planilla de este caso no pasa por la IA, y está bien que así sea.
- No vale sin medición. Si nadie sabe cuántas solicitudes gasta cada operación, nadie sabe si la IA funciona o solo lo parece.
Si la duda es por dónde empezar, la guía de IA generativa para PYMEs ayuda a dimensionar el uso, y la de automatización de procesos con IA muestra otros flujos donde se aplica el mismo diseño.
¿Quieres IA leyendo documentos en tu operación?
Montamos el flujo con cola, límites, medición por función y revisión humana desde el primer día. Mira lo que hacemos en inteligencia artificial o habla con nosotros: el valor viene en la propuesta, después de entender tu volumen y tus documentos.
Conversar por WhatsAppConclusión
Leer 4.932 currículums en 4 semanas con IA no exigió un modelo mejor. Exigió un cliente único para la API, cola con bloqueo, reintento solo para lo transitorio, disyuntor para todos los caminos y medición por función. Cada nuevo ajuste pasa antes por medición.
La IA en producción es software como cualquier otro: falla en lugares previsibles, y quien mide los encuentra.
Preguntas frecuentes
¿La IA decide quién pasa el proceso de selección?
No. En este caso, la IA lee el currículum, extrae los datos, sugiere un guion de entrevista y organiza el filtrado. El candidato revisa lo que se leyó y la decisión sobre quién avanza es del reclutador. Dejar que un modelo de lenguaje apruebe o rechace personas por sí solo es un riesgo jurídico y de calidad que no recomendamos.
¿Cuánto tarda la IA en leer un currículum?
En el conjunto de evaluación con seis currículums sintéticos, la lectura tomó cerca de 2,2 segundos por currículum (2.241 ms con el prompt actual y 2.101 ms con el propuesto). En producción, la mayoría de las lecturas entra en cola, así que el candidato no la espera para terminar su registro.
¿Conviene cambiar de modelo cuando sube el consumo?
No siempre. Cambiar de modelo cambia la calidad de la extracción y exige una nueva ronda de evaluación. Antes conviene mirar el entorno: llamadas repetidas, cola sin control, reintento inmediato y archivos idénticos leídos de nuevo. Solo tiene sentido cambiar después de medir.
¿Cómo queda la LGPD con currículums pasando por IA?
El currículum es dato personal, así que aplican minimización y finalidad. En el caso, el log de medición no guarda contenido del currículum, los mensajes de error se limpian, las pruebas usan currículums sintéticos y los campos generados sin uso están en la lista para eliminar. Revisa también el contrato y la política de datos del proveedor de la API.
Mi empresa recibe pocos documentos por mes. ¿Tiene sentido?
Depende de cuánto tiempo gasta tu equipo digitando datos de esos documentos y de cuánto cuesta un error. Con poco volumen, la ganancia suele estar menos en la escala y más en la estandarización. Lo que no cambia: schema cerrado, revisión humana y medición desde la primera llamada.



