Lead source

Find people by job title

Filter on title, with [brackets] for an exact match and excludeTitle to cut noise. Sizing is free.

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

Filter on title, with [brackets] for an exact match and excludeTitle to cut noise. Sizing is free.

title is free text matched against a person's current job title. You type the role you sell to, count the people, then pull them.

The filter

FilterTypeExample valuesNote
titlearray of strings["VP of Sales"], ["[Chief Revenue Officer]"]Job title keywords by default. Wrap a value in [brackets] for an exact match.
excludeTitlearray of strings["Assistant"], ["Intern"]Job titles to drop from the match.
jobLevelarray of enum["C-Team"], ["VP", "Director"]Optional guard rail. Six exact values: C-Team, VP, Director, Manager, Staff, Other.

title is not a closed list, so there is no enum to look up. jobLevel is a closed list. Strings are exact, so copy C-Team, not C-Suite. Resolve them with leadocean_list_enum_values (name job_level).

For a whole department, use jobFunction instead. See find people by department.

How many you can reach

Live counts from leadocean_count_leads, run on 2026-10-01. Each count is mailable people: verified, catch_all_valid or catch_all email, the tool's default. It spent no records.

FiltersMailable people
title VP of Sales, country US, employeeRange 51-2001,433
title [Chief Revenue Officer] (exact), country US4,207
title Chief Revenue Officer (keywords), country US5,344
title Head of Data, excludeTitle Assistant, country GB1,635

Brackets matter. The same role returns 4,207 people as an exact match and 5,344 as keywords. The keyword match is the wider net.

The tool also returns facets, so you can size the list before you spend anything. In the first count, all 1,433 people sit in 51-200 companies. The largest industry is Software Development with 172.

Run it from an AI agent

Connect the MCP server at https://api.leadocean.io/mcp (OAuth sign-in, no key pasted), then ask in plain words.

Find people titled exactly Chief Revenue Officer in the US. Size it first, then show me 25.

The agent counts first with the free tool, then calls leadocean_search_leads with this:

json
{
  "title": ["[Chief Revenue Officer]"],
  "country": ["US"],
  "limit": 25
}

The search costs 1 record per person returned. Each row says whether we hold an email (has_email), its email_status and whether we hold a phone (has_phone). A row looks like this, with placeholder values:

json
{
  "profile_data": { "title": "Chief Revenue Officer", "company": "Acme Inc" },
  "contact_data": { "has_email": true, "email_status": "verified", "has_phone": false }
}

That block shows the shape only. It is not a real record.

Run it with the API

One flat JSON body to POST /v1/people/search. Filters are arrays of strings.

bash
curl -X POST "https://api.leadocean.io/v1/people/search" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": ["[Chief Revenue Officer]"],
    "country": ["US"],
    "limit": 25
  }'

For the free sizing call, put count=true in the URL (not the body) and set limit to 1.

bash
curl -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": ["[Chief Revenue Officer]"],
    "country": ["US"],
    "emailStatus": ["verified", "catch_all_valid", "catch_all"],
    "limit": 1
  }'

data comes back empty and meta.countOnly is true. meta.total stops at 100,000 on the REST API.

Export the list

POST /v1/exports takes the same filters inside a filters object. One export is up to 50,000 rows, and an account can export 500,000 rows a day.

bash
curl -X POST "https://api.leadocean.io/v1/exports" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "cro-us",
    "filters": {
      "title": ["[Chief Revenue Officer]"],
      "country": ["US"]
    },
    "limit": 5000,
    "preset": "search"
  }'

Poll GET /v1/exports/{id}, then download. Prefer clicking? The Exports page in the app at app.leadocean.io has the filter builder, a column picker, the record price before you start, and a CSV download.

Combine it

  • Add employeeRange (for example ["51-200"]) to pick a company size. VP of Sales at 51-200 companies is the first count above.
  • Add country or continent to pick a market. See find people by location.
  • Add keywords (for example ["outbound"]) to match skills in the profile. See find people by skill.

More ways to build a people list are on the find people hub.

FAQ

How do I match one exact title?

Wrap the value in square brackets: ["[Chief Revenue Officer]"]. Without brackets the value is a keyword match, so the count is larger and looser.

How do I find several titles at once?

Put each title in the same array, for example ["VP of Sales", "Head of Sales"], and size it with the free count. Add excludeTitle to drop words such as Assistant.

Should I use title or jobLevel?

Use title when you sell to a named role. Use jobLevel or seniority when the rank matters more than the name, because the same role is worded many ways. Using both gives the tightest list.

What does it cost?

Counting is free, as are list_filters and list_enum_values. A search costs 1 record per person returned. The free plan has 1,000 records, one-off, no card. Pro is $499 a month. See pricing.

Size your job title list for free, then pull it

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

Get your free API key →