All Technologies Used
Motivation
To enhance MyAmichi’s search engine algorithm by improving the skill matching process, enabling it to account for similarities between related skills, and recognizing skills that are listed under different names.
Main Challenges
The algorithm only considered perfectly matched skills, which excluded candidates who had similar skills. For example, a recruiter looking for 'C++' skills would not see candidates with 'C++ embedded' despite the strong similarity. Azati proposed implementing fuzzy matching to evaluate skill similarity and ensure such candidates would be included in the search results.
The algorithm didn't account for skill connections across different programming languages and frameworks. For instance, a candidate with 'Django' likely also knows 'Python', but the algorithm did not consider this. Azati’s solution was to incorporate skill relationships by analyzing dependencies between skills and utilizing external data sources like StackOverflow to determine the extent of such connections.
Key Features
- Fuzzy Matching: Skills are now compared for similarity, even when the skill names vary, ensuring a broader pool of relevant candidates.
- Skill Dependency Recognition: The algorithm accounts for connections between related skills, such as Django and Python, to improve matching accuracy.
- Conditional Probability Estimation: Match degree is calculated using conditional probabilities, considering the likelihood of skills existing together based on real-world data.
- External Data Integration: StackOverflow data was integrated to provide richer skill matching insights and improve the quality of search results.
Our Approach
Project Impact
The enhanced algorithm has significantly improved the quality of search results, with recruiters finding 27% more relevant candidates than before. This has led to better candidate placements and increased user satisfaction with the MyAmichi platform.