🚀 AI-powered job ranking using local NLP and embeddings
Job Ranker is a local-first, AI-powered job aggregation and ranking system designed to optimize the job search process.
It collects job offers from multiple platforms, extracts required skills using a small language model, and ranks job postings based on their relevance to a candidate profile using multilingual embeddings.
The project was born from a real-world problem: job searching is time-consuming and often involves browsing through many irrelevant offers. Job Ranker aims to reduce this friction by surfacing the most relevant opportunities first.
Data Collection
jobspyAI Processing & Ranking
Skill extraction from job descriptions using Gemma 3 (1B)
Skill representation using bge-m3 embeddings
Job relevance computed via cosine similarity
Offers are ranked according to their semantic alignment with the candidate profile
Visualization
Language: Python
Scraping: jobspy
NLP / AI:
Data: Pandas, SQLite
Similarity: Cosine similarity
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Install Ollama from https://ollama.ai/download
# Then pull the required model:
ollama pull gemma3:1b
python script.py -c example_config.yaml
python script.py -c example_config.yaml --process-only
The configuration file allows you to define:
🚧 Work in progress
Planned improvements:
If you are reading this, feel free to contribute.
Job Ranker was developed alongside my own job search as a Data Scientist.
Beyond its practical use, the project serves as a real-world application of:
This project is licensed under the GNU General Public License v3.0 (GPLv3).
Python
43.1%
Jupyter Notebook
23.2%
CSS
15.4%
JavaScript
13.8%
HTML
4.5%
🚀 AI-powered job ranking using local NLP and embeddings
Job Ranker is a local-first, AI-powered job aggregation and ranking system designed to optimize the job search process.
It collects job offers from multiple platforms, extracts required skills using a small language model, and ranks job postings based on their relevance to a candidate profile using multilingual embeddings.
The project was born from a real-world problem: job searching is time-consuming and often involves browsing through many irrelevant offers. Job Ranker aims to reduce this friction by surfacing the most relevant opportunities first.
Data Collection
jobspyAI Processing & Ranking
Skill extraction from job descriptions using Gemma 3 (1B)
Skill representation using bge-m3 embeddings
Job relevance computed via cosine similarity
Offers are ranked according to their semantic alignment with the candidate profile
Visualization
Language: Python
Scraping: jobspy
NLP / AI:
Data: Pandas, SQLite
Similarity: Cosine similarity
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Install Ollama from https://ollama.ai/download
# Then pull the required model:
ollama pull gemma3:1b
python script.py -c example_config.yaml
python script.py -c example_config.yaml --process-only
The configuration file allows you to define:
🚧 Work in progress
Planned improvements:
If you are reading this, feel free to contribute.
Job Ranker was developed alongside my own job search as a Data Scientist.
Beyond its practical use, the project serves as a real-world application of:
This project is licensed under the GNU General Public License v3.0 (GPLv3).
Python
43.1%
Jupyter Notebook
23.2%
CSS
15.4%
JavaScript
13.8%
HTML
4.5%