MLNCCR
MLNCCR
ON
“RESUME ANALYZER WITH SMART SUGGESTIONS”
(Cloud Computing: Full Stack Application and Machine Learning)
Submitted partial fulfillment of the requirements for the award of degree of
BACHELOR OF ENGINEERING
IN
COMPUTER SCIENCE & ENGINEERING
Submitted By
DARSHAN E S 1MJ23CS407
ARIF ALI 1MJ23CS402
CERTIFICATE
This is to certify that the Mini project work titled “RESUME ANALYZER WITH SMART
SUGGESTIONS” is a Bonafede work carried out by DARSHAN E S, ARIF ALI, in partial
fulfilment for the award of Degree of Bachelor of Engineering in Computer science and
Engineering of the Visvesvaraya Technological University, Belagavi during the year 2024-
2025. It is certified that all the corrections/suggestions indicated for Internal Assessment have
been incorporated in the Report. The mini project report has been approved as it satisfies the
academic requirements.
DECLARATION
We, students of Sixth semester B.E., Department of Computer science and Engineering,
MVJ College of Engineering, Bengaluru, hereby declare that the mini project titled
“RESUME ANALYZER WITH SMART SUGGESTIONS” has been carried out by us
and submitted in partial fulfilment for the award of Degree of Bachelor of Engineering in
Computer science and Engineering during the year 2024 - 2025. Further we declare that
the content of the dissertation has not been submitted previously by anybody for the
award of any Degree or Diploma to any other University.
We also declare that any Intellectual Property Rights generated out of this project carried
out at MVJCE will be the property of MVJ College of Engineering, Bengaluru and we
will be one of the authors of the same.
1MJ23CS407 DARSHAN E S
Place: BANGALORE
Date:
ACKNOWLEDGEMENT
The satisfaction and euphoria that accompany a successful completion of any task would be
incomplete without the mention of people who made it possible, success is the epitome of hard
work and perseverance, but steadfast of all is encouraging guidance.
So, with gratitude we acknowledge all those whose guidance and encouragement served as
beacon of light and crowned our effort with success.
We are thankful to Dr. Ajayan K R, Principal of MVJCE for his encouragement and support
throughout the project work.
We are thankful to Dr. I Hameem Shanavas , Dean, School of CSE, MVJCE for his
encouragement and support throughout the project work.
We are thankful to Mr. Kumar R, Controller Of Examinations for his encouragement and
support throughout the project work.
We are also thankful to Dr. Kiran Babu T S, HOD, CSE Department for his incessant
encouragement & all the help during the project work.
We consider it a privilege and honor to express our sincere gratitude to our guide Mrs. Sushma
D, Mrs. Syeda Shafia, Assistant Professor, CSE Department for their valuable guidance
throughout the tenure of this project work, and whose support and encouragement made this
work possible.
It is also an immense pleasure to express our deepest gratitude to all faculty members of our
department for their cooperation and constructive criticism offered, which helped us a lot during
our project work.
Finally, we would like to thank all our family members and friends whose encouragement and
support was invaluable.
Thanking You
I
ABSTRACT
II
TABLE OF CONTENT
ACKNOWLEDGEMENT........................................................................................................I
ABSTRACT.............................................................................................................................II
TABLE OF CONTENT.........................................................................................................III
TABLE OF FIGURES............................................................................................................V
1.2 OBJECTIVES............................................................................................................1
1.3 SCOPE.........................................................................................................................2
1.4 PROCEDURE..............................................................................................................2
III
4.3 CONTENT RECOGNITION AND SCORING ENGINE...............................................9
CHAPTER 5 METHDOLOGY............................................................................................10
5.1 PROJECT DESIGN AND ARCHITECTURE...............................................................10
5.2 IMPLEMENTATION.....................................................................................................11
5.4 WORKFLOW.................................................................................................................13
CHAPTER 8 IMPLEMENTATION....................................................................................21
CHAPTER 9 OUTPUT..........................................................................................................29
CHAPTER 10 SCREENSHOTS...........................................................................................32
CHAPTER 11 CONCLUSION.............................................................................................35
REFERENCES.......................................................................................................................36
IV
TABLE OF FIGURES
V
TEAM MEMBER CONTRIBUTIONS
Backend Integration
Frontend Development UI
Design
Responsive Layout.
Model Development
Comparison Model
File Upload ,
02. Arif Ali
Cloud Development
Database Configuration
CI/CD
RESUME ANALYSIZER WITH SMART SUGGESTIONS
CHAPTER 1
INTRODUCTION
1.1 Introduction
In today’s digitally driven job market, creating a professional and optimized resume is crucial
for job seekers to stand out. Recruiters and automated Applicant Tracking Systems (ATS)
quickly scan resumes for relevant keywords, structure, and clarity. This project introduces a
Smart Resume Analyzer that uses Natural Language Processing (NLP), keyword extraction,
and data visualization to evaluate resumes. It offers a comprehensive analysis and tailored
suggestions to improve alignment with specific job descriptions.
1.2 Objectives
The primary aim is to develop a tool that not only checks resume for compliance and
completeness but also provides actionable feedback to increase interview success chances.
The system is locally hosted or can be securely deployed, ensuring resumes are processed
without third-party exposure, maintaining data privacy.
Using NLP and regular expression techniques, the tool accurately identifies crucial resume
elements such as contact details, skills, education, and measurable achievements.
1.2.3 Spoof-Resistance
The smart suggestion engine verifies consistency between the resume and job description,
reducing the chance of keyword stuffing or irrelevant content being passed as qualified
experience.
The application is built using Streamlit for an intuitive web interface, enabling users to
upload resumes and receive instant analysis without any technical knowledge.
Resumes are analyzed in real time with immediate feedback, and a downloadable report is
generated to support further improvement and professional usage.
1.3 Scope
This project is suitable for job seekers, HR professionals, and educational institutions offering
career services. It supports resumes in .pdf and .docx formats, checks multiple evaluation
criteria, and provides tailored improvement suggestions. The system also generates visual and
downloadable feedback for comprehensive analysis.
1.4 Procedure
4. Job description (if provided) is analyzed for keyword matching using KeyBERT.
6. A downloadable PDF report and suggestions are generated and presented via an
interactive UI.
Backend Logic:
Functional Blocks:
The resume text acts as the primary dataset. Additional data includes:
Predefined rule sets for validation (e.g., regex for email, phone)
CHAPTER 2
LITERATURE SURVEY
CHAPTER 3
EXISTING SYSTEM
Several tools and platforms exist today that provide resume evaluation, keyword matching,
and job-fit analysis. Most of these tools are designed to assist candidates in tailoring their
resumes for Applicant Tracking Systems (ATS) or offer limited AI-based insights. However,
each has its limitations in terms of depth, interactivity, and accessibility
Many resume analysis systems use basic keyword matching techniques, such as TF-IDF
(Term Frequency–Inverse Document Frequency) or rule-based keyword presence checks.
These systems lack contextual understanding and may fail to capture semantically relevant
terms not explicitly stated.
Existing systems apply basic text pre-processing such as tokenization, lowercasing, and stop
word removal. Few systems implement advanced steps like date normalization, semantic
grouping of skills, or measurable achievement recognition, which are critical for accurate
resume scoring.
Accuracy in keyword extraction and information recognition varies depending on the format
and structure of the resume. Some parsers perform well on standard templates but fail on
creative or infographic-based resumes. This inconsistency affects reliability.
Some AI-driven resume systems (especially those using deep learning or BERT models)
require significant computational power and memory. This makes them less feasible for low-
resource environments or real-time web-based applications without optimization.
Systems often detect the presence of skills but lack the ability to match those skills
contextually to specific job descriptions. The absence of semantic understanding leads to
irrelevant scoring or misleading suggestions.
Applicants may attempt to "stuff" keywords into resumes to game the system. Many existing
tools fail to detect unnatural keyword use or irrelevant content inclusion, leading to
misleading evaluations and poor recruiter experiences.
CHAPTER 4
PROPOSED SYSTEM
The proposed system is a web-based resume analysis tool that evaluates resumes based on
their structure, content, and alignment with a given job description. It uses Natural Language
Processing (NLP), regular expressions, and keyword extraction models to analyze resumes
and provide smart, actionable suggestions. It overcomes the limitations of existing systems
by offering semantic analysis, visual feedback, and downloadable performance reports in real
time.
To improve the semantic understanding and quality of resume evaluation, the proposed
system plans to integrate Meta's LLaMA (Large Language Model Meta AI). LLaMA
provides superior language understanding, making it possible to:
This enhancement will significantly increase the precision of smart suggestions and overall
content evaluation.
The system allows users to upload resumes in PDF and DOCX formats. It uses:
The extracted text is then pre-processed for further analysis, including removal of
unnecessary characters, normalization, and segmentation into logical sections like education,
skills, and work experience.
This module functions like pattern recognition, analogous to biometric iris pattern matching. It
identifies and validates:
Each recognized component is matched against a predefined rule set and scored accordingly to
compute both section-wise and overall resume scores.
This module acts as an intelligent validator, similar to biometric authentication, but in the
textual domain. Features include:
Use of KeyBERT or LLaMA for keyword extraction from resumes and job
descriptions.
Suggestions for missing or weak areas that are critical for the target job.
This integration provides a secure, intelligent, and accurate analysis of resume readiness for
any job opportunity.
CHAPTER 5
METHDOLOGY
The methodology is divided into various stages, including input processing, data extraction,
analysis, scoring, suggestion generation, and output visualization. Each stage plays a
crucial role in ensuring accurate, personalized, and meaningful feedback for resume
improvement.
The system integrates modules such as resume parsing, data analysis, keyword extraction,
visualization, and PDF report generation. These modules work together in a web-based
environment powered by Streamlit for a seamless user experience.
Hardware:
o Standard laptop/desktop
o 8 GB RAM, Dual-core CPU (minimum)
Software:
o Python 3.9+
o Streamlit (Frontend/UI)
o pdfplumber, docx2txt (Text extraction)
o KeyBERT, re (NLP & Regex)
o Plotly (Visualization)
o FPDF (Report generation)
No resume data is stored permanently. All processing is done in real-time and in-memory. If
deployed online, HTTPS and session isolation are used to protect user files.
5.2 Implementation
The system follows a modular design approach to ensure independent development and testing
of each feature (parsing, analysis, visualization).
Input is collected directly from the user in the form of resumes (.pdf/.docx) and optional job
descriptions (free text).
5.2.3 Pre-Processing
Contact details
Education and experience keywords
Measurable data (e.g., numbers, percentages)
Skills and achievements
All components are integrated using Python functions orchestrated within Streamlit. Internal
state management handles user inputs, results, and interactions.
Developed using Streamlit for simplicity and responsiveness. Supports file uploads, real-time
feedback, interactive plots, and download buttons.
Each module is tested for input/output correctness, edge case handling, and user experience
quality.
5.2.9 Development
Implemented in Python with iterative testing and feature additions. Version control was
maintained using Git.
The system allows for easy updates like adding new skill checks, extending keyword models, or
supporting additional file types.
Tasks include: Text Extraction, Content validation, Keyword comparison, Scoring and
Suggestion Generation, Visualization and Reporting.
5.4 Workflow
Regex and NLP are applied to identify structural and semantic features.
All modules interact via function calls, and the Streamlit interface coordinates state and data
flow.
User sees visual feedback, improvement tips, and has the option to download the analysis
report.
The system can be deployed locally or on cloud platforms and updated easily.
All functions are tested with various file types and content styles.
Resume processing time is tested under different file sizes and content loads to ensure real-
time feedback.
Validation of regex patterns, keyword matches, and scoring logic ensures accurate analysis.
User interface is tested with students and job seekers to ensure clarity and ease of use.
Ensures uploaded data is not stored or leaked, and any user data is processed in-session only.
5.5.7 Validation
End-to-end system testing confirms all inputs yield consistent and valid outputs with
actionable feedback.
CHAPTER 6
SOFTWARE SPECIFICATION
o PyCharm Community/Professional
o JupyterLab (for module testing)
These IDEs offer linting, code auto-completion, and real-time debugging support.
6.1.5 Security Tools
Session Management: Built-in with Streamlit
Secure File Handling: Temporary storage during runtime only
Optional Deployments: Can be served over HTTPS to ensure secure transmission
Privacy-first Design: No cloud storage or data logging
6.1.6 Testing Tools
Manual Testing Tools: Python’s unittest module
Linting and Static Analysis:
o pylint
o flake8
Test Case Management: Google Sheets or any test log for functional/UX testing
Browser Testing: Chrome DevTools, Firefox Dev Edition.
CHAPTER 7
SYSTEM ANALYSIS AND DESIGN
The goal of the system is to help users analyze their resumes in real time and provide
suggestions based on job description matching. The requirements can be divided into:
Functional Requirements:
Non-Functional Requirements:
o User-friendly interface
o Platform independence
o Real-time response
Technical Feasibility:
Python and its libraries (e.g., Streamlit, pdfplumber, KeyBERT) make the
implementation technically viable. All tools are open-source and well-documented.
Operational Feasibility:
End-users can use the system with minimal training due to the intuitive interface. It
requires no installation beyond a web browser.
Economic Feasibility:
The system uses free, open-source libraries. It can be deployed at low cost on
platforms like Streamlit Cloud, making it economically feasible.
Client-Server Model:
Frontend (Client):
Backend (Server):
o Python functions for file parsing, data analysis, NLP, and report
Resume Parser:
Extracts raw text using pdfplumber or docx2txt.
Analyzer Module:
Performs checks: ATS readiness, skill presence, timeline consistency, grammar use.
Keyword Engine:
Uses KeyBERT to match resume keywords with job description.
Scoring System:
Assigns score per section and overall based on predefined rules.
PDF Generator:
Builds a structured report of results using FPDF.
UI Components:
Visualize scores using Plotly charts and provide interactive feedback.
2. Text extracted →
5. Score calculated →
Unit Testing: Each module (e.g., parsing, scoring, suggestions) is tested individually.
CHAPTER 8
IMPLEMENTATION
import streamlit as st
import docx2txt
import pdfplumber
import re
plotly.graph_objects as go from
extract_text_from_pdf(file):
text = ""
page_text = page.extract_text() if
page_text:
text += page_text
return text
def extract_text_from_docx(file):
return docx2txt.process(file)
def get_file_size(file):
analysis = {
"Document Synopsis": {
"ATS Compliance": "✅" if ".pdf" in text.lower() or ".docx" in text.lower() else "❌", "Page
},
"Data Identification": {
},
"Lexical Analysis": {
},
"Semantic Analysis": {
return analysis
def calculate_overall_score(analysis):
total_checks = 0
passed_checks = 0
total_checks += 1
if result == "✅":
passed_checks += 1
def section_scores(analysis):
scores = {}
total = len(items)
= int((passed/total)*100)
return scores
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
align="C") pdf.ln(10)
pdf.ln(10)
pdf.set_font("Arial", size=12)
pdf.ln(5)
return pdf.output(dest='S').encode('latin1')
suggestions = []
if job_desc:
kw_model = KeyBERT()
resume_kw_set
if missing:
else:
return {
"suggestions": suggestions
if uploaded_file:
file_size = get_file_size(uploaded_file)
uploaded_file.seek(0)
if uploaded_file.name.endswith('.pdf'):
text = extract_text_from_pdf(uploaded_file)
else:
text = extract_text_from_docx(uploaded_file)
st.write(f"**File Name:**
{uploaded_file.name}") analysis =
calculate_overall_score(analysis) sec_scores =
go.Figure(go.Indicator(
mode="gauge+number",
value=overall_score,
))
Section-wise Scores")
fig_bar = go.Figure(go.Bar(
x=list(sec_scores.values()),
DEPT. OF CSE, MVJCE 2024 - 2025 26
RESUME ANALYSIZER WITH SMART SUGGESTIONS
y=list(sec_scores.keys()),
orientation='h',
marker=dict(color='#2196f3'),
))
st.plotly_chart(fig_bar, use_container_width=True)
st.markdown(f"### {main_section}")
if result == "✅":
st.success(f"✅ {item}")
else:
st.error(f"❌ {item}")
st.download_button(label="Download PDF",
data=pdf,
file_name="resume_analysis_report.pdf",
mime='application/pdf')
if result == "❌":
st.info(sug)
CHAPTER 9
OUTPUT
The output of the Resume Analyzer system consists of real-time visual feedback, section-
wise analysis, smart keyword-based suggestions, and a downloadable report. These outputs
are designed to help users improve their resume quality and tailor it specifically for the job
descriptions they are targeting.
Once a resume is uploaded, the system processes it instantly and displays an overall resume
score (out of 100). This score is calculated based on several factors including:
Document structure
Data completeness
ATS compliance
The score is visually presented using a gauge chart, color-coded to indicate performance:
Document Synopsis
Data Identification
Lexical Analysis
Semantic Analysis
Each section receives an individual score based on specific validation checks. These scores are
shown using a horizontal bar chart, enabling users to identify which sections need
improvement.
⬛ Pass: If the resume meets the requirement (e.g., valid phone number found).
This allows users to quickly pinpoint which components are missing or poorly presented.
If the user provides a job description, the system extracts relevant keywords using KeyBERT
and compares them with the resume content. Based on this comparison, the system outputs:
A list of missing keywords that should be added to better align with the job
Example Suggestion:
.' Consider adding these keywords relevant to the job: project management, time tracking, data
analytics.
A professionally formatted PDF report can be generated and downloaded by the user. This report
includes:
Resume refinement
Career counseling
The entire output is presented through an interactive Streamlit web interface, which ensures:
Example Output:
Section Scores:
CHAPTER 10
SCEENSHOTS
CHAPTER 11
CONCLUSION
The Resume Analyzer with Smart Suggestions is a practical and intelligent system designed
to assist job seekers in optimizing their resumes for both human recruiters and automated
Applicant Tracking Systems (ATS). Through the use of Natural Language Processing
(NLP), semantic analysis, and real-time visualization, the system effectively evaluates
resume content, structure, and alignment with specific job descriptions.
The project successfully meets its objectives by offering section-wise analysis, keyword-
based suggestions, and an overall scoring mechanism. By leveraging libraries such as
KeyBERT, pdfplumber, and Streamlit, the system provides an accessible and interactive
platform where users can upload resumes, receive instant feedback, and download a detailed
PDF report. It ensures ATS compliance, enhances keyword relevance, and provides guidance
on how to improve resume quality through measurable, actionable suggestions.
One of the major strengths of the system is its modular design, which allows for easy
updates and future enhancements. The use of open-source technologies makes it a cost-
effective and scalable solution for individual users, educational institutions, or career
development centers.
In conclusion, the project bridges a significant gap between automated resume screening
technologies and the needs of job seekers. It empowers users to take control of their resume
quality and competitiveness in a data-driven job market. With future enhancements such as
deeper LLM-based content suggestions, grammar corrections, and integration with online job
portals, the system holds strong potential for broader adoption and long-term impact.
REFERENCES
[1] Maarten Grootendorst. (2020). KeyBERT: Minimal keyword extraction with BERT.
GitHub Repository.
Available at: https://github.com/MaartenGr/KeyBERT
[2] Pandey, S., Mehta, A., & Agarwal, N. (2018). Resume Parser Using NLP Techniques.
International Journal of Engineering Research & Technology (IJERT), 7(7), 1–4.
[3] Chitra, B., & Rajalakshmi, P. (2019). Automated Resume Classification and Ranking
System Based on Semantic Analysis. IEEE International Conference on Intelligent
Computing and Control Systems (ICICCS), 510–514.
[4] Smith, J. (2017). The Role of ATS in Modern Recruitment. Journal of Human Resource
Studies, 5(3), 122–130.
[5] Bhatia, A. M. (2016). Visual Feedback in Learning Systems: A Survey. International
Journal of Emerging Technologies in Learning (iJET), 11(12), 4–9.
[6] Agarwal, K., & Tiwari, V. (2020). An AI-Based System for Resume Analysis and Job
Matching. International Research Journal of Engineering and Technology (IRJET), 7(6),
800–804.
[7] Roy, S., & Saha, T. (2019). Semantic Similarity Measurement for Resume Screening.
Proceedings of the International Conference on Computational Intelligence and Data
Science (ICCIDS), 154–159.
[8] Streamlit Documentation. (2023). Streamlit – The fastest way to build data apps in Python.
Available at: https://docs.streamlit.io
[9] Plotly Technologies Inc. (2022). Plotly Python Open Source Graphing Library.
Available at: https://plotly.com/python/
[10]Python Software Foundation. (2023). Python Regular Expression Library (re).
Available at: https://docs.python.org/3/library/re.html
[11]FPDF Documentation. (2023). FPDF for Python – Create PDF Documents Easily.
Available at: https://pyfpdf.github.io/fpdf2/