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

How-to guide

How to find a recruiter's phone number (2026)

Direct dials beat switchboards. Size the recruiter list for free, filter to people we hold a phone for, then pull the numbers.

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

The reliable way to reach a recruiter is a direct dial or mobile from a contact database. The agency or HR switchboard routes you to reception, and a guessed number reaches a stranger.

TL;DR

  • Sizing a recruiter list is free. A search costs 1 record per person returned, and a phone lookup costs 1 record per call.
  • Filter on hasPhone first, so you only spend records on people we hold a number for. Ten minutes covers one recruiter.
  • For a list, search and then export. POST /v1/exports takes up to 50,000 rows a request and 500,000 a day.

Prerequisites

  • A LeadOcean API key from the free plan: 1,000 records for life, no card. Export it as $LEADOCEAN_API_KEY.
  • curl and jq.
  • A target: a company domain such as acme.com, or a segment such as technical recruiters in one country.
  • A calling policy for your market. See Step 4.

Step 1: Know which number you are after

A recruiter has three kinds of number, and each behaves differently when you dial it.

  • Switchboard: the main line of the agency or company. Always findable, and it lands on reception or a shared inbox.
  • Office direct: a desk line. Recruiters are often away from it, so expect voicemail.
  • Mobile: the number recruiters actually answer, and the one to treat with the most care.

The v2 phone endpoint labels each number mobile, direct or office, best first. Take the label as a hint about the line, not a promise about who answers.

Recruiters also split by type. In-house recruiters work for one employer. Agency recruiters work for a staffing firm. Search both, but write them different openers.

Step 2: Size the list for free

Count the recruiters you could reach before you spend anything. A search with count=true as a query parameter and limit 1 returns a total and no rows. It costs nothing.

bash
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": ["Recruiter", "Technical Recruiter", "Talent Acquisition"],
    "country": ["US"],
    "hasPhone": true,
    "limit": 1
  }' | jq '.meta'

hasPhone: true drops everyone we hold no number for. Filter values are arrays and enums are exact strings, so check them with GET /v1/enums if a result looks wrong. The total is capped at 100,000.

The same count runs from Claude with the MCP tool leadocean_count_leads, which is also free.

Step 3: Get the number for one recruiter

If you know the company, search its people by domain and pick the recruiter. The search costs 1 record per person returned. Then fetch every number we hold by person_id.

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 '{"domain": ["acme.com"], "title": ["Recruiter"], "limit": 5}' \
  | jq -r '.data[].meta.source_ids.person_id'

curl -s "https://api.leadocean.io/v2/people/phone?person_id=PERSON_ID" \
  -H "x-api-key: $LEADOCEAN_API_KEY"

The phone call costs 1 record, including a call that finds nothing. If you already hold a LinkedIn URL, pass linkedin_url to the phone endpoint instead of searching. There is no lookup by name plus domain, so search by domain first.

In Claude, the MCP tool leadocean_find_phone does the same lookup for 1 record.

Step 4: Check before you dial

A number in a database is not permission to call it. The v2 phone response does not publish a do-not-call flag. Its absence is not clearance.

What you may call depends on where the recruiter sits and what you are selling. Rules for business calls differ by country, and some regimes treat a mobile differently from a desk line. Check the do-not-call and telemarketing rules for your market, ask counsel if you are unsure, and log who you called, when and why.

Calling a recruiter about a role you want filled is a different act from pitching software to them. Say which one you are doing in the first sentence. Stop after two attempts a day, and email first if you cannot give a reason in ten seconds.

Dial in business hours in their time zone.

Step 5: Pull numbers at scale

A list changes the job. You stop looking up one person and start choosing a segment, so the filters matter more than the endpoint. Pick one recruiter type per list, such as in-house technical recruiters at 201-500 person companies, and write one opener for it.

For a list, export the searched segment. The export takes the same filters as search and asks for the phone columns by name. Numbered columns use N, and the CSV comes back with phone_1_number, phone_2_number and so on.

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": ["Technical Recruiter"],
      "country": ["US"],
      "hasPhone": true
    },
    "columns": ["profile_full_name", "current_job_title", "current_company_name", "phone_N_number", "phone_N_type"],
    "limit": 5000
  }'

Bulk CSV export is not on the Free plan. Solo at $97 a month includes it, and Agency at $497 a month adds 200 requests a second and 5 keys for teams. Prefer the app? The Exports page at app.leadocean.io has a filter builder, a column picker and a price preview before you download.

One search pages to 10,000 rows. Narrow the filters, by country, industry or company size, rather than walking past that.

What you get

First, a live count from the free leadocean_count_leads tool, run on 2026-10-21. It filtered on title Recruiter, country US and hasPhone. It is a count of people with a phone on file, not a mailable count. Output trimmed.

json
{
  "total": 269064,
  "totalIsExact": true,
  "distinctCompanies": 68149,
  "facets": {
    "industry": [
      { "value": "Staffing and Recruiting", "count": 61378 },
      { "value": "IT Services and IT Consulting", "count": 25211 },
      { "value": "Hospitals and Health Care", "count": 22752 }
    ],
    "seniority": [
      { "value": "entry", "count": 211789 },
      { "value": "senior", "count": 39219 },
      { "value": "manager", "count": 6319 }
    ]
  }
}

The title match is loose, so some of the 269,064 are not full-time recruiters. Most sit at entry level, so add "seniority": ["manager", "director"] if you want recruiting leaders.

Second, the response shape of a phone lookup, from the API reference, with placeholder values. It is not a real record.

json
{
  "success": true,
  "data": {
    "found": true,
    "phones": [
      { "phone": "+1 415 555 0133", "type": "mobile" },
      { "phone": "+1 415 555 0100", "type": "office" }
    ]
  }
}

The array position is the priority. Try the first number first. The endpoint returns data and no meta object, so read your spend from GET /v1/usage.

Troubleshooting

ErrorCauseFix
401Missing, wrong or revoked keyCheck that x-api-key carries $LEADOCEAN_API_KEY and the key is active in the app.
402Free plan: the 1,000 records are spentThe allowance is one-off. Move to Solo at $97 a month to keep going.
429Above the plan's rate limit: 5 a second on Free, 50 on Solo, 200 on AgencyHonour Retry-After. Slow the loop or upgrade the plan.
Empty resultsA bad enum value, such as us for a countryUse exact strings from GET /v1/enums, and arrays for every filter.
found: falseWe hold no number for that personIt still costs 1 record on v2. Filter with hasPhone first to avoid it.
Export refusedOver 50,000 rows a request or 500,000 a daySplit the export by country or headcount band.

FAQ

Can I find a recruiter's phone number for free?

For a few, yes. The free plan gives you 1,000 records for life, with no card. Sizing a list costs nothing.

Is the agency switchboard enough?

Rarely. It reaches reception. A direct dial or mobile reaches the person, which is why this guide filters on hasPhone.

Is it legal to call a recruiter's mobile?

It depends on the country, on whether the line is registered as do-not-call, and on what the call is for. We publish no compliance flag, so check the rules where you call and keep a call log.

How many people do you hold numbers for?

We hold a phone for 166M people (measured September 2026). The count for recruiters in your country is a free call in Step 2.

Where do I go next?

To find other roles, read how to find a VP of Sales phone number. The find phone number endpoint and the Claude skill cover the lookup in depth. Plans are on the pricing page.

Get a recruiter's direct dial, not the switchboard

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

Get your free API key →