At Search Party we are in the business of creating intelligent recruitment software. One of the problems we deal with is matching candidates and vacancies in order to create a recommendation engine. This usually requires parsing, interpreting and normalising messy, semi-/unstructured, textual data from résumés and vacancies.
Traditionally, this is where a lot of the following come in: conditional random fields, bag-of-words, TF-IDFs, WordNet, statistical analysis, but also a lot of manual work done by linguists and domain experts for the creation of synonym lists, skill taxonomies, job title hierarchies, knowledge bases or ontologies.
Despite that seeming like a bombardment of jargon, the point is simpler: while these concepts are very valuable for the problem we try to solve, they also require a certain amount of manual feature engineering and human expertise. This expertise is certainly a factor that makes these techniques valuable, but in what follows we would like to explore more automated ways of extracting knowledge from recruitment data to complement these more traditional approaches.
While some of the key concepts of deep learning have been around for some time, it was only more recently that everyone got excited: in 2012 researchers from the University of Toronto won the ImageNet image classification challenge using a convolutional neural network (CNN) by obtaining an error rate that was about 40% lower than the second-best entry. On a personal level, I got excited after reading the 2011 “Natural language processing (almost) from scratch” paper by Collobert et al. applying a CNN to textual information. I also enjoyed the Hellinger PCA paper by Lebret and Collobert and then there was of course the famous Word2Vec paper by Mikolov, Sutskever et al.
So what is the practical value of these deep learning methods for recruitment data? The aim of this project was to get an idea about their usefulness for extracting knowledge about the job space thereby leveraging a large amount of job vacancy data. We applied minimal data cleaning and basically started from the raw job descriptions. No feature engineering was done.
We set out to discover what we expect from a relatively simple but effective deep learning approach and if it could provide us with some insights about our data.