Automatically classify resumes into job categories, extract meaningful insights, and provide actionable improvement suggestions using Natural Language Processing (NLP), TF-IDF, Sentence Transformers, and Machine Learning.
- Overview
- Features
- Demo Workflow
- Project Architecture
- Machine Learning Pipeline
- Tech Stack
- Folder Structure
- Installation
- Dataset
- Usage
- Configuration
- Model Details
- Resume Advice Engine
- Future Improvements
- Contributing
- License
- Author
Recruiters receive hundreds of resumes every day.
Manually sorting them into suitable job categories is time-consuming and inconsistent.
This project automates that process using Natural Language Processing (NLP) and Machine Learning.
The system:
- Converts resumes into readable text
- Cleans and preprocesses the content
- Extracts textual features
- Classifies resumes into job domains
- Generates personalized improvement suggestions
Everything runs locally, making the project privacy-friendly since resumes never leave your machine.
β Resume PDF to Text Conversion
β CSV Resume Dataset Processing
β Text Cleaning & NLP Preprocessing
β TF-IDF Feature Extraction
β Logistic Regression Classifier
β Sentence Transformer Embeddings
β Resume Category Prediction
β Resume Quality Analysis
β Keyword Suggestions
β Missing Section Detection
β CLI-Based Workflow
β YAML Configuration Support
Resume
β
βΌ
PDF / CSV Conversion
β
βΌ
Text Preprocessing
β
βΌ
Feature Extraction
(TF-IDF / Embeddings)
β
βΌ
Machine Learning Classifier
β
βΌ
Resume Category Prediction
β
βΌ
Resume Advice Generator
+-------------------+
| Resume Dataset |
+---------+---------+
|
βΌ
Resume Converter
|
βΌ
Text Preprocessing
|
βΌ
Feature Engineering
+-----------------------------+
| TF-IDF | SentenceTransformer |
+-----------------------------+
|
βΌ
Logistic Regression Model
|
βΌ
Resume Prediction
|
βΌ
Resume Advice Engine
Training Dataset:
- Updated Resume Dataset (CSV)
Testing Dataset:
- Resume PDFs
The preprocessing stage performs:
- Lowercase conversion
- URL removal
- HTML tag removal
- Special character removal
- Stopword removal
- Whitespace normalization
Converts textual information into numerical vectors while preserving important word frequencies.
Uses pre-trained embeddings for richer semantic understanding of resume content.
Current embedding model:
all-MiniLM-L6-v2
Current baseline model:
- Logistic Regression
Future planned models:
- SVM
- Random Forest
- XGBoost
- LightGBM
- Neural Networks
- Python
- Scikit-learn
- Sentence Transformers
- NLTK
- Regular Expressions
- Pandas
- NumPy
- PyPDF2
- PDFPlumber
- YAML
ML-powered_resume_analyser/
β
βββ data/
β βββ raw/
β βββ processed/
β βββ test/
β
βββ models/
β
βββ src/
β βββ convert_dataset.py
β βββ convert_test_data.py
β βββ train_classifier.py
β βββ predict.py
β βββ advice.py
β
βββ assets/
β
βββ config.yaml
βββ requirements.txt
βββ README.md
git clone https://github.com/yourusername/ML-powered_resume_analyser.git
cd ML-powered_resume_analyserWindows
python -m venv .venv
.venv\Scripts\activatemacOS/Linux
python3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txtCompatibility Fix
pip install numpy==1.26.0 --force-reinstallTraining Dataset
UpdatedResumeDataSet.csv
Testing
Resume PDFs
Recommended structure
data/
raw/
processed/
test/
python src/convert_dataset.py \
--csv data/raw/UpdatedResumeDataSet.csv \
--outdir data/processed/convertedpython src/convert_test_data.py \
--pdfdir data/test \
--outdir data/processed/converted_testpython src/train_classifier.pypython src/predict.py --input resume.txtpython src/advice.py --input resume.txtmodel:
embedding: all-MiniLM-L6-v2
tfidf_max_features: 1000
advice_threshold: 0.5| Component | Algorithm |
|---|---|
| Feature Extraction | TF-IDF |
| Embeddings | Sentence Transformers |
| Classifier | Logistic Regression |
| Language | English |
| Prediction | Resume Category |
The advice module currently evaluates:
- Resume Length
- Missing Keywords
- Missing Sections
- Soft Skills
- Resume Structure
- Role Match
- Improvement Suggestions
Example Output
Predicted Category
β Data Scientist
Suggestions
β Add Projects section
β Include SQL keyword
β Mention TensorFlow experience
β Improve resume summary
β Add measurable achievements
Add screenshots here after running the project.
Example:
assets/
home.png
prediction.png
advice.png
training.png
Then include

- Web Interface using Flask
- Streamlit Dashboard
- Deep Learning Classifier
- Resume Ranking
- Skill Extraction
- ATS Score Prediction
- GPT-powered Resume Feedback
- Docker Support
- REST API
- Multi-language Resume Support
Contributions are welcome.
To contribute:
-
Fork the repository
-
Create a new branch
git checkout -b feature-name- Commit changes
git commit -m "Added feature"- Push
git push origin feature-name- Open a Pull Request
This project is licensed under the MIT License.
Ruthvik Sharma
AI & Machine Learning Engineer
GitHub: https://github.com/ruthviksharma-d
LinkedIn: https://linkedin.com/in/ruthvik-sharma
β If you found this project useful, consider giving it a star!
