Project Report - AI Resume Analyzer
Project Report - AI Resume Analyzer
Project Report - AI Resume Analyzer
AI RESUME ANALYZER
A tool for resume analysis, prediction and recommendations
A Project Report
Submitted in partial fulfilment of the
Requirements for the award of the degree of
ROLL No.52
CERTIFICATE
This is to certify that Mr. Deepak Bhabagrahi Padhi of T.Y.B.Sc. (Computer Science)
with Seat No. has completed project AI RESUME ANALYZER under
supervision of Dr. Sampada Margaj in this College during the year 2022-2023.
Project-In-Charge H.O.D.
Department of
Computer Science & IT
Date:
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 2
AI Resume Analyzer Roll No 52
ABSTRACT
The aim of this project is to design and develop a tool that results into an easy and helpful solution for
applicants as well as recruiters
“AI RESUME ANALYZER” which parses information from a resume using natural language processing,
finds the keywords, cluster them onto sectors based on their keywords
And lastly show the recommendation, prediction, analytics to the applicant / recruiter based on keyword
matching.
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 3
AI Resume Analyzer Roll No 52
ACKNOLODGEMENT
In completing this graduate project, I have been fortunate to have help, support and encouragement from
many people. I would like acknowledge them for their cooperation.
I would also like to thank Dr. Sampada Margaj, our project teacher for being my guide and allowing
me to do this project.
I am sincerely thankful to professors of BSc-CS for their active involvement, valuable suggestions and
constant supporting during the presentation of the project. Without their diligent and hard work, it would
have not been possible for me to complete the project in record time.
We also own a debt of gratitude to all those who helped me in the development of this project.
I am also thankful to my friends and family for helping me in making this project a big success.
This project imparted a great deal of practical experience, which will be helpful to me in the near future.
Signature_______________________
Deepak Bhabagrahi Padhi
Roll No 52
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 4
AI Resume Analyzer Roll No 52
DECLARATION
I hereby declare that the project entitled “AI Resume Analyzer” done at Kirti M. Doongursee
College of Arts, Science and Commerce, has not been in any case duplicated to submit any other university
for the award of any degree. To the best of my knowledge other than me, no one has submitted to any
other university.
The project is done in partial fulfilment of the requirements for the award of degree of
BACHELOR OF SCIENCE (COMPUTER SCIENCE) to be submitted as final semester project as part
of our curriculum.
Signature_______________________
Deepak Bhabagrahi Padhi
Roll No 52
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 5
AI Resume Analyzer Roll No 52
TABLE OF CONTENTS
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 6
AI Resume Analyzer Roll No 52
INTRODUCTION
1.1. Background
Corporate companies and recruitment agencies process numerous resumes daily. This is no task for
humans. An automated intelligent system is required which can take out all the vital information from
the unstructured resumes and transform all of them to a common structured format which can then be
ranked for a specific job position.
Parsed information includes (name, email address, phone number, work experiences, education,
hobbies, interests, achievements, certifications, projects) keywords and finally the cluster of the
resume (ex: Web Development, Data Science etc.). The parsed information is then stored in a database
(MySQL in this case) for later use.
Unlike other unstructured data (ex: email body, web page contents, etc.), resumes are a bit structured.
Information is stored in discrete sets. Each set contains data about the person's contact, work
experience or education details. In spite of this, resumes are difficult to parse. This is because they
vary in types of information, their order, writing style, etc. To parse the data from different kinds of
resumes effectively and efficiently, the model must not rely on the order or type of data.
To solve this tedious process our tool comes into action which makes the process fast, easy and
reliable. Using NLP Techniques, it extracts keywords from the resume and use it for predictions,
recommendation and analytical representation.
1.2. Objectives
The aim is to design and develop a model that can parse information from unstructured (pdf) data, and
transform it to JSON for furthermore processing
A tool that analyses applicants resume and transform it to a structured JSON format, using parsing
techniques and some programming fundamentals
Which can be used by any organization (company/college/individual user) that handles resume
screening process
To keep a track of all records into database for further admin side analytics. And also, to provides tips
and recommendations based on applicants resume
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 7
AI Resume Analyzer Roll No 52
1.3.1. Purpose
i. Research shows that 90% of all CVs/ Resumes are checked for much less than 2 minutes via the
employers.
ii. This implies that in a maximum of the instances recruiters simply study the bits of critical
components or the points of interest within the Resumes and ignores the rest.
iii. Therefore, the first goal was to make a tool that covers all the parts in a resume and keeps a track
of all records within minimal time span
iv. To make it applicant’s friendly and supportive by providing them predictions and
recommendations
v. To make it recruiter friendly by providing them user data and export it to csv, and also to provide
insights and analytics.
1.3.2. Scope
i. It can be used for getting all the resume data into a structured tabular format and csv as well, so
that the organization can use those data for analytics purposes
ii. By providing recommendations, predictions and overall score user can improve their resume and
can keep on testing it on our tool
iii. And it can increase more traffic to our tool because of user section
iv. It can be used by colleges to get insight of students and their resume before placements
v. Also, to get analytics for roles which users are mostly looking for
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 8
AI Resume Analyzer Roll No 52
SYSTEM ANALYSIS
The process of hiring has evolved over the period of time. In the first-generation hiring model, the
companies would advertise their vacancies on newspapers and television. The applicants would
send in their resumes via post and their resumes would be sorted manually. Once shortlisted, the
hiring team would call the applicants for further rounds of interview.
Needless to say, this was a time-consuming procedure. But the industries started growing and so
did the hiring needs. Hence the companies started outsourcing their hiring process. Hiring
consultancies came into existence. These agencies required the applicants to upload their resumes
on their websites in particular formats. The agencies would then go through the structured data
and shortlist candidates for the company.
This process had a major drawback. There were numerous agencies and each had their own unique
format. To overcome all the above problems an intelligent algorithm was required which could
parse information from any unstructured resumes, sort it based on the clusters and rank it finally.
The same amount of time and effort is often expelled for candidates who are qualified as the ones
who are.
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 9
AI Resume Analyzer Roll No 52
The proposed system “AI RESUME ANALYZER” is an applicant cum recruiter-based solution
which can be widely used by any organization to analyze and get insights of a resume
The model uses natural language processing to understand the resume and then parse the
information from it.
Quite productive for applicants because it gives predictions, tips and recommendations based on
their resume information
System works proper when the uploaded resume is in traditional chronological format
Insightful for admin/recruiter due to its powerful analytics and informative data which is fetched
from user/applicants resume
So that other devices within network can connect through network URL
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 10
AI Resume Analyzer Roll No 52
Python
Frontend: -
HTML5:-
HTML is the standard markup language for Web pages. With HTML you can create your
own website.
CSS3: -
CSS is the language we use to style an HTML document. CSS describes how HTML
elements should be displayed.
JavaScript: -
JavaScript is the world's most popular programming language. JavaScript is the
programming language of the Web.
Streamlit: -
Streamlit is an open-source Python library that makes it easy to create and share beautiful,
custom web apps for machine learning and data science. In just a few minutes you can build and
deploy powerful data apps.
Backend: -
Python: -
Python is a popular programming language. Python can be used on a server to create web
applications.
JSON: -
JSON is a text format for storing and transporting data. JSON is "self-describing" and easy
to understand
Database: -
MySQL: -
MySQL is free and open-source. And is a widely used relational database management
system (RDBMS)
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 11
AI Resume Analyzer Roll No 52
SYSTEM DESIGN
1.
3.1. Module Division
Client: -
Fetching Location and Miscellaneous Data
Using Parsing Techniques to fetch
o Basic Info
o Skills
o Keywords
Using logical programs, it will recommend
o Skills that can be added
o Predicted job role
o Course and certificates
o Resume tips and ideas
o Overall Score
o Interview & Resume tip videos
Admin: -
Get all applicant’s data into tabular format
Download user’s data into csv file
View all saved uploaded pdf in Uploaded Resume folder
Get user feedback and ratings
Pie Charts for: -
o Ratings
o Predicted field / roles
o Experience level
o Resume score
o User count
o City
o State
o Country
Feedback: -
Form filling
Rating from 1 – 5
Show overall ratings pie chart
Past user comments history
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 12
AI Resume Analyzer Roll No 52
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 13
AI Resume Analyzer Roll No 52
A pictorial representation of how the process works using class diagram. The process starts by uploading
resume from user. While uploading resume user has to provide their name, email-address, phone number
A process will work behind the scene which will fetch Ip address and based on Ip address it will fetch
user location details and some miscellaneous data also. After the resume is uploaded and saved to the
root folder the parser will start parsing resume and convert those data into JSON format. The
recommender will use those data for predicting experience, field of interest, resume overall score and
also provides recommendations like skills, tips & ideas, courses, video (resume writing and interview
preparation). After the process is done all the data gets stored into database
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 14
AI Resume Analyzer Roll No 52
The below event table shows types of events that can be used with our tool
The below figures describe how the data flows through out the process
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 15
AI Resume Analyzer Roll No 52
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 16
AI Resume Analyzer Roll No 52
IMPLEMENTATION
Source Code : - https://github.com/deepakpadhi986/AI-Resume-Analyzer
Here are some of the sliced modules which were implemented to create this tool
Parser’s code is not been added in this document because it is too long instead of that we added pdf reader
# Reads Pdf file and check_extractable
def pdf_reader(file):
resource_manager = PDFResourceManager()
fake_file_handle = io.StringIO()
converter = TextConverter(resource_manager, fake_file_handle, laparams=LAParams())
page_interpreter = PDFPageInterpreter(resource_manager, converter)
with open(file, 'rb') as fh:
for page in PDFPage.get_pages(fh,
caching=True,
check_extractable=True):
page_interpreter.process_page(page)
print(page)
text = fake_file_handle.getvalue()
Course Recommendation
# course recommendations which has data already loaded from Courses.py
def course_recommender(course_list):
st.subheader("**Courses & Certificates Recommendations 🎓**")
c = 0
rec_course = []
# slider to choose from range 1-10
no_of_reco = st.slider('Choose Number of Course Recommendations:', 1, 10, 5)
random.shuffle(course_list)
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 17
AI Resume Analyzer Roll No 52
if c == no_of_reco:
break
return rec_course
# sql connector
connection = pymysql.connect(host='localhost',user='root',password='root@MySQL4admin',db='cv')
cursor = connection.cursor()
Experience Prediction
cand_level = ''
if resume_data['no_of_pages'] < 1:
cand_level = "NA"
st.markdown( '''<h4 style='text-align: left; color: #d73b5c;'>You are at Fresher
level!</h4>''',unsafe_allow_html=True)
elif 'INTERNSHIP' in resume_text:
cand_level = "Intermediate"
st.markdown('''<h4 style='text-align: left; color: #1ed760;'>You are at intermediate
level!</h4>''',unsafe_allow_html=True)
elif 'INTERNSHIPS' in resume_text:
cand_level = "Intermediate"
st.markdown('''<h4 style='text-align: left; color: #1ed760;'>You are at intermediate
level!</h4>''',unsafe_allow_html=True)
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 18
AI Resume Analyzer Roll No 52
recommended_skills = []
reco_field = ''
rec_course = ''
## Courses recommendation
for i in resume_data['skills']:
## Data science recommendation
if i.lower() in ds_keyword:
print(i.lower())
reco_field = 'Data Science'
st.success("** Our analysis says you are looking for Data Science Jobs.**")
recommended_skills = ['Data Visualization','Predictive Analysis','Statistical']
recommended_keywords = st_tags(label='### Recommended skills for you.',
text='Recommended skills generated from System',value=recommended_skills,key = '2')
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 19
AI Resume Analyzer Roll No 52
Pie Chart
## Pie chart for predicted field recommendations
labels = plot_data.Predicted_Field.unique()
values = plot_data.Predicted_Field.value_counts()
st.subheader("**Pie-Chart for Predicted Field Recommendation**")
fig = px.pie(df, values=values, names=labels, title='Predicted Field according to the Skills',
color_discrete_sequence=px.colors.sequential.Aggrnyl_r)
st.plotly_chart(fig)
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 20
AI Resume Analyzer Roll No 52
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 21
AI Resume Analyzer Roll No 52
3. Analysis
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 22
AI Resume Analyzer Roll No 52
6. Feedback Form
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 23
AI Resume Analyzer Roll No 52
8. Admin Login
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 24
AI Resume Analyzer Roll No 52
9. Total user’s, user data table, csv file download link, feedback data table
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 25
AI Resume Analyzer Roll No 52
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 26
AI Resume Analyzer Roll No 52
Both employers and candidates will be appeased by our system. Lots of strain on the head of candidate or
employee in Online Recruitment System will have been reduced by this online tool. The system will parse
all the resumes and store them in the database. This system is just a small precent from an actual ATS
(Application Tracking System). Further it can be well developed to make it like an ATS
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 27
AI Resume Analyzer Roll No 52
Final Conclusion
An applicant cum recruiter-based Quick and easy to use Resume Analyzer. That analyze resume data and
extract it into machine-readable output. Helps applicants with recommendations, prediction and analytics.
Helps recruiter by automatically store, organize, and analyze resume data to find the best candidate. Can
be widely used by any organization to analyze and get insights of a resume
Future Works
Add more fields for other roles, and its recommendations respectively. Ranking out the resume based on
score and view individual user details. Decide more accurately and authentically, whether or not to offer
candidate a job
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 28
AI Resume Analyzer Roll No 52
Reference
https://docs.streamlit.io/
https://www.udemy.com/course/the-full-stack-data-scientist-bootcamp/
https://www.ijitee.org/wp-content/uploads/papers/v9i7/F4078049620.pdf
https://www.academia.edu/32543544/Resume_Parser_with_Natural_Language_Processing
https://www.rchilli.com/blog/resume-parsing-101/
https://en.wikipedia.org/wiki/R%C3%A9sum%C3%A9_parsing
T.Y.B.SC - CS / SEM5 (2022-2023) / Kirti M. Doongursee College of Arts, Science and Commerce 29