An intelligent Applicant Tracking System (ATS) built using Python 3.11 and Streamlit that parses resumes, analyzes job descriptions, detects job roles across multiple domains, and ranks candidates using a weighted scoring engine based on skills, experience, and education.
- Extracts Name, Email, Phone
- Extracts Technical & Soft Skills
- Detects Experience (in years)
- Detects Education Level
- Supports PDF resumes
- Optimized using LRU caching for performance
- Paste any Job Description
- Automatically detects best matching job role
- Detects domain (Technology, Finance, Legal, Healthcare, etc.)
- Detects required education & experience
- Lock / Edit JD workflow (simulates real ATS behavior)
Supports 10+ professional domains:
- Technology
- Finance
- Healthcare
- Legal
- Education
- Engineering
- Management
- HR
- Sales & Marketing
- Design
Includes domain calibration logic for improved ranking accuracy.
Candidates are ranked using:
- Critical Skills (Highest weight)
- Core Skills
- Optional Skills
- Soft Skills
- Experience validation
- Education matching
- Role discriminators (Hard + Soft gates)
- Domain calibration logic
- Ranked candidate cards
- Adjustable shortlist threshold
- Skill gap analysis
- Fit & rejection reasoning
- Alternative role comparison
- 🟢 Strong Fit
- 🔵 Good Fit
- 🟡 Borderline
- 🔴 Weak Fit
- CSV Export
- Excel (.xlsx) Export
🟢 Green rows = Shortlisted
🔴 Red rows = Rejected
Resume Upload
↓
Resume Parser
↓
Job Description
↓
JD Profiler → Role Detection
↓
Weighted Skill Matching Engine
↓
Ranking & Confidence Scoring
↓
Recruiter Dashboard + CSV / Excel Export
Resume_Project/
│── app.py
│
├── resume_parser/
├── job_profile/
├── ranking/
├── matching/
├── analysis/
├── utils/
├── job_database/
├── feedback/
│
├── output/
└── debug_inference.py
- Python 3.11
- Streamlit
- NumPy
- OpenPyXL
- Custom NLP utilities
- Rule-based domain inference
- LRU caching for performance optimization
git clone (https://github.com/PradyumKarale/Recruiter-ATS-Dashboard-Python-Streamlit-NLP.git)
cd Recruiter-ATS-Dashboard-Python-Streamlit-NLP
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.lock.txt
streamlit run app.py
- Upload one or more resumes (PDF)
- Paste Job Description
- Lock Job Description
- View ranked candidates
- Download CSV or Excel report
Rank 1 → Strong Fit (82%)
Rank 2 → Good Fit (73%)
Rank 3 → Weak Fit (41%)
- Matched Skills
- Missing Skills
- Education Match
- Experience Validation
- Alternative Role Comparison
- Recruiter Feedback
- Multi-domain rule-based job inference
- Weighted normalized scoring system
- Hard skill gate discriminators
- Education-level validation engine
- Experience-based calibration
- Domain confidence scaling
- Resume–role comparison reasoning
- Structured recruiter-friendly exports
- Modular architecture for scalability
- ML-based semantic similarity scoring
- Resume embeddings (BERT / Sentence Transformers)
- Database integration (PostgreSQL)
- Recruiter login system
- Cloud deployment (Streamlit Cloud / Render)
- REST API version
Pradyum Karale
B.Tech Computer Science & Engineering
MIT World Peace University, Pune
GitHub: https://github.com/PradyumKarale