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