ResumeAnalyzer is a DCU Computer Science 4th year project that was created by Darragh McGonigle and Stephen McAleese.
ResumeAnalyzer is an online web application that enables software engineers to upload and analyze their resumes and learn which skills are in-demand in the job market for software engineers in Ireland.
Both features are powered by information that was acquired by analyzing and extracting insights from thousands of job posts.
The resume analysis page (above) has the following features:
- Overall resume score: based on resume skills and length.
- Skill frequencies panel: shows the number of job posts matching each skill keyword.
- Skill recommendations: recommends skills similar to those found in the uploaded resume.
- Matching jobs: job posts that match the skills found in the resume.
The reports page shows information extracted from the collection of job posts to give an overview of the software engineering job market:
- Years of experience distribution: shows how many years of experience are typically required for roles in the tech industry.
- Skill frequencies: the number of job posts matching each skill keyword.
- Job post locations: shows which locations have the most job posts.
- Soft skill frequencies: shows the number of job posts that match each soft skill keyword.
The tree page contains a graph that shows several job roles in the tech industry. Clicking on each graph node shows a list of skills and job posts that match that role.
- Frontend: ReactJS.
- Backend: FastAPI.
- Analysis: Python, NLTK, scikit-learn, Gensim.
- Database: PostgreSQL, SQLAlchemy.
The app consists of a React front end application and a Python FastAPI server. The app can be run locally by running the front end and back end applications in two different terminals.
- Create a new virtual environment:
python3 -m venv venvsource venv/bin/activatepip install -r requirements.txt
- Run the server:
uvicorn server:app --reload - Go to
http://127.0.0.1:8000in the browser and check that the server is working correctly.
The web server uses a PostgreSQL database to store job posts and other information. You need to install PostgreSQL and populate the database so that the server has the data it needs.
- First, you need to have PostgreSQL installed. You can install it on macOS with
brew install postgresql. - Change to the
./src/backenddirectory and runpython populate_database.pyto copy the job posts and other information stored in CSV files in the./datadirectory into the PostgreSQL database. - In a new terminal, log into the PostgreSQL database with
sudo -u postgres psqland run the\dtcommand to check that the tables were created successfully. - Now that the database is populated, run the server with
uvicorn server:app --reloadso that it's ready to work with the frontend.
The ReactJS frontend app displays the web app's user interface.
- Open a new terminal for running the frontend web app.
- Change to the
./src/frontenddirectory and runyarnto install all necessary packages. Upgradenode-sasswithyarn add node-sassif it's causing issues. - Run
yarn startto start the frontend app. - Go to
http://localhost:3000in the browser and upload a resume. If everything was set up correctly, the resume should be analyzed and the results should be displayed in the browser.
All the scraped data needed to run the app is already stored in CSV files in the ./data directory.
If you want new data, you can use the scraping scripts to collect new job posts and store them in CSV files.
The LinkedIn scraping script can be run with the python3 linkedin-jobs-scraping-script.py command and outputs scraped data to linkedin-scraped-data.csv.
The Indeed scraping script can be run with the python3 indeed-jobs-scraping-script.py command and outputs scraped data to indeed-scraped-data.csv.
This project was originally created in GitLab before being moved to GitHub. The original GitLab repository can be found here: https://gitlab.computing.dcu.ie/mcgonid3/2022-ca400-mcgonid3-mcalees2.
