Sistema inteligente de análisis y evaluación de currículums utilizando inteligencia artificial para ayudar en procesos de selección de personal.
Este sistema automatiza el proceso de evaluación de currículums mediante IA, proporcionando:
- Extracción automática de información de CVs en formato PDF
- Análisis inteligente de experiencia, habilidades y educación del candidato
- Evaluación objetiva del ajuste del candidato al puesto específico
- Recomendaciones profesionales basadas en criterios de reclutamiento
- Identificación de fortalezas y áreas de mejora del candidato
- Porcentaje de compatibilidad con el puesto solicitado
✅ Procesamiento de PDF: Extrae texto de currículums en formato PDF
✅ IA Avanzada: Utiliza GPT-4o-mini de OpenAI para análisis profundo
✅ Interfaz intuitiva: UI desarrollada con Streamlit, fácil de usar
✅ Análisis estructurado: Evalúa según criterios profesionales de reclutamiento
✅ Resultados visuales: Presenta información de forma clara y profesional
✅ Evaluación objetiva: Asigna porcentajes basados en múltiples criterios
- Python 3.8 o superior
- Cuenta de OpenAI con acceso a la API
- pip (gestor de paquetes de Python)
git clone https://github.com/DeveloperRafael1996/cv_system_analyzer# Crear entorno virtual
python -m venv venv
# Activar entorno virtual
# En Linux/Mac:
source venv/bin/activate
# En Windows:
# venv\Scripts\activatepip install streamlit langchain-openai pydantic PyPDF2Dependencias principales:
streamlit: Framework para la interfaz weblangchain-openai: Integración con modelos de OpenAIpydantic: Validación de datos estructuradosPyPDF2: Procesamiento de archivos PDF
Debes configurar tu clave API de OpenAI. Tienes dos opciones:
Opción A: Variable de entorno (recomendado)
export OPENAI_API_KEY='tu-api-key-aqui'Opción B: Archivo .env
Crea un archivo .env en la raíz del proyecto:
OPENAI_API_KEY=tu-api-key-aqui
⚠️ Importante: Nunca compartas ni subas tu API key a repositorios públicos
streamlit run app.pystreamlit run app.py --server.port 8501streamlit run app.py --server.runOnSave trueLa aplicación se abrirá automáticamente en tu navegador en http://localhost:8501
- Sube un CV: Arrastra o selecciona un archivo PDF con el currículum del candidato
- Describe el puesto: Detalla los requisitos, responsabilidades y habilidades necesarias
- Analiza: Haz clic en "🔍 Analizar Candidato"
- Revisa resultados: Obtén un análisis completo con:
- Porcentaje de ajuste al puesto
- Perfil del candidato (nombre, experiencia, educación)
- Habilidades técnicas identificadas
- Fortalezas principales
- Áreas de desarrollo
- Recomendación final de contratación
Puesto: Desarrollador Frontend Senior
Requisitos obligatorios:
- 3+ años de experiencia en desarrollo frontend
- Dominio de React.js y JavaScript/TypeScript
- Experiencia con HTML5, CSS3 y frameworks CSS
- Conocimiento de herramientas de build (Webpack, Vite)
Requisitos deseables:
- Experiencia con Next.js o similares
- Conocimientos de testing (Jest, Cypress)
- Familiaridad con metodologías ágiles
- Inglés intermedio-avanzado
Responsabilidades:
- Desarrollo de interfaces de usuario responsivas
- Colaboración con equipos de diseño y backend
- Optimización de rendimiento de aplicaciones web
cv_system_analyzer/
│
├── app.py # Punto de entrada de la aplicación
├── models/
│ └── cv_model.py # Modelo de datos Pydantic para análisis
├── prompts/
│ └── cv_prompts.py # Prompts del sistema para IA
├── services/
│ ├── cv_evaluator.py # Lógica de evaluación con IA
│ └── pdf_processor.py # Extracción de texto de PDFs
└── ui/
└── streamlit_ui.py # Interfaz de usuario con Streamlit
Puedes modificar el modelo en services/cv_evaluator.py:
modelo_base = ChatOpenAI(
model="gpt-4o-mini", # Cambiar a "gpt-4" para mejor calidad
temperature=0.2 # Ajustar entre 0 y 1 (mayor = más creativo)
)Los criterios están definidos en prompts/cv_prompts.py. Puedes ajustar:
- Pesos de evaluación (experiencia, habilidades, formación)
- Instrucciones específicas del análisis
- Enfoque del reclutador virtual
- Causa: No se configuró la API key
- Solución: Configura la variable de entorno
OPENAI_API_KEY
- Usa CVs con texto seleccionable, no imágenes escaneadas
- Sé específico y detallado en la descripción del puesto
- Incluye requisitos obligatorios y deseables
- Detalla las responsabilidades del cargo
- El sistema funciona mejor con CVs estructurados y claros
- Los CVs se procesan temporalmente y no se almacenan permanentemente
- La información se envía a OpenAI para el análisis (revisa sus políticas de privacidad)
- No compartas API keys ni las incluyas en el código
- Para entornos de producción, considera implementar cifrado adicional
Este proyecto es de código abierto y está disponible para uso personal y educativo.
Las contribuciones son bienvenidas. Para cambios importantes:
- Haz fork del proyecto
- Crea una rama para tu funcionalidad
- Realiza tus cambios
- Envía un pull request
Para preguntas o sugerencias sobre el proyecto, contacta con el desarrollador.
Desarrollado con ❤️ usando Python, Streamlit y OpenAI