ResumeAnalyzer | An Easy Solution to Rank Resumes using Spacy

Introduction
Let’s say, you have an opening for a data scientist in your organization. You post the requirement and you receive thousands of resumes. Great!
But there’s a challenge — how do you select the top 50 or 100 most relevant resumes against your requirement description for the next round?
If this problem sounds familiar to you, ResumeAnalyzer is here to rescue you.
ResumeAnalyzer is an easy, lightweight python package to rank resumes based on your requirement in just one line of code.
Demo
How it works?
It uses textract
to process your documents, spacy’s PhraseMatcher
to rank your resumes and Dash
to render UI inside notebook as well as in browser.
Here’s is a complete code looks like —
|
|
Let’s breakdown the code
1 - Install, Import & Instantiate ResumeAnalyzer
|
|
2 - Define the rank criteria
A rank criteria is set of categories and its important terms to rank a candidate’s resume.
|
|
ResumeAnalyzer
passes this information to Spacy’s PhraseMatcher
to calculate if that term is present in resume. If present, +1 is assigned to the resume in that category.
For e.g. — if “Neural Network” is present in the resume, the candidates is assigned a +1 in the Deep Learning category.
3 - Render
Render
renders the results inside jupyter notebook or browser using Dash
.
|
|
render
takes 3 arguments —
- path — path to resume folder
- metadata — ranking criteria defined in step 2
- mode — mode can be “notebook” if you want to visualize the results in Jupyter Notebook or “browser” to see the results in separate browser tab.
🥳Voila — We’re done!

The Best Part !— The above table is filterable as well as sortable.
- You can sort candidates based on “Deep Learning” if you want to pickup candidates based on their deep learning skills
- You can filter candidates with “Total Score” > 3
- You can also select candidates based on percentile (Ranking): With “Ranking” >0.7 means candidates above 70th percentile.
👋 Try it out in Google Colab