NFT

Machine learning to build your perfect tech team faster

November 28, 2022

CodeMonk is an AI-integrated platform aiming to help employers onboard top-performing tech teams anywhere, anytime. We aim to help employers find a perfectly matching team of developers, engineers, data scientists, and other talents.  

While the idea is simple, making it happen is a challenge. We know that the possibility of browsing through millions of available profiles is exhausting, both for the talents and the employers. With thousands of talent registrations, it is not easy to individually evaluate them to form  an ideal team  for your projects. 

And then, if browsing is the only option, we know there are enough job boards available online where employers can search thousands of talent profile. LinkedIn, for instance, has a similar job board where you can create job briefs, explore candidates, and sort applications before fixing up the interview. Probably, their recommendation is one of the worst in industry with the recommended talents often very poor matches or are not available to take a new role. Thanks to such job boards, the recruitment managers expect to take about 3-6 months to finalize the right candidates and even costs approximately $20K- $25K per hire.  

Hence, to overcome such poor solution from the leading industry players, we at CodeMonk came up with a solution – a self-learning recommendation algorithm that can make it easier and faster to form better product & software engineering teams.    

With our  recommendation algorithm, we plan to create a platform where employers can fast-forward their team-building and recruit multiple roles with a click of a button. 

What do employers and talents want to find from CodeMonk platform?  

Employers who want to build their tech teams or hire developers are looking for: 

  • Appropriate skill-sets – both technical and soft skills 
  • Domain experience and expertise in the role 
  • A team player who can blend in well with their existing team  
  • Other criteria that come with a project include budgets, working hour preferences, contract time, values and motivations, etc. 

  

A talent or an employee would desire:  

  • Role that leverages existing skills 
  • Enables learning opportunities  
  • In-office, hybrid or remote working 
  • Company culture and vision 
  • A complementary and supportive team 
  • Financial and non-financial incentives 

 

How CodeMonk’s recommendation algorithm help? 

 

A recommendation algorithm is a filtering system that assists in filtering data sets according to a predetermined criteria. 

CodeMonk's recommendation algorithm helps with: 

  • showing talents, the best jobs available based on their skills, experience, motivations, and other preferences  
  • showcasing employers, the best talent profiles that not only fit the job but also make their current team more balanced. 

 

How does the algorithm create recommendations for CodeMonk?  

Step 1 

Extraction of features and requirements from the job description and talent profile: 

When clients make a job description, they list things like skills, knowledge, and experience, among other things. The client profile is used by the recommendation algorithm to pick out these requirements.  

Additionally, each talent has distinct skill sets that are displayed on the profile page. So, it is easier for our recommendation algorithm to pick these skill sets and features from talent profiles. 

 

Step 2 

Calculation of similarity (matching) for each feature: 

In the next step, the recommendation algorithm takes the job requirements and matches it with talent skill-sets: 

  1. Calculation of skills matching: The recommendation does an excellent job of calculating the recommendation score. The closer the talent skills are to the job posting, the greater the recommendation score. So, the one profile with a greater recommendation score gets picked out. 

Even so, it's not that easy. Because it does not always entail matching the exact phrases from the skill descriptions, estimating skills matching might be challenging. For example, the skills "machine learning" and "model development" are pretty similar (skills of a data scientist). Still, "model development" and "front-end development" are very different skills, even though they both have the word "development" in them. 

Solution- the use of Levenshtein distance. 

Levenshtein distance is a string metric, or a way to measure the distance between two sequences. The Levenshtein distance between two words is the fewest number of single-character changes (adding, taking away, or switching) that are needed to change one word into another.  

The mathematical interpretation is as follows:

Levenshtein distance is used to figure out how similar two things are by normalizing it to the sum of the lengths of the talent's skill descriptions and the job's skill requirements. 

Example:  

Talent skill: MsSQL, job skills requirement: MySQL 

Levenshtein distance (MsSQL, MySQL) = Levenshtein distance (sSQL, ySQL) = 1 + Levenshtein distance (SQL, SQL) = 1

This approach is quicker and easier to apply, but it has a number of drawbacks. For example, it fails to recognize the same meaning when the spelling is completely different. So, we, at CodeMonk aim to make the process even better by adding more advanced ways to match skills, as shown in the table.

Advanced approaches to skills matching:
doc2vec: It is an NLP tool representing documents as a vector. The purpose and usefulness of Doc2vec are to group the vectors of similar documents (descriptions) in vector space. In other words, matching descriptions of skills are represented by close vectors.

Siamese neural networks: Siamese neural network is a class of neural network architectures that contain two or more identical subnetworks. The initial use of the Siamese network was in computer vision applications. The extension of this algorithm for NLP to find similarities between two given phrases came later.
  1. Calculating role matching:   Since obtaining a higher recommendation is the major objective of matching, the job description must be written with extra care. Thus, the matching algorithm can choose the most qualified candidates for the position, and employers may browse the profiles of computer professionals who meet their needs precisely. The Levenshtein distance is also used to calculate role matching.
  1. Estimation of experience matching: Since hiring managers will never utilize a young employee for a senior role or vice versa, experience matching is essential. Experience matching is calculated by taking the difference between the number of years of experience needed for the job and the number of years of experience the talent has in that profile.
  1. Checking previous collaboration of the talent with an existing team: Some employees want to keep working with their colleagues from previous initiatives. Jobs that offer such prospects are listed higher on the list of recommendations. Therefore, individuals who have previously collaborated with team members are listed higher on the job recommendation list.

It is calculated as follows:

5. Investigation of the feedback to the previous recommendation: If an employer invites a candidate for an interview, candidates with similar qualities will advance on the referral list (a positive event). If the employer rejects the talent, other talents with similar qualities will move down the list (negative event). To do this, a calculation is made to compare each talent's skill set to all other talents engaged in either positive or negative occurrences.

6. DISC test results: It takes into account the personality of the candidate and how it compares to the personalities of the team members working on the project.

Step 3

Calculation of recommendation score

  1. The goal of figuring out a talent's recommendation score is to match them with a certain job profile. The recommendation score is based on how similar the main job requirements are to the professional and personal traits listed in the talent's profile. If the recommendation score is 100%, it means that the job and the person's profile are a perfect fit for each other. On the other hand, if the talent's recommendation score is 0%, they cannot work in this position.

The recommendation score can be calculated using one of two methods:

  1. Simplified approach: This simplified strategy might be utilized when there are insufficient data
  1. Advanced approach: This advanced method demands a substantial quantity of data. It means that there have been a lot of positive (hire, interview) or negative (rejection of talent/job) events on the platform, and the data storage has enough information to create a recommendation score.  

Description of both approaches is as below:

  1. Simplified approach:

Calculation of recommendation score is as a weighted sum of the metrics described above:

This calculation is illustrated below:

  1. Advanced approach:

The score for a recommendation can be estimated as the probability of a positive outcome (hire or interview). In such circumstances, CodeMonk intends to implement a multiclass classification method on the provided dataset:

  1. Positive events (hire, interview) will happen  
  1. No event will happen  
  1. A negative event (rejection) will happen  

CodeMonk aims to implement the above similarity computations as a model feature.  

The following are suitable viable machine learning approaches

  • Xgboost as one of the best methods, which often outperforms other algorithms  
  • Neural networks can bring an accurate result, but training and implementation are possible when plenty of data is available.  

CodeMonk intends to frequently retrain machine learning models and continuously update modifications to preserve efficiency. For example, every time N happens, something new will happen (N depends on the current number of events and the speed of its growth).  

Also, model structure will be updated regularly with the following:

  • Hyperparameters tuning  
  • Feature engineering and feature selection (add\remove similarities and other properties of talents and jobs)

Recommendation results:

For employers: According to the recommendation score, the following are the outcomes of talent profile.

For talents: The following are the results of available jobs sorted by their recommendation score (with the best job at the top).

So, whenever an employer posts a job brief, the score is used by the recommendation algorithm to make suggestions that will make the job easier. In a similar way, tech talent can see job recommendations based on their score by updating their profiles on the CodeMonk platform.  

Therefore, the recommendation algorithm seeks to choose the ideal tech talent from the hundreds accessible on the CodeMonk platform in order to properly match them with the job posts. It establishes a connection between businesses and candidates with the best skill sets to meet their needs.