Skip to content

Factoria-F5-AI-Bootcamp-1-Edicion/cv-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👥 Componentes

David García, (product owner) ➡️ https://github.com/DooFromash
Javier Inglés, (scrum master) ➡️ https://github.com/Javingles
Begoña Ortíz, (developer) ➡️ https://github.com/bego2022
Christian Cabrera, (developer) ➡️ https://github.com/ChrisCabrera24

📓 Proyecto

Por encargo de Simplon, empresa matriz de la Escuela Factoría F5, creamos un analizador de currículums de los alumnos para compararlos con ofertas de trabajo y, de esta manera, sacar su afinidad o match en forma de porcentaje.

🏭 Funcionalidades

  • Funcionalidad 1: Extracción de textos de los CVs.
  • Funcionalidad 2: Comparación de los CVs con ofertas de trabajo dadas por el cliente.
  • El cuaderno válido para esta 1ª parte sería "ob_matching_demo.ipynb", guardado dentro de la carpeta Flask-app. Instalándose el archivo requirements.txt y ejecutando el código daría el resultado de ese match con la limpieza del texto ya realizada.

Añadido de extras al proyecto requerido inicialmente

  • Funcionalidad 3: Scraping de ofertas de trabajo de sitios web como p.e. Infojobs.
  • El scraping se resolvería corriendo el cuaderno "infojobs.ipynb" devolviendo un archivo .csv
  • Funcionalidad 4: Activación del recurso Cognitive Service y Form Recognizer de Azure con OCR para extraer los textos de los pdfs.
  • Funcionalidad 5: Generación de un contenedor con Docker en Azure para posterior despliegue y acceso por parte del cliente.
  • En esta segunda parte del proyecto, se le suministraría al cliente una "url" para que directamente pudiese subir el CV y automáticamente le aparecía el resultado de la afinidad entre el CV y las oferta de trabajo.

🎟️ Azure

Se utiliza el Cognitive Service de Azure para activar el Form Recognicer y poder extraer el texto de las imágenes por medio de la técnica OCR (Optical Character Recognition). También se utiliza el servicio de Contenedores con Docker para su despliegue.

🔑 Variables de Entorno requeridas

Las siguientes variables son necesarias para acceder a la conexión con los servicios de Azure y poder ejecutar el proyecto.

Variable de entorno Ejemplo
AZURE_FORM_RECOGNIZER_ENDPOINT https://cv-recog-imagenes.cognitiveservices.azure.com
AZURE_FORM_RECOGNIZER_KEY b635ctertyh2c41d0bb1f8f612409fsdiifss7797

🚀 Resultado

Esta es la solución del trabajo realizado, donde se pueden apreciar las cajas para incluir el currículum a comparar y petición de subida, diversos campos como el puesto, la compañía y el match o afinidad.

📂 Estructura de este repositorio

Carpeta Fichero Descripción
main main Se pasa el proyecto definitivo únicamente
ReadMe Documentación y Resumen del proyecto
dev flask-app Ficheros necesarios para el despliegue con Flask api
Scraping Método de scraping o raspado de las ofertas
Similitud_CV Análisis de los CVs y similitud con ofertas

🚧 Futuras modificaciones o implementaciones

En un futuro se pretende utilizar otros servicios que nos proporciona Azure, como son el analizador de textos y sus bases de datos o almacenamiento para mejorar y complementar lo desarrollado hasta el momento.

💻 Tecnologías aplicadas

  • Organización: Metodología SCRUM y Trello https://trello.com/b/y6roy7yV/analisiscv
  • Cloud: Microsoft Azure
  • Lenguajes utilizados: Python, HTML5 y CSS3.
  • Librerías utilizadas: FlaskAPI, dotenv. SpaCy, NLTK, Selenium, Beautifulsoup
  • Documentación: MarkDown y Swagger
  • Framework: Boostrap
  • Presentación: Canvas
  • Control de versiones: Git/GitHub
  • Contenedor: Docker
  • Editores: Jupyter, Visual Studio Code

Requerimientos

Estas son las librerías utilizadas en el desarrollo del proyecto. Se encuentran en el archivo "requirements.txt" con sus respectivas versiones.

  • azure_storage
  • docx
  • Flask
  • ftfy
  • nltk
  • numpy
  • pandas
  • pyresparser
  • python-dotenv
  • python_docx
  • scikit_learn
  • Werkzeug