An intelligent AI system for resume screening — analyses resumes against job descriptions using NLP to provide match scores and skill gap analysis, with a strong focus on reducing hiring bias.
Traditional resume screening relies on simple keyword matching, which introduces bias based on phrasing, formatting, gender and background — rather than actual skills and competency.
Aequitas solves this by using Cosine Similarity and NLP techniques to calculate a match percentage purely based on technical skills and content, removing human and keyword-based bias from the initial screening process.
- 📄 Multi-Format Support — Accepts PDF and DOCX files for both resumes and job descriptions
- 🔍 Intelligent Parsing — Extracts and cleans text using Regex and Tokenization
- 📊 Compatibility Score — Calculates match percentage (0–100%) using vector similarity
- ✅ Matched Skills — Shows skills present in both resume and job description
- ❌ Missing Skills — Highlights critical skills absent from the resume
- 🎨 Dark / Light Theme — Toggle between themes with a fixed floating button
- ⚖️ Bias Reduction — Focuses purely on technical skills and content, ignoring demographic signals
| Layer | Technology |
|---|---|
| Frontend | Streamlit |
| Backend | Python 3.11 |
| NLP & ML | Scikit-learn (TF-IDF Vectorizer, Cosine Similarity) |
| PDF Parsing | pdfminer.six |
| DOCX Parsing | docx2txt |
| Text Processing | Regex, Tokenization |
| Deployment | Streamlit Community Cloud |
Resume (PDF/DOCX) ──┐
├──► Text Extraction & Cleaning
JD (PDF/DOCX) ─────┘ │
▼
NLP Processing
(Tokenization + Regex Cleaning)
│
▼
TF-IDF Vectorization
(Term Frequency — Inverse Document Frequency)
│
▼
Cosine Similarity Score
│
▼
┌──────────────────────────┐
│ Match Score (0–100%) │
│ + Matched Skills │
│ + Missing Skills │
└──────────────────────────┘
- Match Score — Percentage compatibility between resume and job description
- Matched Skills — Common technical keywords found in both documents
- Missing Skills — Skills present in JD but missing from resume
- Bias-free Analysis — No demographic, formatting or keyword-phrasing bias
1. Clone the repository
git clone https://github.com/thisisdvnsh-thkr/aequitas-fair-hiring-nlp.git
cd aequitas-fair-hiring-nlp2. Install dependencies
pip install -r requirements.txt3. Run the app
streamlit run app.py4. Open in browser
http://localhost:8501Aequitas_Resume-Parser/
│
├── app.py # Main Streamlit application
├── requirements.txt # Python dependencies
├── runtime.txt # Python version → python-3.11
└── README.md # Project documentation
| Devansh Thakur Lead Architect & Developer 💼 LinkedIn • 👤 GitHub | Arpit Upadhyay Co-Developer 👤 GitHub |
⭐ Star this repo if you found it useful!