Skip to content

Youssif71/Resume-Classification-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Resume Classification System 📄🤖

An NLP-powered Resume Classification & Ranking System built with Flask, Scikit-learn, and BERT-based experiments.

The system automatically preprocesses resumes, classifies them into professional domains, and supports resume ranking workflows for intelligent recruitment assistance.


✨ Features

🧠 NLP Pipeline

  • Resume text preprocessing & cleaning
  • Tokenization and normalization
  • Stopword removal
  • Text feature extraction
  • Resume classification pipeline
  • Resume ranking module

📄 Resume Classification

Automatically classifies resumes into domains such as:

  • Data Science
  • HR
  • Java Developer
  • Testing
  • DevOps
  • Web Designing
  • Sales
  • Mechanical Engineering

📊 Modeling

  • Baseline ML models
  • TF-IDF vectorization
  • BERT experimentation
  • Performance evaluation & comparison
  • Notebook-based experimentation workflow

🌐 Web Interface

  • Flask application interface
  • Resume upload workflow
  • Prediction results page
  • Ranking visualization

🗄 Dataset

Dataset includes resumes from multiple professional domains:

Resume.csv
cleaned_resume.csv

Processed datasets are stored after preprocessing for model training and evaluation.


🛠 Tech Stack

Layer Technology
Backend Python · Flask
NLP NLTK · Scikit-learn
Deep Learning Transformers / BERT
Data Processing Pandas · NumPy
Visualization Matplotlib
Frontend HTML · CSS · Jinja2

🚀 Getting Started

Prerequisites

  • Python 3.10+
  • pip
  • Virtual Environment

1. Clone repository

git clone https://github.com/Youssif71/Resume-Classification-System.git

cd Resume-Classification-System

2. Create virtual environment

Windows:

python -m venv .venv

.venv\Scripts\activate

Linux / macOS:

python -m venv .venv

source .venv/bin/activate

3. Install dependencies

pip install -r requirements.txt

4. Run application

python app.py

Open:

http://127.0.0.1:5000

📁 Project Structure

Resume-Classification-System/

├── app.py
├── requirements.txt
├── README.md
├── LICENSE
│
├── data/
│   ├── Resume.csv
│   └── cleaned_resume.csv
│
├── docs/
│   ├── NLP Resume Classification Project Report.docx
│   └── NLP Resume Classification Project Report.pdf
│
├── notebooks/
│   ├── preprocessing.ipynb
│   ├── Final_Preprocessing.ipynb
│   ├── baseline_model.ipynb
│   └── bert_model.ipynb
│
├── templates/
│   ├── layout.html
│   ├── index.html
│   └── results.html
│
├── static/
│   └── style.css
│
└── utils/
    ├── preprocessing.py
    ├── inference.py
    ├── ranking.py
    └── __init__.py

🔬 Experiments

Baseline Models

  • Traditional ML classifiers
  • TF-IDF representations
  • Comparative evaluation

BERT Models

  • Transformer experimentation
  • Context-aware embeddings
  • Performance benchmarking

📈 Workflow

Resume Input
      ↓
Text Cleaning
      ↓
Preprocessing
      ↓
Feature Extraction
(TF-IDF / BERT)
      ↓
Classification
      ↓
Ranking
      ↓
Prediction Output

📄 Documentation

Project reports available:

  • PDF Report
  • DOCX Documentation
  • Experimental notebooks

🔒 Notes

  • Built for educational and research purposes
  • Supports experimentation with traditional ML and transformer models
  • Can be extended for ATS / recruitment systems

👤 Author

Youssif Magdi Ahmed Assem Adel Akram

Data Science & Artificial Intelligence Student
Zewail City of Science & Technology


📄 License

Educational use only.

About

NLP-powered Resume Classification and Ranking System built with Flask, Scikit-learn, and BERT-based experimentation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages