AI Powered Resume Screening System
Recruiters often have to review a large number of resumes for a single job opening. Going through every resume manually can take a lot of time, especially when candidates submit their resumes in different formats or describe similar skills using different terms.
The AI Powered Resume Screening System is designed to automate this process. The project uses Natural Language Processing (NLP), Machine Learning, Computer Vision and OCR to extract information from resumes, compare candidates with job descriptions, rank them and generate screening reports.
The application is developed in Python with a Streamlit interface and uses SQLite for storing application data. It can process PDF, DOCX, TXT and image-based resumes, including scanned documents.
Table of Contents
YT:- DecodeIT
What is an AI Powered Resume Screening System?
An AI Powered Resume Screening System automatically analyses resumes and compares them with the requirements of a particular job. Instead of relying only on exact keyword matching, the system processes resume text, identifies skills and experience, and calculates a matching score.
The project combines three main AI-related technologies:
- Natural Language Processing: Used to clean and analyse resume text and extract structured information.
- Machine Learning: Used to compare resumes with job descriptions using TF-IDF and cosine similarity.
- Computer Vision and OCR: Used to process scanned and image-based resumes.
The final result is a ranked list of candidates with matched skills, missing skills and individual score components, making the screening process easier to understand.
Why is Resume Screening Automation Needed?
Traditional resume screening can become difficult when the number of applications increases. Recruiters may need to open and read each resume manually, compare candidate qualifications and maintain screening records.
Manual screening can also become inconsistent. Different reviewers may apply different criteria, while simple keyword filters can miss candidates who use abbreviations or alternative terms for the same skill.
Another challenge is resume format. Scanned or photographed resumes cannot always be searched like normal text documents.
This project addresses these problems by processing different resume formats, extracting useful information and providing a consistent candidate-job matching process.
Key Features of the AI Resume Screening System
Resume Upload and Parsing
The system supports resumes in PDF, DOCX, TXT and common image formats. Files are validated before processing, including extension checks, file-size limits and file signature validation.
PDF files with an available text layer are processed directly. When a PDF page contains very little text, the system can treat it as a scanned document and send it through the OCR pipeline.
Natural Language Processing
The NLP module prepares resume content for analysis. The processing pipeline includes tokenisation, stopword removal and lemmatisation.
The system also extracts structured information such as:
- Candidate name
- Email address
- Phone number
- Skills
- Years of experience
- Education
- Resume sections
Skill canonicalisation is also used so that different forms of a skill can be treated consistently. For example, terms such as “ML” and “machine learning” can share the same canonical skill representation.
Machine Learning Based Resume Matching
The system compares the processed resume with the job description using TF-IDF vectorisation and cosine similarity.
The final matching score combines three components:
- 55%: TF-IDF content similarity
- 35%: Required-skill coverage
- 10%: Experience fit
This produces a score between 0 and 100 that can be used to rank candidates for a particular job.
Matched and Missing Skills
The screening result does not only show a final score. It also records which required skills were matched and which skills were missing.
This makes the ranking easier to understand because recruiters can see the reasons behind a candidate’s score instead of receiving only a pass or fail result.
Computer Vision and OCR
Scanned resumes require a different processing approach because their content may exist only as an image.
The project uses OpenCV to prepare scanned documents. The image-processing pipeline includes grayscale conversion, denoising, deskewing and Otsu binarisation.
After preprocessing, Tesseract OCR is used to recognise the text. The system also records OCR confidence and layout information for scanned resumes.
Job Posting Management
Recruiters can create job postings by providing a job title, description and minimum experience. The system detects skills from the job description and stores the job requirements for candidate matching.
Candidate Ranking and Shortlisting
After resumes are processed, recruiters can run screening for a selected job. Candidates are ranked according to their matching scores.
The system provides a shortlist threshold that recruiters can adjust. Candidates can also be selected or rejected manually from the screening interface.
Candidate Profiles
The Candidates section allows recruiters to search the candidate pool and inspect candidate information. It also provides recommended job roles for a candidate based on the implemented resume-recommendation functionality.
Reports and Export
The project includes six management reports:
- User Activity Report
- Candidate Report
- Resume Analysis Report
- Matching Result Report
- Job Posting Report
- System Performance Report
Reports can be exported in CSV or PDF format.
How to Download
Get This Project
The complete package is available so you can run, study, and submit it with confidence. It includes:
- Full Source Code
- Project Report
- Synopsis
- PPT Presentation
For any queries or a quick response, reach out on WhatsApp: +91 79834 34684
Screenshots




How the Resume Screening Process Works
The complete processing pipeline follows a sequence of steps:
- Recruiter logs into the system.
- A job posting is created.
- The system detects required skills from the job description.
- One or more resumes are uploaded.
- Uploaded files are validated.
- Text is extracted directly or through OCR for scanned documents.
- NLP processing cleans and normalises the extracted content.
- Candidate information and skills are extracted.
- Resume and job description content are compared using TF-IDF and cosine similarity.
- Skill coverage and experience fit are calculated.
- A final matching score is generated.
- Candidates are ranked according to their scores.
- Recruiters can shortlist candidates automatically or manually.
- Reports can be generated and exported.
Resume Matching Score
The matching algorithm uses a weighted scoring approach:
match_score =
0.55 × TF-IDF content similarity
+ 0.35 × required-skill coverage
+ 0.10 × experience fit
TF-IDF content similarity measures how closely the processed resume content matches the job description. Required-skill coverage measures the percentage of recognised job skills found in the candidate’s skills. Experience fit compares the candidate’s experience with the minimum experience required for the job.
Each result stores these component scores along with matched and missing skills, allowing the recruiter to understand how the final score was produced.
Technology Stack
| Layer | Technology |
|---|---|
| Frontend | Streamlit and Plotly |
| Backend | Python |
| NLP | spaCy, NLTK and Regular Expressions |
| Machine Learning | scikit-learn, TF-IDF and Cosine Similarity |
| Computer Vision | OpenCV |
| OCR | Tesseract and pytesseract |
| PDF Processing | PyMuPDF |
| DOCX Processing | python-docx |
| Database | SQLite |
| Reports | pandas and ReportLab |
| Security | bcrypt and role-based authentication |
System Architecture
The application follows a four-layer architecture.
- Presentation Layer: Provides the Streamlit web interface.
- Application Layer: Handles authentication, document parsing, database operations and reporting.
- Intelligence Layer: Contains NLP, machine learning matching and Computer Vision/OCR functionality.
- Data Layer: Stores application information in the SQLite database.
This structure keeps the major parts of the application separated and allows individual modules to be tested or replaced independently.
Dashboard
The dashboard provides an overview of the screening system. It displays information about candidates, scanned resumes, job postings, matching results and selections.
The dashboard also visualises common skills, match-score distribution, resume formats, screening status by job and recent uploads.
Screening and Ranking Interface
The Screening & Ranking page provides a ranked view of candidates for a selected job. Recruiters can review the shortlist threshold, ranking chart and candidate statuses.
An explanation panel shows the individual score components together with matched and missing skills. This gives recruiters a clearer view of why a candidate received a particular ranking.
Testing and Evaluation
The project was tested at module and application levels. The automated test suite contains 12 tests, and all 12 tests passed in the final run.
The evaluation dataset contained seven resumes across five formats, including text-based documents and scanned image resumes.
Five fields were checked for each resume: name, email, phone, years of experience and education. The system correctly extracted 35 out of 35 fields in the evaluation dataset.
The scanned resumes achieved an average OCR word confidence of 94.2%.
The system also ranked the intended best-fit candidate first for each of the three evaluated job postings.
The evaluation dataset was small and synthetic, so these results demonstrate the correctness of the implemented pipeline rather than statistically representing performance on a large real-world dataset.
Results and Performance
The evaluation showed that the system could successfully process both text-based and scanned resumes and use the extracted information for candidate matching.
For the evaluated job postings, the intended best-fit candidates ranked first:
- Machine Learning Engineer (NLP / CV): Aarav Sharma — 80.5%
- Data Analyst: Priya Verma — 68.3%
- Full Stack Developer: Rahul Mehta — 78.2%
Scanned resumes were also included in the rankings, showing that OCR-based processing can bring image-based resumes into the same screening pipeline.
Advantages of the AI Resume Screening System
- Automates resume screening and reduces manual effort.
- Processes multiple resume formats.
- Handles scanned resumes using OCR.
- Extracts candidate skills, education, experience and contact information.
- Normalises skill synonyms.
- Ranks candidates using a transparent scoring method.
- Shows matched and missing skills.
- Supports automatic and manual shortlisting.
- Stores data locally using SQLite.
- Provides CSV and PDF reporting.
- Uses bcrypt password hashing and role-based access.
- Uses validated file uploads and parameterised SQL queries.
How to Install the AI Resume Screening System
The project requires Python 3.10 or later.
Install the project dependencies using:
pip install -r requirements.txt
Download the spaCy language model:
python -m spacy download en_core_web_sm
Download the required NLTK resources:
python -c "import nltk; nltk.download('stopwords'); nltk.download('wordnet')"
Start the Streamlit application with:
streamlit run app.py
The application runs locally and can be opened at:
http://localhost:8501
Installing Tesseract OCR
Tesseract is required for scanned and image-based resumes.
On Windows, Tesseract can be installed using:
winget install UB-Mannheim.TesseractOCR
On Ubuntu:
sudo apt install tesseract-ocr
On macOS:
brew install tesseract
If Tesseract is installed in another location, the TESSERACT_CMD environment variable can be used to specify the executable path.
How to Use the System
- Sign in to the application.
- Create a new job posting.
- Review the skills detected from the job description.
- Upload one or more resumes.
- Process the uploaded resumes.
- Review the extracted candidate information.
- Open Screening & Ranking.
- Select a job and run screening.
- Review candidate scores, matched skills and missing skills.
- Adjust the shortlist threshold or update candidate statuses manually.
- Use the Candidates section to inspect candidate profiles.
- Generate and export reports from the Reports section.
Conclusion
The AI Powered Resume Screening System brings NLP, Machine Learning, Computer Vision and OCR together in a single Python-based application. It can extract information from different resume formats, analyse candidate profiles, compare resumes with job descriptions and produce explainable rankings.
The system combines TF-IDF content similarity, required-skill coverage and experience fit to generate matching scores. It also provides matched and missing skills so recruiters can understand the ranking results.
With Streamlit for the interface, SQLite for data storage, OCR for scanned resumes, bcrypt-based authentication and CSV/PDF reporting, the project provides a complete local resume screening workflow.
Keywords: AI Resume Screening System, Resume Screening System Using Python, AI Resume Screening, Python Resume Screening Project, Resume Analyzer Python, NLP Resume Screening, Machine Learning Resume Screening, OCR Resume Screening, Streamlit Resume Screening, AI Recruitment System