A Final Year Project developed at the Department of Computer Science and Engineering, Varendra University.
The Resume Analyzer & Resume Matching System is a modern web-based recruitment platform designed to improve the hiring process using Machine Learning (ML), and Natural Language Processing (NLP).
The system helps job seekers create ATS-friendly resumes by analyzing resume quality and providing personalized improvement suggestions. It also assists recruiters by automatically matching resumes with job descriptions through semantic similarity analysis instead of simple keyword matching.
Unlike conventional Applicant Tracking Systems (ATS), this project combines Rule-Based ATS Analysis, Sentence-BERT, spaCy, TF-IDF, CountVectorizer, and Latent Semantic Analysis (LSA) to produce more accurate and meaningful results.
- Secure User Registration
- Login & Authentication
- Password Encryption using Werkzeug
- User Profile Management
- Upload Resume (PDF & DOCX)
- Automatic Resume Parsing
- Resume Text Extraction
- Resume Preprocessing
- ATS Compatibility Check
- Resume Formatting Analysis
- Keyword Analysis
- Contact Information Validation
- Skills Detection
- Experience Analysis
- Education Analysis
- Project & Certification Analysis
- ATS Score Generation
- Resume Quality Evaluation
- Personalized Improvement Suggestions
- Upload Job Description
- Semantic Resume Matching
- Similarity Score Calculation
- Candidate Ranking
- Missing Skill Detection
- ATS Analysis Report
- Resume Matching Report
- Recommendation Report
User Registration
│
▼
Secure Login
│
▼
Upload Resume (PDF/DOCX)
│
▼
Resume Text Extraction
│
▼
Resume Preprocessing
┌──────────────────────────────────────┐
│ • Text Cleaning │
│ • Normalization │
│ • Remove Special Characters │
│ • Tokenization │
│ • Stop-word Processing │
└──────────────────────────────────────┘
│
▼
Resume Parsing
│
▼
Extract Important Resume Sections
┌──────────────────────────────────────┐
│ Personal Information │
│ Professional Summary │
│ Education │
│ Skills │
│ Work Experience │
│ Projects │
│ Certifications │
│ Achievements │
└──────────────────────────────────────┘
│
▼
Rule-Based ATS Evaluation
│
▼
ATS Score Generation
│
▼
Personalized Resume Suggestions
│
▼
Upload Job Description
│
▼
Job Description Processing
│
▼
Machine Learning Pipeline
│
▼
Sentence-BERT Semantic Embedding
│
▼
TF-IDF Feature Representation
│
▼
CountVectorizer Feature Extraction
│
▼
Truncated SVD (Latent Semantic Analysis)
│
▼
Cosine Similarity Calculation
│
▼
Resume Matching Score
│
▼
Candidate Ranking
│
▼
Store Results in SQLite Database
│
▼
Generate Final Report
┌─────────────────────────────┐
│ Web Browser │
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ Flask Application │
└─────────────┬───────────────┘
│
┌──────────────┬──────────┴───────────┬──────────────┐
▼ ▼ ▼ ▼
Authentication Resume Parser ATS Analyzer Resume Matcher
│ │ │ │
└──────────────┴──────────┬───────────┴──────────────┘
▼
Machine Learning Engine
│
┌──────────────┬──────────┼──────────────┬─────────────┐
▼ ▼ ▼ ▼
spaCy Sentence-BERT TF-IDF CountVectorizer
│
▼
Truncated SVD
│
▼
Cosine Similarity
│
▼
SQLite Database
| Category | Technology |
|---|---|
| Programming Language | Python |
| Backend Framework | Flask |
| Frontend | HTML5, CSS3, JavaScript |
| Styling | Bootstrap, CSS |
| Database | SQLite |
| Authentication | Werkzeug Password Hashing |
| Version Control | Git & GitHub |
| Operating System | Windows / Linux |
| Model / Library | Purpose |
|---|---|
| Rule-Based ATS Engine | Resume Evaluation |
| Sentence-BERT (all-MiniLM-L6-v2) | Semantic Resume Matching |
| spaCy | NLP Processing |
| TF-IDF Vectorizer | Keyword Feature Extraction |
| CountVectorizer | Text Vectorization |
| Truncated SVD (LSA) | Dimensionality Reduction |
| Cosine Similarity | Similarity Score Calculation |
| Scikit-learn | Machine Learning Algorithms |
| NLTK | Text Processing |
| Module | Description |
|---|---|
| User Authentication | User Registration & Login |
| Resume Upload | Upload PDF/DOCX Resume |
| Resume Parser | Extract Resume Information |
| ATS Analyzer | Evaluate Resume According to ATS |
| Resume Matcher | Match Resume with Job Description |
| Recommendation Engine | Generate Resume Suggestions |
| Report Generator | Generate ATS & Matching Reports |
| Database Manager | Store Users & Analysis Results |
AI-Resume-Analyzer/
│
├── app.py
├── requirements.txt
├── README.md
├── database.db
│
├── static/
│ ├── css/
│ ├── js/
│ ├── images/
│
├── templates/
│ ├── index.html
│ ├── login.html
│ ├── dashboard.html
│
├── uploads/
│
├── models/
│
├── utils/
│
├── reports/
│
└── assets/
- Intelligent ATS Resume Analysis
- AI-Based Resume Matching
- Secure Authentication
- Modern Web Interface
- Semantic Search
- Automated Candidate Ranking
- Resume Improvement Suggestions
- Machine Learning Integration
- NLP-Based Resume Understanding
- Recruiter-Friendly Dashboard
Before running the project, ensure the following software is installed:
- Python 3.10 or later
- Git
- pip
- Virtual Environment (Recommended)
git clone https://github.com/your-username/AI-Resume-Analyzer.gitMove into the project directory.
cd AI-Resume-AnalyzerWindows
python -m venv venv
venv\Scripts\activateLinux / macOS
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtpython app.pyOpen your browser and visit:
http://127.0.0.1:5000
Register a new account or log in.
Upload a Resume (PDF or DOCX).
The system automatically:
- Extracts resume text
- Parses resume sections
- Performs ATS analysis
- Generates ATS Score
- Detects missing keywords
- Provides improvement suggestions
Upload a Job Description.
The AI Matching Engine:
- Converts resume and job description into semantic embeddings
- Calculates similarity
- Displays Matching Score
- Ranks candidate suitability
The application uses SQLite to securely store user and analysis data.
| Table | Description |
|---|---|
| Users | User account information |
| Resumes | Uploaded resume files |
| ATS Reports | Resume analysis reports |
| Job Descriptions | Uploaded job descriptions |
| Matching Results | Resume similarity scores |
| Name | Student ID | Department | Profile |
|---|---|---|---|
| Farhana Tasnin (UI/UX Designer) | 222311053 | Department of Computer Science & Engineering, Varendra University | GitHub / LinkedIn |
| Katamun Jannat (Frontend Developer) | 222311058 | Department of Computer Science & Engineering, Varendra University | GitHub / LinkedIn |
| Md. Ratan Ali (Backend Developer & Project Maintainer) | 222311069 | Department of Computer Science & Engineering, Varendra University | GitHub • LinkedIn |
| Name | Designation | Profile |
|---|---|---|
| Md. Fatin Ilham | Lecturer, Department of Computer Science & Engineering, Varendra University | Faculty |
Contributions are welcome.
If you would like to improve this project:
- Fork the repository
- Create a new branch
git checkout -b feature-name- Commit your changes
git commit -m "Add new feature"- Push to GitHub
git push origin feature-name- Create a Pull Request
This project was developed for academic and educational purposes.
Feel free to use it for learning and research with proper attribution.
All project-related documents are available through the Google Drive folder below.
📥 Download the complete project documentation, including the project report, presentation, diagrams, screenshots, source code, and other supporting materials.
🔗 Google Drive Folder
We would like to express our sincere gratitude to our respected supervisor Md. Fatin Ilham, Lecturer, Department of Computer Science and Engineering, Varendra University, for his continuous guidance, valuable suggestions, and encouragement throughout the development of this project.
We also thank the Department of Computer Science and Engineering, Varendra University, for providing the academic environment and support necessary to successfully complete this project.
Special thanks to everyone who contributed directly or indirectly to the successful completion of this project.
If you found this project helpful, please consider giving it a ⭐ on GitHub.