Supahands built a recommendation engine that would select the best SupaAgents for the project at hand. Thus, speeding up our project set up and launch time by 5 times.
Read on to find out more about how we came about solving the issue, how it was built and how our Predictive Routing algorithm, aka DIANE, helped us and our clients.
Editor’s note: This article was first published in AsianDataScience. Link to original article here.
The Business Problem
Our clients are SMEs or corporations who require us to consistently provide high quality work. Finding the required amount of workers or ‘SupaAgents’ who can achieve this required level of quality can sometimes be a challenge especially when your task force are all based remotely. While all agents complete a curated assessment before they start working, how do you determine their ability to commit to deadlines or to consistently provide good work? It was for this reason that ratings were introduced in order to assist Project Managers with finding the best fit for their projects.
Even so, we soon found that Project Managers were spending excessive amounts of time manually adding SupaAgents into projects and even then, there were instances where their quality output wouldn’t match the level required for certain projects. This could be for an array of reasons. A SupaAgent was only rated once, thus not capturing his or her ability to steadily provide good work or that they’ve received high ratings for projects that were totally different. This process resulted in a lot of wasted time that caused the kickstarting of new projects to take longer than necessary.
As we had a vision of growing our business and workforce by 10 folds, dealing with the current manual assignment process was neither scalable nor fast enough for the planned rate growth.
The solution that we needed had to be flexible, fast and scalable. For this purpose, we equipped our work distribution platform with our Digital Innovation Assistant for kNowledge Engineering (DIANE). This predictive routing algorithm was able to suggest the best suited SupaAgents for a project, based on history data and ratings they’ve received. DIANE was built with a graph database for three different reasons:
Flexibility: To suggest the right SupaAgents, we aggregated relevant data from different sources such as ratings they’ve previously received, their set skills and a history log of the type of tasks they’ve done previously. This data is then stored into a graph with nodes and relationships. Utilizing a graph was a dynamic choice that would allow for it to easily evolve as we input new types of data into it in the future.
Scalability: A graph database can handle mass amounts of data while also leveraging on their relationship very efficiently.
Agility: As we continuously build new features across our products and collect new types of data, a graph database would allow us to improve on the quality of prediction quicker, by feeding the new data without schema changes as compared to traditional SQL database with tables.
How We Benefited
This recommendation engine was able to cut down the time that it took for Project Managers to find the best SupaAgents for their projects, based on previous ratings they’ve received from similar projects. With DIANE, we were able to find the best SupaAgents at scale, which enabled us to kickstart projects 5 times faster than previously. All this was done while also consistently providing quality work to our clients.
On top of that, the algorithm is paired with a distribution feature, or algorithm, that allows for the suggestion of new SupaAgents who have never worked on projects. This feature is important as it ensures that there is a constant stream of agents that are getting a chance to work and to be rated. Doing this has enabled a continuous inflow of SupaAgents with high ratings.
Supahands’ Graph Database Explained
We used the Neo4j graph database to implement our recommendation engine, DIANE. This enabled the synchronization of different types of data from multiple channels to feed into the graph. We then created nodes for different entities based on the three main business domains: SupaAgents, Projects and Skills. The various relationships between these entities were then captured before storing attributes over these relationships.
As an example, we synced ‘Project Assignments’ to the graph, thus creating a relationship between the ‘SupaAgent’ and ‘Project Assigned’. This relationship would include further semantics such as, the timestamp of when a SupaAgent was added into a project or the status of the project.
When an agent is rated on a project, our rating system syncs SupaAgent Ratings to the graph, which then creates a relationship between the SupaAgent and the project. This is represented on the graph with a link which contains the performance ratings of the agents on that project (like how many times they were rated and what those values were). These values are project-specific and given to the agents by Project Managers based on the 1-5 star rating we’ve instilled across the different criteria: Conduct, Accuracy, Commitment and Speed.
When we receive a new project, we then traverse the graph for SupaAgent recommendations. The algorithm in place starts expanding from the skills required for the new project and finds other past projects that are similar in nature. We call these ‘Relevant Projects’ as they are similar to the new project in terms of the type of skills required. The algorithm will then go through these relevant projects to find the SupaAgents who worked on them. This process is repeated throughout the different ‘Relevant Projects’.
SupaAgents who worked on the largest number of similar projects and received the highest ratings would be recommended first since these criteria have the highest weightage. In addition to their performance on past projects, there are altogether 10 different criteria that have varying weights based on their impact on quality assurance. This not just simulates an actual PM’s thought process during agent assignment, but enhances it, thereby optimizing the project kickstart process. As seen in the image below, the algorithm then computes a recommendation score that reflects its confidence in the SupaAgents performance. The higher the score, the more likely it is for the agent to be recommended for that project.