top of page

AI-powered profile ranking system

INTRODUCTION

I1.png

If you are a recruiter a classical problem is to hire the best candidate suitable for a particular job opening. This process is laborious, you may deal with hundreds or even thousands of job-seekers. As an intern, my job was to figure out an automated way to rank candidates based on predefined attributes. For quite some time now Artificial intelligence and its subset have been a hot topic. In fact, AI in recruitment has often presented almost as a miracle solution. In a nutshell, our AI model can be illustrated as follows :

PREPARING THE TRAINING DATA

To learn our ranking model, we need some training data first. We had to generate some examples that mimics the behavior of the platform’s user. The platform has some pre-defined attributes which is used to evaluate every candidate applying for a particular job opening. The attributes are as follows - 'SKILL-1', 'SKILL-2', 'SKILL-3', 'SKILL-4', 'SKILL-5', 'SKILL-6', 'SKILL-7', 'SKILL-8', 'SKILL-9', 'SKILL-10', 'SkillScore1', 'SkillScore2', 'SkillScore3', 'SkillScore4', 'SkillScore5', 'SkillScore6', 'SkillScore7', 'SkillScore8', 'SkillScore9', 'SkillScore10', 'IndExperience1', 'IndExperience2', 'IndExperience3', 'FuncExperience1', 'FuncExperience2', 'FuncExperience3', 'FuncExperience4', 'FuncExperience5', 'WorkExperience', 'Work', 'Competence', 'Reliability', 'QoD', 'Timely Delivery', 'Collaboration', 'Dayssincelastworked', 'Workload'

​

For simplicity let’s consider the following attributes only - 'SKILL-1', 'SkillScore1', 'IndExperience', 'FuncExperience’, WorkExperience', 'Work', 'Competence', 'Reliability', 'QoD', 'Timely Delivery', 'Collaboration', 'Dayssincelastworked', 'Workload'

​

In a real-world scenario, you can get these events from you analytics tool of choice and can define your own set of attributes for evaluation, but for this article I will generate them artificially. To do so we will associate a “EstimatedFinalScore” attribute to each candidate which is calculated by assigning certain priorities and weights to the aforementioned predefined attributes. Our raw data is created on MS Exel and later exported as a .csv file.

I2.png

No rocket science, the candidate with the lowest “EstimatedFinalScore” has to be ranked the lowest. Now let’s generate the dataset required for training and begin pre-processing of the same. We are required to normalize all the attributes to help our learning model.

TRAINING THE MODEL

Now that we have our dataset up and running, let’s begin to train our model. We shall split out data into a training set and validation set. We have deployed a simple ANN network. Artificial Neural Networks or ANN is an information processing paradigm that is inspired by the way the biological nervous system such as the brain process information. It is composed of a large number of highly interconnected processing elements(neurons) working in unison to solve a specific problem.

​

The training data is split into training and validation set (70% and 30% respectively). Input variables have different attributes that, in turn, mean they have different scales. Differences in the scales across input variables may increase the difficulty of the problem being modeled, hence data scaling is a recommended pre-processing step when working with deep learning neural networks that can be achieved by normalizing or standardizing real-valued input.

RANKING FUNCTION

The Test data, which consists of the bidder's list, is extracted and ranked; the function outputs the ranked test set based on each candidate's predicted “FinalEstimatedScore.” The candidate with the highest score is on the top. The profile with the highest "EstimatedFinalScore” will most likely be favorable for that particular job posting.

AWS DEPLOYMENT

The model was deployed on Amazon AWS, and using the Lambda function we can call the ranking function everytime a job is being posted. Alternatively, we can improve latency by including the model parameter files directly in the AWS Lambda code package. The deployment included building Lambda layers that lets you import dependencies for the code into your Lambda functions.

bottom of page