Extracting and matching skills from a project and a resume is not an easy task. It might be easy for a human to understand that Mysql and Postgres are really similar skills but it’s not easy to teach that to a machine. The problem escalates when you have an ever expanding database of candidates with new skills. At this point, a rules engine is just not up to the task. another challenge was we had to make the recommendations in real time.
Our work involved combining skills embeddings trained for this specific purpose with a ranking system for which we ended up using Yandex’s Catboot. The system’s features are actually more complex than just a recommendation (we use machine learning for multiple tasks that help reduce manual work). Different requirements forced us to use more precise metrics such as word mover’s distance or wmd when we needed to be accurate, and simpler metrics when we needed to be faster. These additional features added to the system allowed us to include Google’s BERT question answering.