Skip to content

agarwaltech/resume-screening-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

📄 Resume Screening — NLP Classification

Python scikit-learn NLTK

A machine-learning project that automates resume screening: it cleans raw resume text, converts it to TF-IDF features, and classifies each resume into one of 25 job categories — turning hours of manual sorting into seconds.


🧠 How It Works (notebook pipeline)

  1. Load resume_dataset.csv (resume text + job category).
  2. Explore the data — category counts, a count-plot, and a category-distribution pie chart.
  3. Clean each resume with a regex function (cleanResume) that strips URLs, mentions, hashtags, RT/cc, punctuation, and non-ASCII characters.
  4. Analyze text with NLTK — stop-word removal, word_tokenize, a FreqDist of the 50 most common words, and a word cloud.
  5. Encode the Category target with LabelEncoder.
  6. Vectorize the cleaned text with TF-IDF (TfidfVectorizer, sublinear_tf=True, English stop-words, max_features=1500).
  7. Split 80/20 (random_state=0) and train a OneVsRestClassifier(KNeighborsClassifier()).
  8. Evaluate with accuracy scores and a classification report.

📈 Results

Metric Score
Training accuracy 0.84
Test accuracy 0.82

Evaluated with scikit-learn's classification_report (precision / recall / F1 per category).


🛠️ Tools & Libraries

Python · scikit-learn (TfidfVectorizer, OneVsRestClassifier, KNeighborsClassifier, LabelEncoder, train_test_split) · NLTK · wordcloud · pandas · NumPy · matplotlib · seaborn · re (regex) · Jupyter Notebook


📁 Project Structure

Resume-Screening/
├── Resume_Screening.ipynb   # Full NLP + classification notebook
├── resume_dataset.csv       # Resumes labelled by job category (25 classes)
├── requirements.txt
├── SETUP_GUIDE.md
├── setup.bat / setup.sh     # Environment setup scripts
└── settings.json

🚀 Run It

pip install -r requirements.txt
jupyter notebook Resume_Screening.ipynb

First run downloads the required NLTK corpora:

import nltk
nltk.download('stopwords')
nltk.download('punkt')

Dependencies: numpy, pandas, matplotlib, seaborn, scipy, scikit-learn, nltk, wordcloud, jupyter, ipykernel.


📄 License

MIT

About

Machine Learning Project on Resume Screening using Python.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors