Using Azure Search custom skills to create personalized job recommendations

Veröffentlicht am 18 Juni, 2019

Program Manager, Worldwide Learning Innovation Lab
Update: the library of technical skills mentioned in the blog is now in preview through Azure Cognitive Services Text Analytics General Named Entity Recognition (NER V3) model. We recommend using the SKILL type from the new V3 Endpoint for this workflow. Read more about the NER V3 service.

The Microsoft Worldwide Learning Innovation Studio is an idea incubation lab within Microsoft’s Worldwide Commercial Business (WCB) organization focuses on developing personalized learning and career experiences. One of the recent experiences that the lab developed focused on offering skills-based personalized job recommendations. Research shows that job search is one of the most stressful times in someone’s life, especially searching for the first job out of college. Everyone remembers at some point looking for their next career move and how stressful it was to find a job that aligns with their various skills.

Harnessing Azure Cognitive Search custom skills together Azure Cognitive Services Text Analytics, we were able to build a feature that offers personalized job recommendations based on identified capabilities from resumes and job descriptions. The feature parses a resume to identify technical skills (highlighted and checkmarked in the figure below.) It then ranks jobs based on the skills most relevant to the capabilities in the resume. Another helpful ability is in the UI layout, where the user can view the gaps in their skills (non-highlighted skills in the figure below) for jobs they’re interested in and work towards building those skills.

An image of the Worldwide Learning personalized jobs search demo UI

Figure one: Worldwide Learning Personalized Jobs Search Demo UI

In this example, our user is interested in transitioning from a Software Engineering role to Program Management. Displayed in the image above you can see how the top jobs for our user are in Program Management but they are ranked based on our user’s unique capabilities in areas like AI, Machine Learning and Cloud Computing, resulting in the top ranked job on the Bing Search and AI team which deals with all three.

How we used Azure Search

Image of the Worldwide Learning personalized jobs search architecture.

Figure two: Worldwide Learning Personalized Jobs Search Architecture

The above architecture diagram shows the data flow for our application. We started with around 2000 job openings pulled directly from the Microsoft Careers website as an example. We then indexed these jobs, adding a custom Azure Search cognitive skill to extract capabilities from the descriptions of each job. This allows a user to search for a job based on a capability like “Machine Learning”. Then, when a user uploads a resume, we upload it to Azure Blob storage and run an Azure Search indexer. Leveraging a mix of cognitive skills provided by Azure and our custom skill to extract capabilities, we end up with a good representation of the user’s capabilities.

To personalize the job search, we leverage the tag boosting scoring profile built into Azure Search. Tag boosting ranks search results by the user’s search query and the number of matching “tags” (in this case capabilities) with the target index. So, in our example, we pass the user’s capabilities along with their search query and get jobs that best match our user’s unique set of capabilities.

With Azure Cognitive Search skills, our team was able to make the personalization of job search, a desirable capability among job seekers and recruiters, possible through this proof of concept. You can use the same process we followed to achieve the same goal for your own careers site. The Skills Extractor Library that we used in this example is now in preview through Azure Cognitive Services Text Analytic General Named Entity Recognition (NER V3) model. You can leverage this service through using the Text Analytics General endpoint.

Please be aware that before running this sample, you must have the following:

  • Install the Azure CLI. This article requires the Azure CLI version 2.0 or later. Run az --version to find the version you have.
  • You can also use the Azure Cloud Shell.

To learn more about this feature, you can view the live demo (starts at timecode 00:50:00) and read more in our GitHub repository.

Feedback and support

We’re eager to improve, so please take a couple of minutes to answer some questions about your experience using this survey. For support requests, please contact us at WWL_Skills_Service@microsoft.com.