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

Role playbook

How to Sell to an HR Director (and Size the List First)

What an HR Director buys, who else is in the room, how many are mailable by country, and four first lines you can send today.

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

TL;DR

  • An HR Director is judged on hiring speed, retention and people cost. Sell them hours back and a cleaner process, not "better data".
  • Count first, send second. On 2026-10-21 LeadOcean showed 21,128 mailable people with the title "HR Director" worldwide, 8,763 of them in the US.
  • The whole recipe takes about 25 minutes and spends about 26 LeadOcean records. Every count is free.

Prerequisites

  • A free LeadOcean account and an API key from app.leadocean.io. Free gives you 1,000 records for life, no card, 5 requests a second.
  • The key in your shell as $LEADOCEAN_API_KEY.
  • curl and jq.
  • Optional: Claude or any MCP client connected to https://api.leadocean.io/mcp, which has 13 tools including free counts.

What an HR Director actually cares about

An HR Director owns the employee side of the business: hiring, onboarding, pay, retention and compliance with employment rules. Everything they read is filtered through those jobs.

They care about four things, roughly in this order.

  1. Time to hire. Open roles that stay open cost the line managers who nag them every week.
  2. Retention. Losing people is expensive and visible. Anything that plausibly keeps people longer gets a hearing.
  3. Admin load. Their team spends hours on forms, approvals and questions. A tool that removes work from the team is easy to defend.
  4. Risk. Employment law, data handling and audit trails. A mistake lands on their desk first.

They do not want a feature tour. They want to know what changes for their team next month, and what could go wrong.

What kills the deal

HR Directors say no for predictable reasons. Answer them in the first email, not the third.

  • "We already have an HRIS." Do not argue. Ask what the system does for the problem you solve, and what the team still does by hand.
  • "No budget." HR budgets are set early and defended hard. Offer a pilot small enough to need no new budget line.
  • "Talk to IT." Fair. HR often cannot buy software that touches employee data without IT sign-off. Send IT a one-paragraph note.
  • "Not now." Ask for a date. Directors plan around hiring cycles and budget windows, so a named month is a real answer.

Where an HR Director sits in the buying committee

An HR Director is usually the champion or the evaluator, rarely the final signer. In our title count, 17,469 of the 21,128 mailable "HR Director" profiles carry the director seniority band (count of 2026-10-21).

Three roles show up around them.

If your product helps sales or marketing teams, the HR Director is rarely your first call. If it touches hiring, onboarding or people operations, they are the first call. Compare with how to sell to a Marketing Director and how to sell to a Sales Director to see how the committee shifts.

Write to the HR Director as the person who will say "this helps my team" to their boss. Give them a sentence they can forward.

Step 1: Count HR Directors by country (free)

Start with a count. It spends zero records and tells you whether the segment is worth a campaign.

leadocean_count_leads counts mailable people by default (verified, catch_all_valid and catch_all addresses). Run it from any MCP client:

json
{
  "tool": "leadocean_count_leads",
  "arguments": {
    "title": ["HR Director"],
    "country": ["US"]
  }
}

Repeat with GB, DE and IN, or omit country for the worldwide figure. Title search matches the profile title, so "HR Director" will not include every "Director of Human Resources" or "Head of People". Run those as separate counts.

Step 2: Read the count for each region

Put the counts in one table before you pick a market. These ran on 2026-10-21, filtered by title "HR Director" and the default mailable email statuses.

RegionMailableEmployers covered
Worldwide21,12811,694
US8,7635,557
GB1,9461,399
DE552418
IN245190

Two things to read from this. The US is 41% of the worldwide mailable list (8,763 of 21,128). And India is small for this exact title, so an India campaign needs the wider title variants.

Without the email filter the US alone matches 24,971 people. The gap is people we hold but would not recommend mailing.

Step 3: Pull a sample from your best region

Pull 25 rows from the region you picked. This spends 25 records. Search is a flat JSON body, filters are arrays, and limit runs from 1 to 100.

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": ["HR Director"],
    "country": ["GB"],
    "emailStatus": ["verified"],
    "limit": 25
  }' | jq '.data | length'

Add a company-size filter next if you sell to one segment. Page with the cursor value from meta. One search pages to 10,000 rows, so narrow the filters instead of walking the whole index.

Step 4: Enrich one record to read the career history

Before you write, read one profile. Person enrich returns career history: past roles, education, certifications and awards. Past employers carry no company_id yet.

Enrich takes exactly one of linkedin_url, email, phone or person_id. Use the meta.source_ids.person_id from a step 3 row.

bash
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_FROM_STEP_3", "reveal_email": true}' \
  | jq '.data.resume_data.experiences[0:3], .data.resume_data.certifications'

This costs one record. A person we hold nothing for returns a 404 and costs nothing.

Look at the path and the certifications. An HR Director who came up through recruiting responds to hiring pain. One who came from compensation or operations responds to process and risk.

Step 5: Write the first line

The first line must show you know the job. Pick one of these four angles and keep the email under 90 words.

text
1. Hiring: "Your team has {N} open roles at {Acme}. What slows a role down most: sourcing or scheduling?"
2. Admin: "Most HR teams lose hours a week to the same few forms. Which ones eat your team's time?"
3. Onboarding: "New starters at {Acme} wait days for access and answers. Could day one be sorted before they arrive?"
4. Territory: "I counted {N} HR Directors in {region} at companies your size. Want the list?"

The territory line works because it is checkable. You ran a free count, so the number is real. Send it with the count and the date.

Match the angle to the region. The US list leads with Hospitals and Health Care (717), Retail (351) and Software Development (323), so hiring volume is a natural opener. In Germany, Software Development (43) and Motor Vehicle Manufacturing (40) lead, which points to skilled-hire pressure and works councils rather than high-volume hiring.

These are starting points from how the segments are shaped, not measured results. Do not claim a reply rate you have not measured. Test two angles on 100 contacts each and keep the winner.

Plan the follow-up

One email rarely lands an HR Director. Plan three touches over about two weeks, and change the angle each time instead of repeating the first one.

  • Touch 1: the territory line with the count and date.
  • Touch 2: one sentence on the pain you picked, plus a question they can answer in a word.
  • Touch 3: an offer to send the list or a short note their IT or finance colleague can read.

HR Directors forward things. A note written for the next reader in the committee is worth more than a clever subject line. Keep any claim about their company to what you can check from the record, such as headcount band or industry, and leave out anything you cannot.

Step 6: Save the list as a CSV

When the sample converts, export the list. Bulk CSV export is not on the Free plan. Solo includes it, and Agency exports 50k rows a file. The ceiling is 50,000 rows a request and 500,000 rows a day.

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": ["HR Director"],
      "country": ["GB"],
      "emailStatus": ["verified"]
    },
    "limit": 1000
  }'

You can also build the same export in the app at app.leadocean.io. The Exports page has a filter builder, a column picker and a price preview before you download.

What you get

The count in step 1, run on 2026-10-21 with title: ["HR Director"] and country: ["GB"], returned:

json
{
  "total": 1946,
  "totalIsExact": true,
  "totalAll": 6148,
  "distinctCompanies": 1399,
  "credits": 0
}

total is the mailable count. totalAll is everyone matching without the email filter. The call cost no records.

A search row follows the response shape from the API reference, shown here with placeholder values.

json
{
  "success": true,
  "data": [
    {
      "profile_data": { "profile_full_name": "Jane Doe" },
      "contact_data": {
        "has_email": true,
        "email_status": "verified",
        "email_type": "work"
      },
      "meta": { "source_ids": { "person_id": "1234567890" } }
    }
  ],
  "meta": { "count": 1, "limit": 25, "nextCursor": "CURSOR" }
}

Search rows carry identity, current role, company and the email flags, but no addresses. The person_id for enrich sits at meta.source_ids.person_id.

Troubleshooting

ErrorCauseFix
401Missing or wrong x-api-key headerCheck $LEADOCEAN_API_KEY is set in this shell and sent as x-api-key.
429Above the plan's rate limit (5 a second on Free, 200 on Agency)Honor Retry-After, or pace the loop.
402Out of recordsThe Free plan's 1,000 records are one-off. Move to Solo ($97 a month) or Agency ($497 a month).
Empty dataA filter value does not match an exact enum stringCheck values with leadocean_list_enum_values. Case matters.
Export refusedOver 50,000 rows a request or 500,000 a daySplit the export by country or company size.
Export refused on FreeBulk CSV export is not on FreeUse search with limit up to 100, or move to Solo.

FAQ

Is an HR Director the same as a CHRO?

No. An HR Director usually runs a function or a region and reports up to a CHRO or VP of People. The CHRO owns the larger budget. Sell to the director for the pilot and give them the case to take upward.

Should I search for "Director of Human Resources" too?

Yes. Title search matches the profile text, so phrasings differ. Count "HR Director", "Director of Human Resources" and "Head of People" separately, then merge the lists on person_id.

How many HR Directors can I actually email?

On 2026-10-21 the mailable count worldwide was 21,128 for the title "HR Director". The default count includes verified, catch_all_valid and catch_all addresses. Bounces are not refunded, so read email_status before you send.

How is this different from selling to an IT or Sales Director?

The method is the same: size, sample, read one profile, write one angle. Only the pain changes. See how to sell to an IT Director and how to sell to a Sales Director.

What does this cost?

The counts are free. The recipe spends about 26 records, well inside the 1,000 on the Free plan. See pricing for Solo and Agency.

More role playbooks are in the blog.

Count your HR Director list before you write a word

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

Get your free API key →