Building an Enterprise-Grade AI Agent for Recruiting at Scale
linkedin · HR · 2025 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.4 (schema v2)
Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.
Problem
Domain: Enterprise recruiting automation
LinkedIn needed a production recruiting agent that could source, evaluate, screen, and learn from recruiter feedback across a massive professional graph while preserving customer boundaries and recruiter control.
Constraints:
- The agent had to operate across more than a billion profiles and many asynchronous recruiting workflows.
- Recruiter-facing interactions needed real-time conversational behavior while background jobs ran at large scale.
- Customer data and learned preferences had to remain isolated by recruiter environment.
- Recruiters still needed final authority over hiring decisions.
Architecture
LinkedIn Hiring Assistant is a plan-and-executor agent on a message-driven agent lifecycle platform. Each assistant instance has its own identity and mailbox; a supervisor coordinates planner and executor roles; specialized sub-agents perform intake, sourcing, evaluation, outreach, screening, learning, and cognitive-memory work through headless tools that mirror recruiter workflows.
Diagram confidence: explicit (topology described by the source).
flowchart LR recruiter[Recruiter] --> hiring-assistant[Hiring Assistant] hiring-assistant --> supervisor-agent[Supervisor Agent] supervisor-agent --> planner[Planner] planner --> executor[Executor] supervisor-agent --> executor[Executor] executor --> headless-recruiting-tools[Headless Recruiting Tools] headless-recruiting-tools --> profile-graph[Profile Graph] executor --> sub-agents[Sub-Agents] sub-agents --> cognitive-memory[Cognitive Memory] cognitive-memory --> hiring-assistant[Hiring Assistant]
Components
| Component | Role | Interacts with |
|---|---|---|
Recruiter |
Human user who supplies goals, reviews insights, and makes final decisions. | Hiring Assistant |
Hiring Assistant |
Agent identity and mailbox for a recruiter's workflow. | Supervisor Agent, Recruiter, Cognitive Memory |
Supervisor Agent |
Central coordinator that divides work into plans and execution steps. | Planner, Executor |
Planner |
Produces structured task-specific plans. | Executor |
Executor |
Runs ReAct-style loops and invokes recruiter-like tools. | Headless Recruiting Tools, Sub-Agents |
Headless Recruiting Tools |
Tools that mirror recruiter actions over profiles, pipelines, and outreach. | Profile Graph, Executor |
Sub-Agents |
Specialized intake, sourcing, evaluation, outreach, screening, learning, and memory workers. | Executor, Cognitive Memory |
Profile Graph |
LinkedIn's large-scale candidate and profile corpus. | Headless Recruiting Tools |
Cognitive Memory |
Scoped learning layer for recruiter preferences and feedback signals. | Sub-Agents |
Data flow
A recruiter task enters an assistant mailbox. The supervisor produces a plan, the executor runs ReAct-style tool loops, sourcing and evaluation jobs operate across profile data, and recruiter actions feed a scoped memory system that improves future recommendations without crossing customer boundaries.
Why this architecture
LinkedIn separated identity, planning, execution, tools, and memory because recruiting combines real-time dialogue, large asynchronous jobs, individualized preferences, and strict data isolation. Sub-agents as tools avoided proliferating independent mailboxes while still giving the supervisor specialized capabilities.
Models used: fine-tuned models · LLMs · ReAct-style executor
Scale
- The agent sources and evaluates candidates across more than 1.2 billion profiles.“sourcing and evaluating candidates across 1.2+ billion profiles with enterprise-grade throughput and reliability.”article, stated
- Sourcing and evaluation jobs run across millions of profiles.“* Massive background execution: Runs sourcing and evaluation jobs across millions of profiles. * Continuous pipeline management: Refreshes candidate pipelines daily and evaluates new applicants continuously.”article, stated
- Candidate pipelines refresh daily and new applicants are evaluated continuously.“* Continuous pipeline management: Refreshes candidate pipelines daily and evaluates new applicants continuously. * Human-in-the-loop: Ensure that humans are in the loop for all decisions that humans are accountable for while removing much of the toil from them.”article, stated
- Fine-tuned models evaluate candidates in seconds.“Using techniques such as speculative decoding within our custom LLM serving infrastructure, our fine-tuned models can evaluate candidates in seconds.”article, stated
Alternatives considered (roads not taken)
Create separate agent identities and mailboxes for every specialized sub-agent.
Rejected because: LinkedIn used sub-agents as tools to keep orchestration under the main assistant identity.
Fully automate hiring decisions.
Rejected because: Recruiters remain responsible for reviewing insights and making final decisions.
Share learning across customer boundaries.
Rejected because: Memory and sub-agent behavior must stay scoped to the customer environment.
Patterns
multi-agent-orchestration (agent architecture)
A supervisor coordinates planner, executor, and specialized recruiting sub-agents.
async-message-orchestration (runtime)
Each assistant instance has an identity and mailbox, and the lifecycle runs through asynchronous messages.
agent-memory (personalization)
Recruiter actions become scoped signals for future assistant behavior.
human-in-the-loop-gate (governance)
Recruiters review agent insights and make final decisions.
Tradeoffs
Sub-agent topology
Chose Sub-agents exposed as tools over Separate sub-agent identities and mailboxes.
Rationale: This kept orchestration centralized while preserving specialized capabilities.
Decision authority
Chose Recruiter-in-the-loop recommendations over Autonomous final hiring decisions.
Rationale: The system assists evaluation and sourcing but leaves final judgment to recruiters.
Learning scope
Chose Customer-scoped cognitive memory over Cross-customer shared learning from recruiter actions.
Rationale: Preference learning had to respect customer data boundaries.
Gotchas (what bit them)
Agent memory can become a privacy boundary problem.
Root cause: Recruiter feedback and preferences are customer-specific and sensitive.
Resolution: Scope memory to the recruiter environment and avoid training LLMs on it.
Large asynchronous jobs must not break conversational UX.
Root cause: Sourcing and evaluation span millions of profiles while recruiters expect interactive workflows.
Resolution: Use message-driven lifecycle orchestration with background jobs and real-time interfaces.
Evaluation
LinkedIn evaluates the system through throughput, profile coverage, candidate evaluation latency, daily refresh behavior, recruiter feedback signals, and human review of assistant insights.
Metrics: Profiles covered · Candidate evaluation time · Daily pipeline refresh · Continuous applicant evaluation · Recruiter feedback signals
Outcomes
- Hiring Assistant supports sourcing and evaluation across 1.2B-plus profiles.
- Recruiters stay in the loop while background agents refresh pipelines and evaluate applicants.
- Scoped cognitive memory lets the system learn from recruiter behavior without crossing customer boundaries.
The source reports 1.2B-plus profiles, millions of profiles in sourcing/evaluation jobs, daily pipeline refreshes, continuous applicant evaluation, and candidate evaluation in seconds.