Filter on jobFunction, one of 22 exact department values, then count the people you can reach. Sizing is free.
jobFunction is the department or function of a person's current role. Pick Human Resources and you get HR people, whatever their title says. Add a level to reach the person who owns the budget.
The filter
| Filter | Type | Example values | Note |
|---|---|---|---|
jobFunction | array of enum | ["Human Resources"], ["Finance & Accounting"], ["Information Technology"] | One of 22 exact strings. Resolve with leadocean_list_enum_values (name job_function). |
jobLevel | array of enum | ["C-Team"], ["VP", "Director"] | Six values: C-Team, VP, Director, Manager, Staff, Other. |
seniority | array of enum | ["c_suite"], ["vp", "director"] | Twelve lowercase bands, from owner and founder down to intern. |
The 22 department values, exactly as the filter reads them:
Advertising & Marketing, Art, Culture and Creative Professionals, Construction, Customer/Client Service, Education, Engineering, Finance & Accounting, General Business & Management, Healthcare & Human Services, Human Resources, Information Technology, Legal, Manufacturing & Production, Operations, Other, Public Administration & Safety, Purchasing, Research & Development, Sales & Business Development, Science, Supply Chain & Logistics, Writing/Editing.
Strings are exact. Marketing is listed as Advertising & Marketing, so copy that string. There is no Product or Design value, so use title for those roles.
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.
| Filters | Mailable people |
|---|---|
jobFunction Human Resources, jobLevel VP and Director, country US, employeeRange 201-500 | 16,305 |
jobFunction Finance & Accounting, jobLevel C-Team, country GB | 6,574 |
jobFunction Information Technology, jobLevel VP and Director, country DE, employeeRange 1001-5000 | 229 |
The first count splits into 13,355 directors and 2,950 VPs. The tool also returns facets for industry and company size, so you can see where a department clusters before you spend anything.
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 HR directors and VPs at US companies with 201 to 500 employees. Size it first, then show me 25.
The agent counts first with the free tool, then calls leadocean_search_leads with this:
{
"jobFunction": ["Human Resources"],
"jobLevel": ["VP", "Director"],
"country": ["US"],
"employeeRange": ["201-500"],
"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).
Run it with the API
One flat JSON body to POST /v1/people/search. Filters are arrays of strings.
curl -X POST "https://api.leadocean.io/v1/people/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobFunction": ["Human Resources"],
"jobLevel": ["VP", "Director"],
"country": ["US"],
"employeeRange": ["201-500"],
"limit": 25
}'For the free sizing call, put count=true in the URL (not the body) and set limit to 1.
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 '{
"jobFunction": ["Human Resources"],
"jobLevel": ["VP", "Director"],
"country": ["US"],
"employeeRange": ["201-500"],
"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.
curl -X POST "https://api.leadocean.io/v1/exports" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "hr-leaders-us-201-500",
"filters": {
"jobFunction": ["Human Resources"],
"jobLevel": ["VP", "Director"],
"country": ["US"],
"employeeRange": ["201-500"]
},
"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
jobLevelorseniorityto reach the budget owner, not the whole department. HR VPs and Directors is the first count above. - Add
countryorcontinentto pick a market. See find people by location. - Add
keywords(for example["payroll"]) 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
What is the difference between jobFunction and title?
jobFunction is a closed list of 22 departments. title is free text matched against the job title. Use jobFunction for a whole department, and title for a named role such as Head of Product.
Why does my department return nothing?
Almost always the string. Values are exact. Marketing is listed as Advertising & Marketing. Run leadocean_list_enum_values with name job_function and copy the string.
Can I find a department's people at one company?
Yes. Add domain with the company website to the same body. For one company's whole team, GET /v1/companies/{domain}/people stops at 10,000 rows.
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 department 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 →