Skip to content

Intelligent resume analysis and evaluation system using artificial intelligence to support recruitment

Notifications You must be signed in to change notification settings

DeveloperRafael1996/cv_system_analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📄 Sistema de Evaluación de CVs con IA

Sistema inteligente de análisis y evaluación de currículums utilizando inteligencia artificial para ayudar en procesos de selección de personal.

🎯 ¿Qué hace?

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

Características principales

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

🚀 Instalación

Requisitos previos

  • Python 3.8 o superior
  • Cuenta de OpenAI con acceso a la API
  • pip (gestor de paquetes de Python)

Paso 1: Clonar o descargar el proyecto

git clone https://github.com/DeveloperRafael1996/cv_system_analyzer

Paso 2: Crear entorno virtual (recomendado)

# Crear entorno virtual
python -m venv venv

# Activar entorno virtual
# En Linux/Mac:
source venv/bin/activate
# En Windows:
# venv\Scripts\activate

Paso 3: Instalar dependencias

pip install streamlit langchain-openai pydantic PyPDF2

Dependencias principales:

  • streamlit: Framework para la interfaz web
  • langchain-openai: Integración con modelos de OpenAI
  • pydantic: Validación de datos estructurados
  • PyPDF2: Procesamiento de archivos PDF

Paso 4: Configurar API Key de OpenAI

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

🎮 Cómo correr el proyecto

Modo 1: Ejecutar con Streamlit (recomendado)

streamlit run app.py

Modo 2: Especificar puerto

streamlit run app.py --server.port 8501

Modo 3: Con recarga automática

streamlit run app.py --server.runOnSave true

La aplicación se abrirá automáticamente en tu navegador en http://localhost:8501

📖 Cómo usar el sistema

  1. Sube un CV: Arrastra o selecciona un archivo PDF con el currículum del candidato
  2. Describe el puesto: Detalla los requisitos, responsabilidades y habilidades necesarias
  3. Analiza: Haz clic en "🔍 Analizar Candidato"
  4. 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

Ejemplo de descripción de puesto

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

📁 Estructura del proyecto

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

🔧 Configuración avanzada

Ajustar el modelo de IA

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)
)

Personalizar criterios de evaluación

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

🛠️ Solución de problemas

Error: "OpenAI API key not found"

  • Causa: No se configuró la API key
  • Solución: Configura la variable de entorno OPENAI_API_KEY

💡 Consejos para mejores resultados

  • 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

🔒 Privacidad y seguridad

  • 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

📝 Licencia

Este proyecto es de código abierto y está disponible para uso personal y educativo.

🤝 Contribuciones

Las contribuciones son bienvenidas. Para cambios importantes:

  1. Haz fork del proyecto
  2. Crea una rama para tu funcionalidad
  3. Realiza tus cambios
  4. Envía un pull request

📧 Contacto

Para preguntas o sugerencias sobre el proyecto, contacta con el desarrollador.


Desarrollado con ❤️ usando Python, Streamlit y OpenAI

About

Intelligent resume analysis and evaluation system using artificial intelligence to support recruitment

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages