SphinxATS is a Flask-based web application that automates resume screening and ranking based on job descriptions using Natural Language Processing techniques. This system demonstrates how Machine Learning can assist HR professionals in filtering and ranking candidates efficiently.
SphinxATS allows:
-
HR to submit a Job Description
-
Applicants to upload resumes (PDF)
-
Automatic ranking of resumes based on:
- TF-IDF Similarity
- Skill Matching
- Experience Matching
The system generates a ranked list of applicants along with:
- Final Score
- Similarity Score
- Skill Match Score
- Experience Score
- Matched Skills
- 📄 PDF Resume Upload
- 📝 Job Description Submission
- 🔍 TF-IDF + Cosine Similarity Scoring
- 🧩 Skill-Based Matching (Predefined Technical Skills)
- 🕒 Experience Detection using Regex
- 📊 Weighted Final Score Calculation
- 📋 Ranked Resume Results Table
- 🧹 Clear Uploaded Resumes Option
- 🧑💼 HR Dashboard Interface
- ⚙️ Real-time Resume Ranking
Each uploaded resume is evaluated using three major parameters:
Measures how closely a resume matches the Job Description using:
- TF-IDF Vectorization
- Cosine Similarity
Matches resume content with predefined technical skills such as:
- Python
- Java
- SQL
- Machine Learning
- Data Science
- HTML / CSS / JavaScript
- Flask / Django
- C / C++
- Git
- NLP
Detects candidate experience using Regex patterns like:
- "2 years experience"
- "3+ years"
- "Worked for 4 yrs"
Experience score is normalized before contributing to the final score.
Final Ranking Score is calculated as:
Final Score =
0.6 × Similarity Score +
0.3 × Skill Match Score +
0.1 × Experience Score
Resumes are ranked in descending order based on this score.
| Technology | Purpose |
|---|---|
| Python 3 | Backend Logic |
| Flask | Web Framework |
| scikit-learn | TF-IDF & Cosine Similarity |
| pdfplumber | PDF Text Extraction |
| HTML / CSS | Frontend UI |
| Bootstrap 5 | UI Styling |
| Regex | Experience Detection |
SphinxATS/
│
├── app.py
├── requirements.txt
├── README.md
├── uploads/
├── static/
│ └── style.css
├── templates/
│ ├── login.html
│ ├── hr.html
│ ├── applicant.html
│ ├── results.html
│ ├── message.html
│ ├── debug_vectors.html
│ └── 403.html
└── venv/
cd SphinxATS
python -m venv venv
Activate:
Windows:
venv\Scripts\activate
Mac/Linux:
source venv/bin/activate
pip install -r requirements.txt
python app.py
Open in Browser:
http://127.0.0.1:5000/
The Flask-based ATS system is packaged into a standalone desktop executable using PyInstaller to enable one-click deployment without requiring Python environment setup on the host system.
Double click:
SphinxATS.exe
📦 Want to Distribute?
dist/SphinxATS.exe
- Uses predefined skill list
- Experience detection based on Regex
- No database integration
- No authentication system
- Runs on local server only
- NLP-based automatic skill extraction
- Resume feedback suggestions
- Database integration (MySQL / MongoDB)
- HR & Applicant Login System
- Cloud Deployment (AWS / Render)
This project was developed as a B.Tech Final Year Capstone Project to demonstrate:
- Web Development using Flask
- Machine Learning Concepts (TF-IDF & Cosine Similarity)
- Natural Language Processing Basics
- Resume Ranking Automation Logic