by Romain Avouac and Jaime Costa Centena
This project is our final submission for the 3rd year Computer Science Project class at ENSAE ParisTech.
Our personal goal was to get familiar with and improve our knowledge of a broad range of development frameworks and tools. Moreover, the projet could provide a first version of a useful tool for the general public, especially in the current economic context.
Our web application aims at improving the matching procedure between job seekers and job offers, using data from the French governmental agency Pôle Emploi. This agency is used by more than 403 000 businesses to recruit, and its website has more than 46 millions monthly visitors. Despite these numbers, a few tests done on Pôle Emploi job search service show that the current procedure has important shortcomings, e.g. high sensitivity to language mistakes, homonymy, etc. Besides, since the current search procedure is based on keywords, its quality is strongly dependent on the indexation of the offers.
Against that background, we wanted to implement a more flexible search procedure, based on embeddings, as it is often seen in modern recommender systems.
In order to make this procedure easily accessible to end users, we chose to develop a minimalistic, user-friendly web application. The app has two purposes :
- generate a professional looking and normalized resume, based on the information provided by the user. This feature is especially useful for job seekers with limited IT familiarity ;
- recommend to users the most relevant job offers based on their profile (experience, skills, etc.)
Do not hesitate to reach out to us for any comment or suggestion regarding this project.
- Python
- Flask
- SQLite
- SQLAlchemy
- Bootstrap
- JQuery
- fastText
- cv_generator (allthough with significant modifications)
- Clone the repo
git clone https://github.com/avouacr/3A-ENSAE-projet-info.git
- (optional) Create a virtual environment inside the cloned directory
python3 -m venv ./venv
source venv/bin/activate
- Install required libraries
pip install -r requirements.txt
- Download input data for the application
python3 ./download_data.py
Once the installation is complete, you can start the application
python3 ./app.py
By default, the app runs with the job offers data from the current (04/24/2020) Pole Emploi database. If you want to update the data with the new job offers, follow these steps :
-
Set them as environment variables (POLE_EMPLOI_API_ID and POLE_EMPLOI_API_KEY).
export POLE_EMPLOI_API_ID="YOUR POLE EMPLOI API DI"
export POLE_EMPLOI_API_KEY="YOUR POLE EMPLOI API KEY"
The above procedure does not store the variables. If you wish to conserve these variables persistently, you might find ressources in the following links for Linux, Windows and Mac.
- Query Pole Emploi API
python3 API_query/api_query.py
By default this queries for offers published during the last two years (365x2 days), you can change this through the num_days_lookback
variable in the API_query/api_query.py script.
- Compute the new FastText representations of the offers
python3 doc_embeddings/fasttext_embeddings.py
The interface of the application is voluntarily minimalistic. The first and mandatory step for users is to complete their profile (general information, official certification, education, experiences and self-presentation). Then, they can can either :
- download a professional looking resume filled with all the information they provided ;
- check the job offers that best match their profile.
All contributions are welcome. You can either report a bug or contribute directly using the following typical workflow :
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Romain Avouac - avouacr - [email protected]
Jaime Costa Centena - JCCen - [email protected]