NLP-powered resume screener with ATS scoring, TF-IDF cosine similarity, and ML classification (Logistic Regression / SVM)
- 📂 Upload resumes (PDF or TXT) — multiple files at once
- 📋 Paste job description — auto-detects required skills
- 🧠 TF-IDF cosine similarity — ranks candidates by semantic closeness
- 📊 ATS Score — checks 6 real ATS criteria (keyword match, experience, contact, education, sections, length)
- 🤖 ML metrics — view Logistic Regression vs SVM accuracy, precision, recall, F1, confusion matrix
- ⚖️ Feature importance — see which features drive the model
- 📈 Interactive charts — all powered by Plotly
git clone https://github.com/YOUR_USERNAME/resume-iq.git
cd resume-iq# Windows
python -m venv venv
venv\Scripts\activate
# Mac / Linux
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtstreamlit run app.pyOpens at → http://localhost:8501
resume-iq/
│
├── app.py ← Main Streamlit app (UI + logic flow)
│
├── utils/
│ ├── __init__.py
│ ├── parser.py ← PDF & TXT text extraction
│ ├── nlp_engine.py ← TF-IDF, skill extraction, ATS scoring
│ └── visualizer.py ← All Plotly charts
│
├── requirements.txt ← Python dependencies
├── .gitignore
└── README.md
- Push this repo to GitHub
- Go to share.streamlit.io
- Click "New app" → select your repo → set
app.pyas main file - Click Deploy — done! Free public URL in ~2 minutes
| Tool | Purpose |
|---|---|
| Streamlit | Web UI framework |
| scikit-learn | TF-IDF vectorizer, cosine similarity |
| PyMuPDF / pdfplumber | PDF text extraction |
| Plotly | Interactive charts |
| NLTK | Text preprocessing |
| pandas / numpy | Data handling |
Resume PDF → Text Extraction → Preprocessing → TF-IDF Vectors
↓
JD Text → Skill Extraction → ATS Scoring → Cosine Similarity
↓
ML Score (LR / SVM)
↓
Ranked Candidates
- ✅ Keyword match ≥ 50% of JD skills
- ✅ Relevant experience (≥ 2 years detected,IR HAVE FRESHER-MODE ALSO)
- ✅ Contact info present (email/phone/LinkedIn)
- ✅ Education section detected
- ✅ Proper resume sections (Skills, Experience, etc.)
- ✅ Optimal length (80–800 words)
Gresu Raju — B.Tech AIML
MIT License — free to use, modify, and deploy. "# Smart-Resume-Screening-Job-Matching-System-using-Machine-Learning-NLP"