In this article I will create a program to see how similar a resume is to a job description. This could be a good way to see how well your resume matches a specific job description.
Approximately 80% of companies in Australia (and 90% of large companies worldwide) use Applicant Tracking Systems (ATS) or Human Resources Information Systems (HRIS) to search for qualified candidates from large job applicant pools. -https://cvsaviour.com.au/free-resume-job-match-check/
This program will be similar….
If you prefer not to read this article and would like a video representation of it, you can check out the YouTube Video below. It goes through everything in this article with a little more detail, and will help make it easy for you to start developing your own program, or you can use both as supplementary materials for learning !
I will start by stating what I want this program to do. I want this program to return the percentage % match between a resume and a job description.
#Description: Create a program to see how similar a resume is to a job description
Import The Library & Install The Package
For this program I need to be able to transform a word document to text, since most resumes seem to be word documents and the resume that I downloaded is a word document. So I will install the package docx2txt.
# Install the docx2txt package
pip install docx2txt# Import the library
Load The Data
I’m using Googles website to write this program, so I will be using Googles library to upload the resume & job description file. Note: I got this resume for a Python developer online, you can check it out here. I got the job description for a software developer at Google here.
# Load the data
from google.colab import files
uploaded = files.upload()
Next I will store the resume in a variable and print it to the screen.
# Store the resume in a variable
resume = docx2txt.process("python_resume.docx")
# Print the resume
Now I will store the job description in a variable and print it to the screen.
# Store the job description into a variable
job_description = docx2txt.process("job_description.docx")
# Print the job description
Create a list of text.
# A list of text
text = [resume, job_description]
Create a count vectorizer object and convert the text documents to a matrix of token counts.
from sklearn.feature_extraction.text import CountVectorizer
cv = CountVectorizer()
count_matrix = cv.fit_transform(text)
Get and print the cosine similarity scores.
from sklearn.metrics.pairwise import cosine_similarity
#Print the similarity scores
Finally I will get the percentage match between the resume and the job description and print it to the screen.
#get the match percentage
matchPercentage = cosine_similarity(count_matrix) * 100
matchPercentage = round(matchPercentage, 2) # round to two decimal
print("Your resume matches about "+ str(matchPercentage)+ "% of the job description.")
Looks like the percentage this resume matched the job description is about 64.23% .
That’s it, we are done creating this program !
If you are also interested in reading more on Python one of the fastest growing programming languages that many companies and computer science departments use then I recommend you check out the book Learning Python written by Mark Lutz’s. Also you can see the full code in this article here.
Thanks for reading this article I hope it’s helpful to you all! If you enjoyed this article and found it helpful please leave some claps to show your appreciation. Keep up the learning, and if you like Python, machine learning, mathematics, computer science, programming or algorithm analysis, please visit and subscribe to my YouTube channels (randerson112358 & compsci112358 ).