La extracción de perfil es el primer paso de procesamiento automático en RAP-Rec. Cuando cargas tu hoja de vida, el sistema lee el archivo en el navegador, convierte su contenido en texto plano y lo envía a Google Gemini, que devuelve un objetoDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/mafab9125/PDG_SISTEMA_RECOMENDADOR/llms.txt
Use this file to discover all available pages before exploring further.
UserProfile estructurado listo para auto-completar el formulario.
Formatos soportados
PDF (.pdf)
Procesado con
pdfjs-dist v5.7.284 página por página. Funciona mejor con PDFs de texto seleccionable.DOCX (.docx)
Procesado con
mammoth.extractRawText. Extrae el texto plano del documento Word.Pipeline de extracción
El siguiente proceso se ejecuta completamente en el navegador antes de cualquier llamada a la API de Gemini:Carga del archivo
El aspirante selecciona un archivo PDF o DOCX en el paso 2 de la interfaz. El sistema detecta el tipo de archivo por su tipo MIME o por la extensión del nombre del archivo.
Procesamiento según formato
Según el tipo detectado, se aplica la librería correspondiente:
- PDF:
pdfjs-distcarga el documento y extrae el texto de cada página de forma secuencial, concatenando el contenido. - DOCX:
mammoth.extractRawTextconvierte el documento Word en texto plano limpio.
Limpieza del texto
El texto extraído pasa por normalización de espacios en blanco: múltiples saltos de línea y espacios consecutivos se compactan para reducir ruido antes del análisis.
Validación de longitud mínima
Si el texto resultante tiene menos de 30 caracteres, el sistema lanza un error e indica al usuario que intente con otro archivo. Este umbral filtra documentos vacíos o PDFs que no contienen texto extraíble.
Truncado a 8 000 caracteres
El texto se trunca a los primeros 8 000 caracteres antes de enviarse a Gemini. Esto limita el costo de tokens y mantiene tiempos de respuesta razonables para CVs extensos.
Llamada a Gemini AI
El texto truncado se envía a
extractProfile con temperature: 0.1 y responseMimeType: "application/json". Gemini analiza el contenido actuando como reclutador experto y devuelve el perfil en formato JSON.Interfaz UserProfile
Este es el contrato de datos que devuelve extractProfile y que recorre todo el sistema desde la extracción hasta la generación de la ruta académica:
Los campos marcados con
? son opcionales. Si Gemini no puede inferir su valor desde el texto del CV, se omiten del objeto resultante o se inicializan como {} en el caso de respuestas_experiencia.Comportamiento de auto-completado
Una vez queextractProfile devuelve el UserProfile, la aplicación propaga los datos extraídos a los pasos siguientes:
Paso 3 — Verificación de perfil
Paso 3 — Verificación de perfil
Todos los campos del
UserProfile se cargan en el formulario de verificación: nombre, cargo, empresa, sector, años de experiencia, nivel educativo, formación académica (formacion[]), habilidades técnicas, certificaciones y proyectos relevantes. Puedes editar cualquier campo antes de continuar.Paso 4 — Experiencia específica
Paso 4 — Experiencia específica
Los campos de
respuestas_experiencia auto-completan las tres preguntas del paso 4:transformacion_pedagogica→ pregunta sobre procesos de transformación pedagógicadiseño_curricular→ pregunta sobre diseño de proyectos curricularesintegracion_tic→ pregunta sobre integración de TIC en docencia
"Sí, avanzada", "Básica", "En aprendizaje" o "No tengo".Paso 5 — Motivaciones
Paso 5 — Motivaciones
El campo
motivation del perfil extraído se carga automáticamente en el área de texto de motivaciones del paso 5. Puedes editarlo o reemplazarlo completamente.Manejo de errores
| Situación | Comportamiento |
|---|---|
| PDF basado en imagen o sin texto seleccionable | Error con mensaje indicando intentar con otro archivo |
| Texto extraído menor a 30 caracteres | Error con mensaje de archivo insuficiente |
| Fallo de extracción después de 2 reintentos | El usuario puede continuar completando el formulario manualmente |
| Cuota de API excedida (HTTP 429) | Mensaje específico: "Límite de cuota alcanzado. Por favor, espera un minuto." |
| Error de conexión con Gemini | Mensaje: "Error crítico de conexión con la IA. Por favor, refresca la página e intenta de nuevo." |
extractProfile reintenta automáticamente hasta 2 veces con retardo exponencial de 1 500 ms entre intentos. Después de agotar los reintentos, lanza el error al componente de UI para que lo muestre al usuario.
Páginas relacionadas
Integración con Gemini AI
Referencia completa de las funciones
extractProfile, evaluateVAP y getAIRecommendation.Carga de hoja de vida
Guía del paso 2: cómo cargar tu CV y qué opciones tienes si no tienes el archivo.
Verificación de perfil
Guía del paso 3: cómo revisar y corregir los datos extraídos automáticamente.
Marco VAP
Las 5 competencias que el sistema evalúa a partir del perfil extraído.