1. 程式人生 > >Building Enterprise Software on LinkedIn's Consumer Stack: Behind the Scenes of LinkedIn Talent Hub

Building Enterprise Software on LinkedIn's Consumer Stack: Behind the Scenes of LinkedIn Talent Hub

Figure 2: Rules engine architecture

External services integration One of the core capabilities of the Talent Hub is its ability to work with other systems like HRIS, background check providers, interview schedulers, and assessment service providers, etc.

LinkedIn has a platform called GaaP (Gateway as a Platform) which is on a mission to turn the entire internet into one big Restful framework. With a Groovy-based scripting framework, GaaP allows developers to create a Rest-endpoint for external APIs and write it in a standardized format. This allows us to internally create a Rest API on top of services such as Google G-Suite and the Microsoft Graph API with the exact same models and methods, even though these APIs are radically different from each other in the real world.

Using these internal yet external APIs, we can easily write integrations that power core Talent Hub features such as interview scheduling and automatic synchronization of recruiting-related emails.

We use GaaP heavily in LinkedIn’s Talent Hub for two core features:

  1. Integrating with email providers to support “One Inbox” where recruiters can aggregate their communication on different platforms into one place.

  2. Supporting automated interview scheduling. This requires sending invites to interviewers and keeping track of their responses. GaaP allows a user to query these external calendaring services and easily provides an integrated scheduling experience for our users.

Extensions Framework In addition, we also built the Extensions Framework, which allows third-party apps to integrate with the Talent Hub and become a third-party service provider in LinkedIn’s Talent Hub. An example of this integration is using Skype for interviews. The architecture of the Extensions Framework leverages LinkedIn’s partner push platform and Rest.li gateway to allow for a flexible webhook-based integration with custom parameters which can be used to call a third-party service from the Talent Hub. Talent Hub’s Extensions Framework exposes a set of core APIs for different supported use cases. Consider the “interview assessment” use case; in this instance, Talent Hub will expose a core “/assessments” API via a Rest.li gateway, which the third-party services can write into after the interview is conducted. Initiation of the interview assessment process is done by calling a webhook that the third-party service provider provided at the time of configuring the integration.

It is critical that the Talent Hub is able to support a large spectrum of third-party service providers across different candidate management capabilities, and the only way to make this happen in a scalable way is to build an infrastructure which is easy to scale to all future externalization use cases. Extensions Framework is designed in this way because it has a set of generic core use case APIs.

Powering search with Galene One way we are building delightfulness into the search experience of our Talent Hub is by leveraging LinkedIn’s existing search infrastructure framework, Galene. Originally built to power LinkedIn’s member, company, and job search, Galene allows us to bring powerful relevance, faceting, and super speedy search results over hundreds of millions of indexed records in just a few milliseconds. We use Galene to power several product features, such as:

  1. Recruiter Search, a flagship offering from LinkedIn’s sourcing product ecosystem.

  2. Searching through thousands of job applicants.

  3. Searching through several projects in a single customer’s account with different filters and facets.

Notifications using ATC (Air Traffic Controller) ATC is a platform built to improve the communication experience to LinkedIn members. It is described in detail in this blog post. One of the challenges with having all the communication to Talent Hub users go through ATC was that ATC is intended to be a platform for LinkedIn member communication and notifications. A user on LinkedIn’s Talent Hub is represented by an Enterprise Profile, which is a profile associated with a user who uses an enterprise product from LinkedIn. This user may or may not have bound their LinkedIn member profile with the Enterprise Profile. ATC originally did not support Enterprise Profiles as a recipient type for communication, but as part of building foundational blocks for Talent Hub, we modified the ATC system to support Enterprise Profile users. Now, all communication to LinkedIn Talent Hub users can be regulated by ATC’s processing features. Some of these features include:

  1. Channel selection (Push, in-app, email, or SMS)

  2. Following up in different channels

  3. Capping, aggregation, and digesting of notifications

  4. Impression discounting

  5. Delivery time optimization

  6. De-duping

Core platform services

We built a number of core services that are used throughout the Talent Hub. Two such notable services include:

  1. Hire identity service

  2. Hire access control service

Hire identity service This service hosts identity information for a potential candidate in the hiring pipeline. It assimilates profile information from different sources, one of which is LinkedIn member data. It is totally acceptable to have candidates in the hiring pipeline who are not LinkedIn members, so these are typically uploaded by Talent Hub users by entering their information. If we are able to find a member after their information is entered, we will bind this profile with the member. Hire identity service is the source of truth for candidate data in Talent Hub and all of Talent Hub’s features use this identity to build candidate features.

Hire access control service Talent Hub usually contains highly sensitive data, including candidate reviews, interview feedback, compensation information, etc. In some cases, the entire hiring project could be highly confidential because it is associated with a sensitive or strategic requisition. This requires the Talent Hub app to strictly enforce data visibility policies which are exposed through a centralized access control app. In Rest.li, a microservice is responsible for surfacing data owned by that Rest.li model and is expected to be the single source of truth for that data. By integrating all these Talent Hub related microservices with the hire access control service, we have been able to enforce visibility restrictions on Talent Hub data.

Conclusion

LinkedIn’s Talent Hub serves as a one-stop shop for all hiring needs, including sourcing and candidate management. Talent Hub is meant for mid-sized companies and is thus an enterprise offering from LinkedIn. However, unlike a lot of other enterprise software, Talent Hub is built in a way that provides consumer-like, delightful experiences to users.

The pilot program for Talent Hub begins in January, and it will be globally available later next year. We couldn’t be more excited to bring you Talent Hub and can’t wait to hear what you think.

Acknowledgements

This has been a massive initiative for LinkedIn and is a result of several quarters of dedicated effort from engineers belonging to the Hire and Careers organization. However, it would have been impossible to realize this vision without the leadership of Manish Baldua, Dan Reid, and Shen Shen, along with the dedication of the entire Talent Hub team.