Skip to content

GresuRaju/Smart-Resume-Screening-Job-Matching-System-using-Machine-Learning-NLP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ResumeIQ 🧠 — Smart Resume Screening & Job Matching System

NLP-powered resume screener with ATS scoring, TF-IDF cosine similarity, and ML classification (Logistic Regression / SVM)

Python Streamlit scikit--learn License


📸 Features

  • 📂 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

🚀 Run Locally (Step by Step)

1. Clone the repo

git clone https://github.com/YOUR_USERNAME/resume-iq.git
cd resume-iq

2. Create a virtual environment

# Windows
python -m venv venv
venv\Scripts\activate

# Mac / Linux
python3 -m venv venv
source venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Run the app

streamlit run app.py

Opens at → http://localhost:8501


📁 Project Structure

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

☁️ Deploy Free on Streamlit Cloud

  1. Push this repo to GitHub
  2. Go to share.streamlit.io
  3. Click "New app" → select your repo → set app.py as main file
  4. Click Deploy — done! Free public URL in ~2 minutes

🛠️ Tech Stack

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

🧠 How the ML Pipeline Works

Resume PDF → Text Extraction → Preprocessing → TF-IDF Vectors
                                                      ↓
JD Text   → Skill Extraction → ATS Scoring    → Cosine Similarity
                                                      ↓
                                              ML Score (LR / SVM)
                                                      ↓
                                              Ranked Candidates

ATS Score Criteria (6 checks)

  1. ✅ Keyword match ≥ 50% of JD skills
  2. ✅ Relevant experience (≥ 2 years detected,IR HAVE FRESHER-MODE ALSO)
  3. ✅ Contact info present (email/phone/LinkedIn)
  4. ✅ Education section detected
  5. ✅ Proper resume sections (Skills, Experience, etc.)
  6. ✅ Optimal length (80–800 words)

👨‍💻 Author

Gresu Raju — B.Tech AIML


📄 License

MIT License — free to use, modify, and deploy. "# Smart-Resume-Screening-Job-Matching-System-using-Machine-Learning-NLP"

About

ML/NLP system for intelligent resume screening and job matching.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages