Search Engine Algorithm Improvement

Improving the skill matching algorithm for MyAmichi's recruiting platform to consider similar and related skills, addressing issues with strict matching and the lack of connection between skills.

Discuss an idea
27%

increase in relevant candidates appearing in search results due to improved skill matching

25-45%

reduction in recruiter time spent manually filtering candidates

50-65%

improvement in candidate ranking accuracy according to required skills

All Technologies Used

Python
Python
StackOverflow API
StackOverflow API
Linkedin API
Linkedin API

Motivation

Recruiters were missing qualified candidates due to strict exact-match skill logic. The project aimed to allow the system to recognize similar and related skills, ensuring more relevant candidate results and reducing missed opportunities.

Main Challenges

Challenge 01
Inflexible Skill Matching

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.

#1
Challenge 02
Lack of Skill Relationship Awareness

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.

#2

Our Approach

Enhancing Skill Comparison
Azati introduced fuzzy matching for skills, allowing the algorithm to compare the recruiter's required skill with the candidate's listed skills, ensuring similarities between closely related terms like 'C++' and 'C++ embedded' were accounted for.
Handling Skill Dependencies
The team developed a mechanism to handle asymmetric skill matching, where knowing one skill (e.g., JavaScript) implies knowing another skill (e.g., AngularJS), but not vice versa. This involved estimating the conditional probability of matching skills based on the candidate's profile and the recruiter's criteria.
Mapping LinkedIn Skills to StackOverflow
Azati mapped LinkedIn skills to StackOverflow tags using case-insensitive comparison, abbreviation expansion, lemmatization, and full-text search. This mapping provided a data-driven approach to calculate the match degree between recruiter-entered skills and candidate skills.
Refining Match Accuracy
Using StackOverflow data, Azati calculated the likelihood that a candidate's skill matched the recruiter's required skill, allowing for a more precise and flexible skill-matching algorithm.

Want a similar solution?

Just tell us about your project and we'll get back to you with a free consultation.

Schedule a call

Solution

01

Fuzzy Skill Matching

The system now evaluates skill similarity even when skill names vary slightly. This captures candidates with related or partially matching skills, expanding the candidate pool.
Key capabilities:
  • Comparison of candidate skills with recruiter skills using fuzzy logic
  • Partial match recognition for skill variations
  • Reduction of false negatives in candidate search results
  • Improved relevance scoring for candidates
02

Skill Dependency Recognition

The algorithm identifies relationships between skills, understanding that mastery of one skill implies knowledge of related skills. This allows asymmetric matching and more precise candidate scoring.
Key capabilities:
  • Conditional probability calculations between skills
  • Recognition of implicit skill knowledge
  • Improved candidate relevance for recruiters
  • Supports complex skill hierarchies and dependencies
03

External Data Integration

LinkedIn skills are mapped to StackOverflow tags to enrich skill relationships and co-occurrence probabilities, enhancing the match quality with data-driven insights.
Key capabilities:
  • Data mapping from LinkedIn to StackOverflow
  • Use of external tags for conditional probability estimation
  • Improved skill matching accuracy
  • Dynamic updating based on real-world skill trends
04

Enhanced Candidate Scoring

Candidate scores are refined using combined fuzzy matching, skill dependencies, and external data, ensuring recruiters see the most relevant candidates first.
Key capabilities:
  • Weighted scoring of candidates
  • Prioritization of closely matching skills
  • Reduction in missed qualified candidates
  • Supports multi-skill and complex search queries

Business Value

More Relevant Candidates Found: Recruiters now find 27% more relevant candidates due to enhanced skill matching, addressing previous gaps caused by strict exact-match logic.

Improved Search Precision: Incorporating fuzzy matching and skill dependencies ensures higher accuracy in candidate ranking and relevance scoring.

Reduced Recruiter Effort: Optimized search results reduce time spent filtering out unsuitable candidates, streamlining the hiring process.

Foundation for Continuous Improvement: Integration with external data sources like StackOverflow provides a basis for iterative algorithm enhancements and adaptive learning over time.

Ready To Get Started

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.