Support: WhatsApp Us Instant Download after Payment  |  Free Installation Support
Python Projects
Smart Chess AI with Advanced Features Using Python and Pygame
Organ Donation Management System Using Python and MySQL
Heart Disease Risk Prediction Using Python and Machine Learning
Gesture Mouse Using Python – Hand Gesture Recognition and Control
Real-Time Online Voting System Using Python and Flask
File Sharing Website Using Python and Django
College Management System Using Python and Django
AI-Based Traffic Management System Using Python, YOLOv3 and OpenCV
AI Travel Chatbot in Python
Fake Currency Detection Using AI and Python
AI Traffic Management System Using Python
AI Fake News Detection Using Machine Learning
Face Recognition Based Bank Transaction Authorization System
Heart Attack Prediction Using Machine Learning
Fake Review Detection Using Machine Learning
Breast Cancer Prediction Using Machine Learning
Doctor Appointment Management System Using Python and Django
Parking Management System Using Python Django
Library Management System Using Python Django
Online Quiz Management System Using Python and Django
Student Result Management System Using Python and Django
Hospital Management System Using Python and Django
Online Grocery Shop Using Python and Django
Blood Bank Management System Using Python Django
AI-Based Skill Tracking System for Students
AI Mock Interview System Using Python and Flask
AI-Powered English Learning App Using React
Real-Time Object Detection Using Python
Laundry Management System Using Python Django
Prison Management System Using Python Django
Employee Management System Using Python and Django
Advanced Real-Time Personal Finance Management System Using Django
Hostel Management System Using Python and Django
AI Study Timetable Generator Project in Python Django
Face Recognition Attendance System in Django
Product Recommendation Systems
Insurance Management System with AI
Oral Cancer Detection Using Deep Learning
AI Powered Resume Screening System Using Python
Loan Approval Prediction System using Python and Machine Learning
AI-Based Assignment Evaluator System
Agentic RAG AI System Using Python
Learning Management System
Student Attendance Management System
Email Spam Detection
Crime Rate Predictor
Student Feedback System Using Python and ML
E-commerce Website Using Python
Hospital Management System Python
Medical Queue Appointment System
AI-Powered Resume Screening System
Demo Video
Python Projects

AI-Powered Resume Screening System

0.0 (0 reviews) | 2 sold

The AI Powered Resume Screening System is a Python and Flask HR automation tool that screens multiple resumes against a job description and ranks every candidate by a weighted Job-Match Score. It parses PDF and DOCX resumes, extracts candidate details with spaCy NLP, and scores applicants using TF-IDF cosine similarity with optional BERT matching. Key features include automatic skill extraction, a Chart.js analytics dashboard, skill-gap analysis, one-click shortlist or reject, CSV and Excel export, and switchable SQLite or MySQL database support. Ideal for MCA, BCA, B.Tech and MBA final year students. Includes source code, report, synopsis and PPT.

Technologies: Python Django Machine Learning MongoDB
What You Will Get
Source Code
Database File
Project Report
PPT Presentation
Viva Questions
Setup Guide
₹1,999.00
Inquire
Secure Payment Instant Download Free Support Free Updates

The AI Powered Resume Screening System is a full-stack HR automation project built with Python, Flask, spaCy, and scikit-learn that solves a genuine business problem: manually reviewing hundreds of resumes for a single job opening. Recruiters upload resumes in PDF or DOCX format, define a job description with required skills, minimum experience, and education level, and the system parses every file, extracts structured candidate information, and ranks applicants by a weighted Job-Match Score percentage. Unlike a basic keyword tool, it uses TF-IDF and cosine similarity for semantic matching, with an optional BERT engine for deeper contextual understanding. The result is an enterprise-grade HR-Tech application combining NLP, machine learning, document parsing, REST APIs, and data visualisation.

Key Features

  • The resume parser extracts clean text from messy multi-column PDF and DOCX files using PyMuPDF and python-docx.
  • The NLP extractor pulls candidate name, email, phone, skills, education, and experience using spaCy Named Entity Recognition combined with regex patterns.
  • The job description module lets you define required skills, minimum years of experience, and education level, with skills auto-detected from the JD text.
  • The weighted match engine scores each candidate across skills, experience, education, and semantic similarity using TF-IDF or optional BERT.
  • An interactive analytics dashboard built with Chart.js shows ranking bar graphs, score distribution doughnut charts, and per-candidate skill-gap analysis.
  • One-click shortlist and reject actions update candidate status over AJAX with live filtering.
  • Ranked or shortlisted candidates can be exported as CSV or Excel files using openpyxl.
  • The database is pluggable: SQLite works out of the box and MySQL is enabled with a single environment variable change.
  • Score weights are fully configurable in the config file, and pytest test cases are included for the core matching engine.

Technology Stack

ComponentTechnology
BackendPython 3, Flask (application-factory pattern)
ORMSQLAlchemy with Flask-Migrate
NLPspaCy (en_core_web_sm) with NER
Machine Learningscikit-learn TF-IDF, optional sentence-transformers BERT
Document ParsingPyMuPDF (fitz), python-docx
FrontendHTML5, custom CSS design system, JavaScript, Chart.js
Exportopenpyxl for Excel, built-in csv module
DatabaseSQLite (default), MySQL (production-ready)
Testingpytest

System Requirements

  • Python 3.x with pip installed.
  • Flask and SQLAlchemy for the web application and ORM layer.
  • spaCy with the en_core_web_sm English model (the app falls back to regex extraction without it).
  • scikit-learn for TF-IDF vectorization and cosine similarity.
  • PyMuPDF and python-docx for reading PDF and Word resumes.
  • openpyxl for Excel export and pytest for running the test suite.
  • SQLite by default, or MySQL with pymysql for production setups.
  • Optional sentence-transformers package if you want to enable the BERT match engine.

How It Works

A recruiter creates a job description, and the system auto-detects the required skills from the text along with the minimum experience and education level. Uploaded resumes are converted to plain text by PyMuPDF or python-docx, then passed to the spaCy NER pipeline which extracts the candidate's name, contact details, skills, education, and years of experience. The match engine blends four signals into one score: skills overlap at 50 percent, experience at 20 percent, education at 15 percent, and TF-IDF or BERT semantic similarity at 15 percent. Every candidate is ranked by this percentage on the dashboard, where the recruiter can review skill gaps, shortlist or reject with one click, and export the final list.

Perfect For

This is an advanced-level project suited to MCA, BCA, B.Tech CS/IT, M.Tech, and MBA IT or HR students who want a final year submission that stands out. It covers artificial intelligence, natural language processing, machine learning, and full-stack web development in a single codebase, giving you plenty of material for viva questions on NER, TF-IDF, cosine similarity, and transformer models. It also doubles as a strong portfolio and interview project for AI, Data Science, and HR-Tech roles.

Future Enhancements

The project can be extended with recruiter and admin login with role-based access, automated email notifications to shortlisted candidates, resume ranking across multiple jobs at once, an interview scheduling module, bulk ZIP upload of resumes, cloud deployment on Render or Railway, and a fine-tuned transformer model for domain-specific skill extraction.

Watch Project Demo

Watch the full project walkthrough and setup tutorial on our YouTube channel.

▶ Watch on YouTube – Decode It

More Details & Full Documentation

For complete project details, source code, and setup guide, visit the official project page.

🔗 View Full Project Details – UpdateGadh

Project Modules
Resume Parser Module:
- Extract clean text from PDF resumes using PyMuPDF
- Extract text from DOCX resumes using python-docx
- Handle multi-column and messy real-world resume layouts
- Support bulk upload of multiple resumes

NLP Extraction Module:
- spaCy Named Entity Recognition for candidate name
- Regex extraction for email and phone number
- Skill extraction and normalisation
- Education level detection
- Years of experience calculation
- Automatic regex fallback if the spaCy model is not installed

Job Description Module:
- Create and manage job postings
- Define required skills, minimum experience and education level
- Auto-detect skills directly from the JD text

Match Engine Module:
- Skills overlap scoring (50% weight)
- Experience scoring against the minimum required (20% weight)
- Education level ranking (15% weight)
- TF-IDF cosine similarity of resume text vs JD text (15% weight)
- Optional BERT semantic engine via sentence-transformers
- Configurable weights in app/config.py

Dashboard & Analytics Module:
- Candidate ranking by Job-Match Score percentage
- Chart.js bar graphs for candidate comparison
- Score distribution doughnut chart
- Per-candidate skill-gap analysis
- Live filtering by candidate status

Candidate Action Module:
- One-click shortlist and reject with AJAX status updates
- View full extracted candidate profile
- Filter shortlisted, rejected and pending candidates

Export Module:
- Export ranked candidates to CSV
- Export shortlisted candidates to Excel using openpyxl

Configuration Module:
- .env based settings (DATABASE_URL, MATCH_ENGINE, SECRET_KEY, MAX_CONTENT_LENGTH_MB)
- Switch between SQLite and MySQL without code changes
- Switch between TF-IDF and BERT match engines
- pytest unit tests for the core matching engine
Installation Guide
1. Download and extract the ZIP file
2. Open the project folder: cd Ai-Powered-Resume-Analyzer
3. Create a virtual environment: python -m venv venv
   Windows: venv\Scripts\activate
   macOS / Linux: source venv/bin/activate
4. Install dependencies: pip install -r requirements.txt
5. Download the spaCy English model: python -m spacy download en_core_web_sm
   (Optional - the app falls back to regex extraction without it)
6. Create the environment file:
   Windows: copy .env.example .env
   macOS / Linux: cp .env.example .env
7. Seed sample data (optional): python seed.py
8. Run the application: python run.py
9. Open the localhost URL shown in the terminal

To use MySQL instead of SQLite:
- Create the database: CREATE DATABASE resume_screening;
- Set DATABASE_URL=mysql+pymysql://root:password@localhost:3306/resume_screening
- Restart the app; tables are created automatically

To enable BERT matching:
- Uncomment sentence-transformers in requirements.txt and reinstall
- Set MATCH_ENGINE=bert in .env
Need help running this project? Chat with us on WhatsApp — Free installation support!

FAQ for this project coming soon.

No reviews yet. Be the first to review!

Write a Review

Related Projects

College Management System Using Python and Django 40% OFF Featured
Python Projects
College Management System Using Python and Django
(0)
₹1,799.00 ₹2,999.00
View
AI-Based Assignment Evaluator System 23% OFF Featured
Python Projects
AI-Based Assignment Evaluator System
(0)
₹999.00 ₹1,299.00
View
AI Study Timetable Generator Project in Python Django 20% OFF Featured
Python Projects
AI Study Timetable Generator Project in Python Django
(0)
₹1,599.00 ₹1,999.00
View
Hostel Management System Using Python and Django 50% OFF Featured
Python Projects
Hostel Management System Using Python and Django
(0)
₹999.00 ₹1,999.00
View