Pre-Black Friday: 20% off, for as long as you stayEARLYBFon Solo and AgencyEnds Nov 28Start free

How-to guide

How to Sell to a Recruiter (and Size the List First)

What a recruiter cares about, who else signs, how many are mailable by region, and the first lines that get replies.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

To sell to a recruiter, sell a faster fill or a lower cost per hire, then prove it in one line. Recruiters measure time to fill, submittals and offers accepted. Anything that does not move those numbers gets deleted.

TL;DR

  • Recruiters respond to tools that cut time to fill or cost per hire. They rarely sign alone: talent leaders and finance usually approve spend.
  • On 2026-10-21 the LeadOcean database held 248,873 people with "Recruiter" in the title and a mailable email (verified, catch_all_valid or catch_all). 186,928 are in North America, 33,494 in APAC, 23,747 in EMEA and 4,704 in LATAM.
  • The steps below take about 25 minutes and spend 25 to 100 records. Counting is free.

Prerequisites

  • A LeadOcean account. The Free plan gives 1,000 records for life, no card, 5 requests a second.
  • An API key stored as $LEADOCEAN_API_KEY.
  • curl and jq.
  • A one-line offer for recruiters, written before you pull any data.

What a recruiter cares about

A recruiter cares about speed, quality of candidates and how many reqs sit open. Their day is a queue of open roles, a pipeline per role and hiring managers asking for updates.

Two kinds of recruiter buy differently:

  • In-house recruiters work for one employer. They own reqs, depend on hiring managers and have little budget of their own.
  • Agency recruiters work at staffing firms. They earn per placement, so they buy anything that gets them to a candidate or a client sooner.

LeadOcean data shows the split. In the 2026-10-21 count, "Staffing and Recruiting" is the top employer industry among mailable recruiters (48,524), ahead of IT Services and IT Consulting (31,929) and Hospitals and Health Care (17,733). Decide which group you sell to before you write a word.

Where a recruiter sits in the buying committee

A recruiter is usually the user and the champion, not the budget owner. The people who sign sit above them.

RoleWhat they decideWhat to say
RecruiterWhether the tool is worth tryingFewer hours per hire, a concrete workflow
Recruiting manager or Head of TalentWhether the team adopts itTeam-wide time to fill, rollout effort
HR or People VPBudget and vendor riskCost per hire, headcount impact
FinanceFinal spendPayback in months
Hiring managerWhether it helps their reqBetter shortlists, faster slate

The seniority facet in the same count matches that shape. Of the 248,873 mailable recruiters, 198,187 are tagged entry and 34,805 senior. Only 842 are directors, 710 are VPs and 424 are c_suite. So you will mostly mail users. Plan a second, smaller send to the managers above them.

Common mistakes when selling to recruiters

  • Pitching features. Recruiters do not care how a tool works. They care what it does to time to fill.
  • Mailing one title only. A list of "Recruiter" titles misses "Talent Acquisition Partner" and "Sourcer". Count each title variant before you decide, and add the ones with real volume.
  • Ignoring email status. A bounce hurts your sender reputation, and LeadOcean gives no refund for bounced emails. Keep to verified for the first send.
  • Skipping the second buyer. If you only win the recruiter, the deal stalls at HR or finance. Send a separate note to the Head of Talent in the same account.
  • Sending without a count. You do not know if the list is 400 or 40,000 people until you count it. Counting is free.

Step 1: Size the list with a free count

Count first. A count spends no records. The MCP tool leadocean_count_leads takes the same filters as search, and returns the mailable total with a breakdown.

json
{
  "title": ["Recruiter"],
  "salesRegion": ["NORAM", "EMEA", "APAC", "LATAM"],
  "facets": true
}

By default the count covers people whose email is verified, catch_all_valid or catch_all. That is a mailable count, not everyone with a matching title. The same filters with no email condition match 1,025,633 people (totalAll).

Step 2: Split the count by region

Run the count once per region to see where your list is. These are the results from 2026-10-21, title "Recruiter", mailable.

RegionMailable recruitersAll matches, any email status
NORAM186,928582,776
APAC33,494294,904
EMEA23,747127,237
LATAM4,70420,716
Total248,8731,025,633

The country facet shows the concentration. The US has 182,520 mailable recruiters, India 21,689, the UK 4,281 and Canada 4,187. If your product needs sales support in one language, start with one country, not one region.

APAC and EMEA are where the gap between all matches and mailable matches is widest. Check emailStatus before you send there.

Step 3: Narrow to the people who decide

Add seniority to reach the managers and heads who approve a tool. Use the exact enum strings. Check them with leadocean_list_enum_values if you are unsure.

bash
curl -s -X POST "https://api.leadocean.io/v1/people/search?count=true&limit=1" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": ["Recruiting", "Talent Acquisition"],
    "seniority": ["manager", "head", "director"],
    "country": ["US"],
    "emailStatus": ["verified", "catch_all_valid", "catch_all"]
  }' | jq '.meta.total'

The count=true query parameter with limit=1 is a free sizing call. meta.total is capped at 100,000, so a bigger list needs narrower filters.

Step 4: Pull a test slice

Spend a few records to check quality before a full pull. Search returns up to 100 rows a page and pages by cursor.

bash
curl -s -X POST "https://api.leadocean.io/v1/people/search" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": ["Recruiter"],
    "country": ["US"],
    "industry": ["Staffing and Recruiting"],
    "emailStatus": ["verified"],
    "limit": 25
  }' | jq '{rows: (.data | length), next: .meta.nextCursor}'

This spends 25 records. Read the first rows, then decide whether the filters are tight enough.

Step 5: Export the full list

For a list above a few hundred rows, use a bulk export. Exports take up to 50,000 rows a request and 500,000 a day. Bulk CSV export is not on the Free plan.

bash
curl -s -X POST "https://api.leadocean.io/v1/exports" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": {
      "title": ["Recruiter"],
      "country": ["US"],
      "industry": ["Staffing and Recruiting"],
      "emailStatus": ["verified"]
    },
    "limit": 5000,
    "preset": "full"
  }'

Poll GET /v1/exports/{id} until it returns a downloadUrl.

You can also build the same export in the app at app.leadocean.io: filter builder, column picker, a price preview, then Download. The app has no sequencer, so load the CSV into the tool you send from.

Step 6: Write the first line

Open with the recruiter's metric, not your product. One sentence, one number, one ask. Use placeholders until you have your own proof.

  • Time to fill. "Acme's recruiters spend about {X} hours a week on sourcing. We cut that to {Y}. Worth a 10-minute look?"
  • Agency recruiters. "The agency that submits first often wins the req. {Product} gets you to the first slate in {X} days."
  • In-house recruiters. "Hiring managers ask for updates daily. {Product} shows them a live slate. You stop sending status emails."
  • Heads of Talent. "If cost per hire is a number you report, {Product} lowers it on {role type} reqs. I can share how."

Replace the braces with real, provable numbers. Never send a stat you cannot source. Keep the email under 80 words and ask one question.

Step 7: Plan the follow-up and the objections

One email is not a campaign. Send three touches over about two weeks, each with a different angle, and stop when someone replies.

  1. Touch 1. The metric line from Step 6 and one question.
  2. Touch 2. A short example of the workflow, in two sentences, with no attachment.
  3. Touch 3. A direct close: "Should I stop writing, or is this worth ten minutes?"

Expect four objections from recruiters. Answer them in your reply templates before you send.

  • "I have no budget." Offer a free tier or a pilot on one req, and ask who owns the budget.
  • "We already use an applicant tracking system." Say what yours adds. Do not claim to replace it.
  • "Send me details." Send one link and one sentence, not a deck.
  • "Talk to my manager." Treat this as a win. Ask for the name, then check it in the data with GET /v1/companies/{domain}/people.

Last, segment by company type before you send. Agency recruiters and in-house recruiters read the same email differently, and the industry facet makes the split easy. Run the Step 2 count again with industry set to "Staffing and Recruiting" for agencies, and with that industry excluded using excludeIndustry for in-house teams. Write one version of the email for each group.

What you get

This is the count response from 2026-10-21, trimmed to the fields you need. It spent 0 records.

json
{
  "total": 248873,
  "totalIsExact": true,
  "totalAll": 1025633,
  "distinctCompanies": 53178,
  "credits": 0,
  "facets": {
    "country": [
      { "value": "US", "count": 182520 },
      { "value": "IN", "count": 21689 },
      { "value": "GB", "count": 4281 },
      { "value": "CA", "count": 4187 }
    ]
  }
}

A people record from search has this shape (response shape from the API reference, placeholder values):

json
{
  "success": true,
  "data": [
    {
      "profile_data": { "profile_full_name": "Jane Doe" },
      "contact_data": {
        "has_email": true,
        "email_status": "verified",
        "contact_current_experiences": [
          { "job_title": "Senior Recruiter", "company_name": "Acme", "company_domain": "acme.com" }
        ]
      },
      "meta": { "source_ids": { "person_id": "1234567890" } }
    }
  ],
  "meta": { "count": 1, "credits": 1, "nextCursor": "..." }
}

Troubleshooting

ErrorCauseFix
401Missing or wrong x-api-key headerCheck $LEADOCEAN_API_KEY is set in the shell you run from
429Requests above the plan rate limit (5 a second on Free, 200 on Agency)Slow down and honour the Retry-After header
402Records are spent (Free is 1,000 for life)Move to a paid plan or narrow the pull
Empty resultsA filter value is not an exact enum stringCheck values with GET /v1/enums or leadocean_list_enum_values
Count lower than expectedThe default count is mailable onlyPass emailStatus with every value to see totalAll
Export refusedOver 50,000 rows in a request or 500,000 in a daySplit by country or seniority and run in batches

FAQ

Do recruiters have budget?

Agency recruiters often do, since tools affect their commission. In-house recruiters usually need a talent head or HR leader to approve spend, so write for both.

Which region should I start with?

Start with the region where you can support the buyer. North America has 186,928 mailable recruiters in the 2026-10-21 count, far more than any other. A single country gives tighter messaging.

What is a mailable count?

It counts people whose email is verified, catch_all_valid or catch_all. It is not everyone with the title. Bounced emails are not refunded, so read email_status before you send.

How many records will a test run spend?

A count spends none. A 25-row test search spends 25 records, which is within the Free plan's 1,000.

Which plan fits a recruiter-focused campaign?

Free covers testing. Solo is $97 a month for one person and includes bulk CSV export. Agency is $497 a month for teams. See pricing.

Size your recruiter list before you write the first email

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →