Match Your Resume To A Job Description Using Python

Resume Scanner

Image for post
Image for post

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 !

Start Programming:

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
import docx2txt

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()
Image for post
Image for post

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
print(resume)
Image for post
Image for post
Sample of the Python 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
print(job_description)
Image for post
Image for post
Sample of Google Software Developer 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
print("\nSimilarity Scores:")
print(cosine_similarity(count_matrix))
Image for post
Image for post
Cosine similarity matrix

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)[0][1] * 100
matchPercentage = round(matchPercentage, 2) # round to two decimal
print("Your resume matches about "+ str(matchPercentage)+ "% of the job description.")
Image for post
Image for post

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.

Image for post
Image for post
Learning Python

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 ).

Image for post
Image for post
https://cdn.pixabay.com/photo/2017/03/22/01/30/resume-2163673_960_720.png

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store