As the financial crisis deepened, many companies in Spain were cutting back on hiring new staff. Marc Pou, Product Owner at InfoJobs, was acutely aware of the challenge this created for his company. Its position as the leading online site for job seekers in the country meant that it had a lot to lose from a drop in the volume of advertised vacancies.
He knew that his team had to stay focused on developing innovative new ways to help people find work. By doing so, InfoJobs could defend its market position as the go-to site for Spanish job seekers. That would, in turn, increase its attractiveness to those companies still listing jobs. It would also put it in a stronger position for when the economy improved.
GraphAware didn’t just help us build our
real-time recommendation system: they helped our developers acquire a whole new set of programming skills.— Marc Pou, Product Owner
The Challenge
InfoJobs had been helping people find employment online since 1998 with millions of job seekers using its services every year. But to grow, it had to find ways both to attract new people who hadn’t used its services before and also to encourage already registered users to visit its site more frequently.
‘To find out what they wanted, we asked job seekers what steps they took beyond using our site,’ says Pou. ‘They told us that they would also ask friends, family and former colleagues for introductions to contacts who could help them identify jobs. We realised that discovering new contacts who could help them find work was something that was immensely valuable to them. But it was not something we offered.’
InfoJobs had a huge volume of data in its database from the many people who had uploaded their CVs to its site. Pou knew that it should be possible to mine this database to suggest relevant contacts from a job seeker’s extended network. The question was what would be the best way to do this.
Having encountered Neo Technology’s Neo4j graph database on a previous project he thought that it might be the right tool for this job. However, his team lacked experience in developing for Neo4j. To get a proof of concept project up and running quickly, he realised they would need support from a consultancy that could bring Neo4j development expertise along with experience in creating real-time recommendation systems.
The Solution
After being approached by Pou, Neo Technology referred him to Michal Bachman, Managing Director at GraphAware – one of its partner companies. ‘As soon as I met Michal I knew that GraphAware was going to be the right company for the job,’ says Pou. ‘It could provide the consultancy support we needed, but more importantly, Michal was completely tuned to my wavelength and immediately got what we wanted to do.’
First, GraphAware ran a week-long workshop to help the InfoJobs team define what they needed and to identify the different ways in which they could build their contact real-time recommendation system. The company then provided ongoing training and consultancy support to help with its development.
The Results
From workshop to initial pilot service – in just three months
Just three months after the completion of the initial workshop, Pou’s team had developed an initial pilot service that was generating contact recommendations. With support from GraphAware they then undertook an intensive cycle of testing and iteration as they refined their algorithms to improve the relevance of the contact recommendations – prior to trialing the service internally.
More active, more engaged users
The service has grown organically, even before a full-scale launch. Internal employees have followed contact recommendations for people outside the company who have in turn made new connections of their own.
As a result, more people are now using the InfoJobs site – both new job seekers and also previous users who hadn’t visited recently.
And the real-time recommendation system is driving greater engagement in other ways too. For example, job seekers who are using it are updating their CVs on the site more often than those who aren’t.
Real-time contact recommendations
The contact recommendation feature uses a microservice architecture running on the Amazon Web Services cloud platform. Its underlying graph database is large – encompassing some 200 million nodes and over half a billion relationships. Nonetheless it is able to deliver contact suggestions in <100ms to hundreds of concurrent users. Getting it to this point required a lot of testing and code optimisation as well as some clever thinking.
Initially the service had been running on an internal server infrastructure that was shared with the rest of the InfoJobs site. However, at the end of summer the main InfoJobs site suffered a performance hit as a jump in the number of people using it acted in combination with the increased resource demands of the new contact recommendation service. This had to be addressed urgently.
Pou contacted GraphAware for assistance to help his team further test and optimise their code as well as to migrate the contact recommendation feature into Amazon Web Services to improve performance. ‘We had not specified deploying our recommendation service into the cloud in our contract with GraphAware,’ says Pou. ‘Nonetheless, when we were faced with needing this to happen, they delivered.’
Higher-skilled developers
Perhaps one of the most important out-comes from this project has been the on-the-job training that Pou’s team has received from GraphAware across a range of software development best practices. This has helped them write cleaner, testable, more easily maintainable and reliable code.
‘GraphAware’s contribution went well beyond the scope of the project we engaged it for,’ explains Pou. ‘GraphAware didn’t just help us build our recommendation service: they helped our developers acquire a whole new set of programming skills. And that’s proving to be of great value to Info-Jobs across many other projects.’