TL;DR
- A Head of Talent Acquisition buys on hiring speed, cost per hire and recruiter capacity. Lead with one of those numbers, not with your product.
- It takes about 30 minutes and about 25 LeadOcean records: 10 search rows, 10 buying-committee rows and 5 reveals. The regional count in Step 1 is free.
- Treat the head as the champion, not the whole deal. Finance, HR leadership and IT usually sit in the room too.
This guide is for anyone selling software, services or data to in-house recruiting teams. The role has many titles: Head of Talent Acquisition, Director of Talent Acquisition, VP Talent, Head of Recruiting. The pitch is the same for all of them.
Prerequisites
- A LeadOcean account. The free plan gives 1,000 records, one-off, no card: start free.
- An API key in your shell:
export LEADOCEAN_API_KEY=... curlandjq. Every request goes tohttps://api.leadocean.iowith thex-api-keyheader.
What this buyer cares about
They are judged on a few numbers, and your first message should touch one of them:
- Time to fill. Days from opened requisition to accepted offer. Slow hiring costs the business output.
- Cost per hire. Agency fees, job board spend, recruiter salaries and tools, divided by hires.
- Recruiter capacity. How many open roles one recruiter carries. When it is too high, quality drops.
- Candidate quality and experience. Offer acceptance and hiring manager satisfaction.
They also guard their stack. Every new tool must fit their applicant tracking system, and they have usually been burned by a tool that nobody adopted. Say how yours fits in the first two lines.
Do not pitch "transformation". Pitch the one thing you shorten, cheapen or remove.
Objections you will hear
Most replies from this buyer fall into four groups. Prepare one honest sentence for each.
- "We already have a tool for that." Ask what it misses. Offer to run your tool next to it on one open role.
- "We are in a hiring freeze." Freezes cut spend on agencies and job boards first. Pitch the cost you remove, not the hiring you add.
- "Send me something." Send one page with one number and one next step. A long deck gets forwarded and never read.
- "Talk to my VP." Take it as a yes to the idea. Ask for a short intro, and say what you will bring.
Timing signals worth watching
Outreach lands better when something has changed at the account. Four signals are worth a look, and each can be read from public sources:
- A burst of new job postings in one department.
- A new Head of Talent Acquisition in the last six months. New leaders review their stack early.
- A funding round or a headcount jump, which usually brings a hiring plan.
- A reorganisation of the people team.
LeadOcean person records carry career history in resume_data, so you can spot a recent hire into the role. The signal list above is a working habit, not a LeadOcean field, so confirm each one on the company's own pages before you quote it.
Where they sit in the buying committee
The head of the function is the champion and usually owns the problem. A purchase of any size often needs more people. This is a working model, not a statistic:
| Role | What they decide | What they ask |
|---|---|---|
| Head of Talent Acquisition | Whether the problem is real, and which tool fits the team | Will my recruiters use it, and does it cut time to fill? |
| CHRO or VP People | Budget for people programs, fit with HR strategy | Does it serve the wider people plan? |
| Finance partner or CFO | Spend above their threshold | What does it replace, and what does it cost over a year? |
| IT or security | Integration and data handling | Does it connect to our ATS, and where does data go? |
| Hiring managers | Rarely sign, but can block | Does it get me candidates faster? |
Selling to the head alone works for small tools. For anything larger, map two or three of these people in the same company before you write the first email.
Step 1: Count how many you can mail, by region
Count first. It is free. Send count=true as a query parameter with limit 1 in the body.
curl -s -X POST "https://api.leadocean.io/v1/people/search?count=true" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": ["Head of Talent Acquisition"],
"salesRegion": ["EMEA"],
"limit": 1
}' | jq '.meta | {total, totalIsExact}'Swap salesRegion for NORAM, APAC or LATAM to size each region. We ran the same title through the free MCP leadocean_count_leads tool on 21 October 2026. These are mailable counts: emailStatus verified, catch_all_valid or catch_all, the default.
| Region | Mailable Heads of Talent Acquisition | Employers they span |
|---|---|---|
| NORAM | 1,398 | 1,153 |
| EMEA | 1,435 | 1,167 |
| APAC | 810 | 662 |
| LATAM | 105 | 95 |
| All regions | 3,898 | 2,917 |
The four regions add to 3,748. The other 150 match the title but sit outside all four regions. Without the email condition the title matches 8,914 people, so about 44% have a mailable address. The title filter is a keyword match, so it also catches close variants.
Pick one region first. EMEA and NORAM are close in size, and each is a market you can work in a quarter.
Step 2: Narrow to the accounts that fit
A list of 1,435 people is too wide for a focused pitch. Add company filters that match who you sell to. This example keeps companies with 501 to 5,000 staff, where a dedicated recruiting team is common.
curl -s -X POST "https://api.leadocean.io/v1/people/search?count=true" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": ["Head of Talent Acquisition"],
"salesRegion": ["EMEA"],
"employeeRange": ["501-1000", "1001-5000"],
"limit": 1
}' | jq '.meta | {total, distinctCompanies}'Re-run with other employeeRange values or an industry array until the number matches the team you can work. Check enum values with the free list_enum_values tool before you guess. Each count is free, so tune as long as you like.
Step 3: Pull the first page of heads
Run the search without count. Each person returned costs one record, so keep limit small. Filter to verified emails.
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": ["Head of Talent Acquisition"],
"salesRegion": ["EMEA"],
"employeeRange": ["501-1000", "1001-5000"],
"emailStatus": ["verified"],
"limit": 10
}' > heads.json
jq '.meta | {count, nextCursor}' heads.jsonSearch rows are thin. They carry has_email and email_status but not the address. Pass meta.nextCursor back unchanged for the next page. One search pages to 10,000 rows, so narrow the filters rather than walking the whole index.
Step 4: Map the rest of the buying committee
Take one account from your list and pull the people around the head. People search takes a domain filter, so you can ask for one company's senior HR staff. Here acme.com is a placeholder.
curl -s -X POST "https://api.leadocean.io/v1/people/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"domain": ["acme.com"],
"jobFunction": ["Human Resources"],
"jobLevel": ["VP", "C-Team"],
"limit": 10
}' > committee.json
jq '.data[] | .profile_data.profile_full_name' committee.jsonThat returns senior HR people at the account, such as a VP People or a CHRO. Run it again with jobFunction set to ["Finance & Accounting"] for the finance partner. Count it first with ?count=true to see how many rows you will pay for. Ten rows cost ten records.
GET /v1/companies/{domain}/people also lists people at a domain, but it takes only cursor and limit, with no title or level filter. Use it when you want everyone at a small account.
Step 5: Reveal and check the email
Reveal only for people you will write to. Enrich by person_id with reveal_email set to true. It costs one record per person.
PERSON_ID=$(jq -r '.data[0].meta.source_ids.person_id' heads.json)
curl -s -X POST "https://api.leadocean.io/v1/people/enrich" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"person_id\": \"$PERSON_ID\", \"reveal_email\": true}" > reveal.json
jq -r '.data.contact_data.contact_emails[]
| select(.type == "work")
| [.email, .status] | @tsv' reveal.jsonSend to verified. Treat catch_all as a risk you choose. There is no refund for bounced emails, so read the status before you send.
The enrich response also carries career history in resume_data. Past roles, education and certifications are there when held. A head who came from an agency or a high-growth startup tells you what to say.
Step 6: Write a first line that fits
Open with something about their work and one number they track. Keep it to two or three sentences. Here are four templates. Replace the bracketed parts with facts you checked.
1. Capacity
{{first_name}}, how many open roles does each recruiter at {{company}} carry
right now? We take the sourcing step off their list. Worth a look?
2. Time to fill
{{first_name}}, roles in {{department}} tend to stay open longest. We shorten the
shortlist step to [your number]. Open to a comparison on one live role?
3. Cost per hire
{{first_name}}, if agency fees are still in the plan for {{quarter}}, we replace
the sourcing part for a flat fee. Can I send the numbers?
4. Career-history hook (from resume_data)
{{first_name}}, I saw you moved from {{past_company}} to {{company}}. Teams that
make that move often rebuild the sourcing stack. How are you handling it?Do not claim a result you have not measured. If you have no proof yet, offer a one-role pilot instead.
Then send the CSV or the revealed rows to the sender you already use. LeadOcean does not send email. It has no sequencer, dialer or CRM. For a larger list, use POST /v1/exports. It takes up to 50,000 rows a request and 500,000 a day, and it is not on Free. The app (app.leadocean.io, Exports page) builds the same export and shows the record price first.
What you get
The free count for EMEA, from the MCP leadocean_count_leads tool on 21 October 2026:
{
"total": 1435,
"totalIsExact": true,
"totalAll": 3519,
"distinctCompanies": 1167,
"credits": 0
}A search row, as a response shape from the API reference. Values are placeholders and profile_data is abbreviated:
{
"success": true,
"data": [
{
"profile_data": {},
"contact_data": {
"has_email": true,
"email_status": "verified",
"email_type": "work"
},
"meta": { "source_ids": { "person_id": "1234567" } }
}
],
"meta": { "count": 1, "credits": 1, "nextCursor": "..." }
}After the reveal, contact_emails holds email, type and status, for example jane.doe@acme.com, work, verified.
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing or wrong x-api-key header | Send the key in x-api-key, not as a bearer token. Check $LEADOCEAN_API_KEY. |
| 429 | Above the plan's rate limit (5 a second on Free, 200 on Agency) | Honour Retry-After and slow the loop. |
| 402 | Out of records. The 1,000 free records are one-off | Count first, lower limit, or move to Solo at $97 a month or Agency at $497 a month. |
Empty data | A filter value that is not an exact enum string | Check values with GET /v1/enums or the free list_enum_values tool. |
meta.depthCapped true | One search reached 10,000 rows | Narrow the filters. The capped page has no nextCursor. |
export_limit_rows (400) | limit above 50,000 rows in one export | Split into exports with narrower filters. |
FAQ
Who else should I contact besides the Head of Talent Acquisition?
Start with the VP People or CHRO and the finance partner. Pull them with the company people endpoint in Step 4. Add IT if your tool touches the applicant tracking system.
Should I call or email first?
Email first, with a short and specific line. Add a phone number later for people who replied or opened. GET /v2/people/phone returns numbers and costs one record per call, including a call that finds nothing. See the phone number guide.
How many records does this cost?
About 25 for the full recipe in this guide. Counts are free, and an enrichment that finds nothing costs nothing. Paid plans run on a fair-use pace, not credits.
Is selling to this role different from selling to RevOps?
The champion logic is the same. The numbers differ: time to fill and cost per hire instead of pipeline and forecast accuracy. See the guide to selling to a Head of RevOps.
Where can I get the email address?
The email guide covers sources, status values and what to send to. More recipes live in the blog hub. Plans and limits are on the pricing page.
Size your talent acquisition market today, free
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →