Better match-making through AI — a practical scenario

Salim Virani
Source Institute
Published in
4 min readMay 6, 2017

EnhanCV, one of the world’s best resume-making tools, was considering how to use AI to help people find the best job they can get. Could AI improve the guiding questions they ask when people are writing their CV? Could EnhanCV offer a new service helping match candidates to jobs?

At Source Summit AI, George Ivanov, co-founder of EnhanCV got advice from Anish Mohammed and Mariana Damova, two AI experts, about different approaches.

EnhanCV profiles paint a much fuller picture of a person, especially for organizations hiring around cultural fit, or looking for someone with a particular attitude. George explained:

For example, to to find people who are interested in sports, like even in football, and who are interested in software-as-a-service companies. Or, if they’re spending every morning in the sea and you’re building a wearable for swimmers, it’s your person. There’s a much higher probability [of a good match.]

All of those interests and personal behaviors form part of the candidate’s profile.

Structuring your data for search

George framed a search problem:

I’m more interested in the how. We don’t have the matching, but this is the future, this is what most companies are doing. The problem with them is that they’re matching the old school data which isn’t enough.

Anish started by tackling how to structure the data:

Matching essentially means that you create a vector, so a vector would be a bunch of features that you have on a particular person, and then you actually find the closest one. What you’re trying to do is get it as close as you want.

Vector” is math-speak for something that has more than one measurable element. Vectors in physics are often used to describe the speed or movement of an object in more than one dimension, for example moving forward 2 metres and up 1 metre.

In the case of a candidate’s profile, it could rate experience in different industries, aptitude at different skills and interests in a topic: 4 years working in hotels, 6 months as an journalism intern, 4/5 at writing, 5/5 at face-to-face customer response, 3/5 interest in boating, etc. That’s a single vector describing somebody.

If you can describe the vector of an ideal candidate, you can look for the closest matches in your database.

Mariana explained how to enhance the raw profile data for richer vectors that would provide better matches:

About the matching, I would suggest using semantic matching ontologies, ontologies where it will become possible to match all the strings, but also concepts. So, for example, to match web development with javascript, things like that.

Semantic matching is where a keyword is understood as being part of something else, usually placed in some kind of hierarchy or map that connects the concepts. A familiar ontology is the biological taxonomy — a lion is a species of feline, which is a mammal, which is an animal.

Working at the front desk of a hotel is is a type of face-to-face interaction with customers, which is a type of customer service. But front-desk work is also a type of shift-work, and requires the ability to work to a process and also make ad-hoc decisions based on some policies. These features of the candidate become a part of their vector when you “augment semantically.”

A great way to see this in action is Reuters’ OpenCalais service. Copy any text into the demo and it will highlight key words that it’s matched to its ontology of places, people, concepts and more. Try the demo here: http://www.opencalais.com/opencalais-demo/

Hey, we’re starting a practical email course on AI. Please help us by sharing your learning goals at ai.source.institute! :)

Matching

When it comes to matching candidates to jobs and vice versa, Anish compared two approaches, starting with how a typical job site works.

[When you do a search for a web developer,] everybody becomes a web developer, if you put in architect, everyone becomes an architect and they say “do you have some skill on this thing?”

This is fairly direct matching. It eliminates anyone without the specific skills you’re looking for, but still leaves you with a lot of people to choose from.

Anish explained there’s a way to use context to help narrow that search further:

Essentially, you can do a TF-IDF, look at all the keywords and then summarize it. There are already [tools] which will allow you to do summarization.

TF-IDF is a way to rate importance of different features of a vector. It’s short for “term frequency–inverse document frequency” which basically means if a term comes up a lot in someone’s profile, it’s probably a significant feature of theirs (the “term frequency” part.) But then, if that same feature comes up a lot with everyone’s profile, it’s probably not significant (the “inverse document frequency” part.)

If you’re hiring a sports journalist, and if they’re a fan of the Olympics and are leading their local football league, that’s probably not a big deal. But if you’re looking to hire a self-driven salesperson, then the same facts showing they excel in sports stand out as an indication of their drive.

The ability to spot that is where TF-IDF shines.

Finding the needle in the haystack

In EnhanCV’s case, the advice for optimised match-making meant structuring profile data into vectors, augmenting them, and then implementing TF-IDF.

Thanks to George Ivanov, Anish Mohammed and Mariana Damova for sharing at Source Summit AI.

We’d love to write practical lessons like this for you — sign up for free at ai.source.institute.

--

--

Salim Virani
Source Institute

If you could pick anyone in the world as your teacher, what would you learn? That’s the world we’re creating at Source Institute. http://www.salimvirani.com