Lead source

Find decision makers

Filter on jobLevel, seniority and jobFunction, then count the people you can reach. Sizing is free.

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

Filter on jobLevel, seniority and jobFunction, then count the people you can reach. Sizing is free.

A decision maker is a level plus a department. Pick the level that signs, pick the function that owns the problem, and add a company size and a country.

The filter

FilterTypeExample valuesNote
jobLevelarray of enum["C-Team"], ["VP", "Director"]Six exact strings: C-Team, VP, Director, Manager, Staff, Other. Case matters.
seniorityarray of enum["owner", "founder", "c_suite"], ["vp"]Twelve lowercase strings: owner, founder, c_suite, partner, vp, head, director, manager, senior, entry, intern, unknown. Finer than jobLevel.
jobFunctionarray of enum["Sales & Business Development"], ["Information Technology"]One of 22 exact strings, such as Engineering, Finance & Accounting or Human Resources. Resolve with leadocean_list_enum_values (name job_function).

Use jobLevel for a quick cut. Use seniority when you need owners and founders as separate groups. Both can run in one query.

How many you can reach

Three 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
jobLevel C-Team, jobFunction Sales & Business Development, country US, employeeRange 51-20017,614
seniority owner, founder and c_suite, industry Software Development, country GB, employeeRange 11-502,890
jobLevel VP and Director, jobFunction Information Technology, country DE, employeeRange 1001-5000229

These are people, not companies. The first number needs a warning: 14,384 of the 17,614 carry the owner seniority, and 9,073 sit in Real Estate. At small firms the owner is the C-Team. Add industry or excludeIndustry if that is not your market.

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 VPs and Directors of IT at German companies with 1,001 to 5,000 employees. Size it first, then show me 25.

The agent counts first with the free leadocean_count_leads. Then it calls leadocean_search_leads with this:

json
{
  "jobLevel": ["VP", "Director"],
  "jobFunction": ["Information Technology"],
  "country": ["DE"],
  "employeeRange": ["1001-5000"],
  "limit": 25
}

The search costs 1 record per person returned. For one named account, the Decision Maker Mapper skill runs this per buying role. The same flow works in Cursor, VS Code and Windsurf.

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 '{
    "jobLevel": ["VP", "Director"],
    "jobFunction": ["Information Technology"],
    "country": ["DE"],
    "employeeRange": ["1001-5000"],
    "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 '{
    "jobLevel": ["VP", "Director"],
    "jobFunction": ["Information Technology"],
    "country": ["DE"],
    "employeeRange": ["1001-5000"],
    "emailStatus": ["verified", "catch_all_valid", "catch_all"],
    "limit": 1
  }'

data comes back empty and meta.total holds the count, capped at 100,000. A real row follows leadocean.person.v1: profile_data, contact_data, resume_data and meta. contact_data says whether we hold an email or phone and gives email_status.

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": "it-leaders-germany",
    "filters": {
      "jobLevel": ["VP", "Director"],
      "jobFunction": ["Information Technology"],
      "country": ["DE"],
      "employeeRange": ["1001-5000"]
    },
    "limit": 229,
    "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 title (for example ["[CFO]"], brackets for an exact match) to name the one role you want inside a level.
  • Add technologies or technologyCategories to keep companies that run a tool you sell against. See find companies by technology.
  • Add reachable set to strict, or hasPhone set to true, to keep people you can contact by verified email or phone.

More ways to build a list are on the lead sources hub.

FAQ

Should I filter on jobLevel or seniority?

Start with jobLevel. It has six values and covers most lists. Switch to seniority when owners and founders must be split from the C-suite, as in the second count above.

Can I find the decision makers at one company?

Yes. Add domain (for example ["acme.com"]) to the same body. The Decision Maker Mapper skill wraps this for one account.

Are the counts people or companies?

People. Each count is mailable people at companies that match the other filters. A company with five VPs adds five.

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 decision maker 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 →