InsightsArticle

AI Candidate Sourcing Agent: Anatomy of a Real Run (2026)

An AI candidate sourcing agent, opened up: how a job description becomes typed filters, a ranked shortlist, verified emails, and a live test inside Claude.

The DataForB2B TeamEngineering7 min readUpdated

Recruiters keep asking the same question about the AI candidate sourcing agent category: has any of these tools held up past the demo? The skepticism is earned. Most demos run on curated reqs, and most tools crack on real ones.

The best way to judge the category is to watch one real run, end to end.

So that is this article: a job description going in one side, a contactable shortlist coming out the other, every step under the hood exposed, including how to run the whole loop inside Claude before you write a line of code.

Key Takeaways#

  • A sourcing agent turns a job description into typed filters, a ranked shortlist, and verified contacts.
  • The job description is requirements, not keywords. Filter families make the difference on hard reqs.
  • Preview the count before running: it exposes a too-loose or too-tight req in one call.
  • Over MCP, Claude can run the entire loop conversationally, no integration required.

What Is an AI Candidate Sourcing Agent?#

An AI candidate sourcing agent is software that reads a role, queries a large profile pool with structured filters, ranks the matches, and enriches the shortlist with contact data. It automates the sourcing pass, the hours between a req opening and a recruiter having people worth a call.

The judgment stays human: who to advance, how to pitch the role, whether someone fits a team. The agent owns coverage and speed, which is exactly the part human sourcing does worst at scale.

What a Sourcing Agent Is NOT#

Three neighbors get confused with it, and each confusion buys the wrong tool. A sourcing agent is not recruiter-seat automation, not an ATS feature, and not a resume screener. The differences decide what the thing can actually reach and what it is allowed to decide.

Not seat automation. Tools that speed up a human clicking through a recruiter seat inherit its limits: same inventory, same manual rhythm. An agent needs the candidate pool as an API.

Not an ATS feature. Greenhouse or Lever manage people who applied. Sourcing is the opposite direction: people who have never heard of the role.

Not a screener. A screener filters inbound resumes, and automating rejection is where compliance problems start. A sourcing agent proposes candidates in; it never silently filters people out.

How Does a Job Description Become a Query?#

The job description becomes a query by being read as requirements rather than keywords. Each line maps to a typed filter: the role line to current title, the must-haves to skills and certifications, the context lines to location, seniority, and company background. Natural-language conversion can draft that mapping automatically.

Depth is what makes hard reqs expressible. The filter families cover profile, current job, past jobs, skills, education, languages, certifications, and experience, which means a genuinely difficult req still lands:

import requests
 
response = requests.post(
    "https://api.dataforb2b.ai/search/people",
    headers={"api_key": "YOUR_api_key", "Content-Type": "application/json"},
    json={
        "filters": {
            "op": "and",
            "conditions": [
                {"column": "skill", "type": "in", "value": ["Kubernetes", "Terraform"]},
                {"column": "certification", "type": "like", "value": "Kubernetes"},
                {"column": "language", "type": "=", "value": "German"},
                {"column": "current_job_location", "type": "like", "value": "Berlin"},
                {"column": "years_of_experience", "type": ">=", "value": 5}
            ]
        },
        "count": 50
    }
)
 
candidates = response.json()["results"]

A platform engineer in Berlin, certified on Kubernetes, working in German, five-plus years in. Try expressing that in a keyword box. The req that defeats a keyword search is precisely where filter depth pays.

Table of five typed filter conditions for one hard recruiting req, skills, certification, language, location and experience, each mapped to the exact filter a keyword box cannot express

What Does One Full Run Look Like?#

One run is five steps: map the job description to filters, preview the count, execute the search, rank the results, and keep a shortlist. On a realistic hard req the numbers look like a funnel: a count preview near four hundred, a ranked page of fifty, a shortlist of twenty.

Here is that funnel on a real req shape. A talent-tools team sourcing a compliance officer for a fintech client mapped the job description to four families: current title, certification, industry background, and language. The count came back at 380. They tightened tenure, previewed 214, ran the search, and shortlisted 22, with the whole loop taking minutes rather than the client's usual two days of manual searching.

The count preview is the underrated step. Four thousand matches means the req is underspecified; nine means one filter is strangling it, usually a title spelled too exactly. Fixing the query costs one cheap call before any result is paid for.

Ranking stays inspectable: tenure, skill overlap, relevant past companies. The full result list stays one click behind the shortlist, so a strong candidate the ranking underrated is never buried.

The trade-off is worth naming: an API-first agent gives you the ranking logic and its audit trail, where a packaged tool gives you a score you cannot question. In hiring, the audit trail wins that trade.

How Does the Shortlist Become Contactable?#

Through enrichment, run on the shortlist only. Each kept profile gets a live fetch that confirms the current role and returns a verified work email, plus GitHub activity for technical candidates, which grounds the ranking in shipped code instead of self-reported skills.

The discipline matters as much as the data: twenty enrichments for twenty conversations, not four hundred for a list nobody contacts. And because the fetch is live, the agent catches the candidate who changed jobs since the search ran, before a recruiter emails the wrong company.

Search and enrichment run behind one key on the people search API, with a free tier for a first run via the pricing page.

Can You Try It Directly in Claude or Any LLM Agent?#

Yes, and it is the fastest evaluation the category offers. Connect the DataForB2B MCP server to Claude, paste the job description into a chat, and ask it to source. Claude becomes the sourcing agent: it drafts the filters, calls the search tool, and shows you the shortlist in the same thread.

The loop is conversational from there. "Drop the agencies." "Require the certification." "Get work emails for the top ten." Each instruction becomes a tool call, and you steer in plain language with no integration work, no code, and nothing to deploy.

Standing it up takes three moves: a free account at app.dataforb2b.ai/signup, the connector https://mcp.dataforb2b.ai/mcp added under Settings, and the job description pasted as the first message. Pin the working chat as a scheduled routine and the sourcing pass reruns for every new req. The same connector works in Cursor, VS Code, or any MCP-enabled agent.

This is also the honest way to evaluate the category against your own reqs: thirty minutes, your hardest role, your market. Teams that later productize keep the same architecture: the conversation becomes an automated routine, the tools become REST calls, and nothing about the data layer changes. The Claude session is the prototype, and it costs an afternoon.

What Can a Sourcing Agent Not Do?#

It cannot judge. Culture fit, motivation, whether a candidate will actually move for this role at this comp: none of that lives in structured fields, and an agent that pretends otherwise is guessing with confidence. The boundary is not a limitation to apologize for; it is the design.

It also cannot be allowed to reject. Ranking on job-relevant signals is sourcing; silently excluding people on proxies is a liability. Keep the full list reachable, rank on inspectable fields, and keep a recruiter reviewing who surfaced and who did not.

Two-column comparison of what a candidate sourcing agent owns, coverage and speed, versus what the recruiter owns, judgment: the shortlist proposes and the recruiter disposes

The Mistake Most Teams Make#

The mistake most teams make is pasting the job description in as keywords. A job description is full of words that mean nothing as search terms, and the buzzword soup returns exactly the noise recruiters complain about: matched strings, wrong people, a shortlist that looks like the job board.

In our experience the fix is the mapping step: requirements to typed filters, previewed with a count, tightened once. What surprised us is how often that one discipline, plus a live fetch before contact, closes most of the gap between a demo and a tool recruiters keep.

One job description, one afternoon, one shortlist your recruiters can actually call. Run the first pass in Claude or against the API, starting on the pricing page.

FAQ

Frequently asked questions

What is an AI candidate sourcing agent?
Software that turns a role into a structured search over a large profile pool, ranks the matches, and enriches a shortlist with verified contact data. It automates sourcing coverage and speed while a recruiter keeps every judgment call: who advances, how the role is pitched, who gets hired.
How is it different from recruiter-seat automation?
Seat automation accelerates a human workflow inside one interface, with its inventory and its pacing. A sourcing agent queries a profile pool programmatically through typed filters, previews result counts, enriches in the same stack, and plugs into your product or workflow rather than someone else's.
Which filters matter most on hard reqs?
The ones keyword boxes cannot express: certifications, languages with proficiency, education fields, past-company history, and tenure. Hard reqs are hard because they combine four or five of those at once. Filter-family depth decides whether the req is expressible at all.
How does lookalike sourcing work?
You hand the search a reference profile, typically your best hire in the role, and it finds people with similar career shapes: comparable skills, seniority, and background. It shortcuts the filter-mapping step when the req is best defined by "another one like her."
What should a sourcing agent never do?
Reject people autonomously. Ranking candidates in on inspectable, job-relevant signals is sourcing; filtering people out on opaque scores or proxy attributes is a compliance and fairness failure. Keep the complete result list accessible and keep a human reviewing surfaced and skipped alike.
Related
Get Started
// fig. ∞ — ship

Build with us. Now.

Get an API key in 60 seconds. Plug your AI agent into 800M+ verified profiles and 75M+ companies — today.

↓ nextREST · MCP · Webhooks