How to Automate Job Searches Using Named Entity Recognition
Jul 24, 2020
Have you ever found a job description that precisely matches your skills and education level? What makes a job posting more relevant than others? Most of today’s job search platforms rely on matching keywords from job descriptions to your profile without grasping the semantics and meaning of each word, thus decreasing the job search efficiency. For example, let’s say that your CV has the keyword “JavaScript” in it. A normal keyword search will yield results that match the exact same word, missing a significant number of job posts that do not have the exact keyword “JavaScript” but contain related keywords such as “Java”, “JS” “HTML”, and “CSS”.
I especially encountered this problem when I was job hunting after graduation; I received countless of irrelevant job emails from job search engines and spent hours online trying to manually look for more relevant jobs. On the other hand, employers face a similar problem when trying to hunt for good candidates. It is estimated that companies lose on average $14,900 on every bad hire and nearly 74% of employers say they hire the wrong person.
Wouldn’t it be nice to get job recommendations that precisely match the candidate profile to the job description? This is exactly what will be demonstrated in this tutorial using Named Entity Extraction. We have developed an easy to use text annotation tool at UBIAI to create the Named Entity Recognition (NER) model for entity extraction.
Named Entity Recognition for Entity Extraction
One way to get more relevant job recommendations is to classify words into categories such as Skills, Experience, Degree, etc. (entities) instead of searching for static keywords. Once entities are extracted from job descriptions, you can perform similarity analysis to your resume to get more relevant job recommendations. For this project, I used NER machine learning tool to extract relevant entities from job postings and from my resume. There are several NER tools available such as Stanford NER, NLTK, Spacy, etc. I chose the open source Spacy library because it is fast and has the highest accuracy as shown in the table below:

NLP models accuracy and speed comparison.