# AI people search and LinkedIn email finder: contacts by title or company

AI people search: find contacts by job title, seniority, company or location. LinkedIn email finder included. 29 providers through one key. Pay per row, not per seat.

## What's the best way to ask ChatGPT?

Setup line (paste into any agent): `set up olywork — https://olywork.com/llms.txt`

Then ask: "Using olywork, find 25 heads of growth at US SaaS companies with 50 to 200 employees. Show me the price first, keep the result set small, and give me name, title, company and LinkedIn URL."

- **Always cap the result set** Several providers bill per row. “Find everyone” is a bill, not a query.
- **Search first, reveal second** Some searches are free and only the contact details cost.
- **Filter on their fields** Seniority, department, headcount and location are provider filters, not your post-processing.
- **Name the join key** Company domain resolves cleanly. A company name does not, and returns the wrong people.

## Why go through olywork.com

- **No code to write** Connect once, keep the token server side, and call from any agent.
- **Nothing to integrate** No SDK, no OAuth dance per vendor, no seats.

## Behind the scenes: what ChatGPT sees before it calls

olywork.com does not choose for you. It hands ChatGPT this comparison and it picks, or you tell it how.

### Which is cheapest?

- Cheapest per found: Aviato at $0.0025 (`aviato.people.search`)
- Cheapest per result: Icypeas at $0.00038 (`icypeas.people.search`)
- Cheapest per call: HarvestAPI at $0.004 (`harvestapi.linkedin.profile.search`)

Those units are not interchangeable: one call can return many results, so compare on the unit you will actually be billed in.

### How do they compare?

#### LinkedIn

| Provider | Price | Accepts | Verified |
|---|---|---|---|
| HarvestAPI | $0.004 per call | search, currentCompany, pastCompany, school, firstName, lastName | 2026-09-10 |
| Just One API | $0.0295 per found | name, firstName, lastName, title, company, school | unverified |

#### People & contact data

| Provider | Price | Accepts | Verified |
|---|---|---|---|
| Icypeas | $0.00038 per result | query, pagination | 2026-08-20 |
| LeadMagic | $0.00125 per result | job_title, company_domain, company_name, limit, company_filters, titles | 2026-08-28 |
| LimaData | $0.002 per result | ai_prompt, filter_expression, filters, limit, offset | 2026-09-17 |
| Hunter | $0.00245 per result | company_name, location, industry, headcount, company_type, founded_year | 2026-07-31 |
| Aviato | $0.0025 per found | dsl, page, perPage, enrich, fullName, headline | 2026-08-25 |
| AI Ark | $0.00263 per found | account, contact, lists, page, size | 2026-09-17 |
| QuickEnrich | $0.00483 per result | company_url, title, page, has_email, locality, company_name | 2026-09-08 |
| Lusha | $0.00499 per result | pages, filters | 2026-07-28 |
| Exa | $0.007 per call | query, category, numResults, includeDomains, contents | 2026-08-27 |
| Crustdata | $0.009 per result | filters, search, fields, sorts, limit, cursor | 2026-08-25 |
| MoltSets | $0.01 per result | query, title, company, company_domain, country, state | 2026-09-16 |
| Sumble | $0.01 per result | people, filter, select, limit, offset, order_by_column | unverified |
| Wiza | $0.0125 per found | filters, size, page_token, list, id, max_profiles | 2026-09-16 |
| CompanyEnrich | $0.0196 per result | expand, page, pageSize, domains, positionQuery, seniority | 2026-08-20 |
| Findymail | $0.0198 per result | domain, roles, webhook_url, website, job_titles, count | 2026-08-28 |
| ContactOut | $0.02 per result | job_title, past_job_title, job_function, seniority, skills, languages | unverified |
| Fiber AI | $0.02 per result | searchParams, currentCompanies, pageSize, cursor | unverified |
| Prospeo | $0.0245 per found | filters, page | 2026-09-16 |
| Diffbot | $0.0299 per result | query, type, size, from, format, jsonmode | 2026-07-28 |
| HarvestAPI | $0.1 per call | search, currentCompanies, pastCompanies, locations, geoIds, schools | 2026-09-10 |
| People Data Labs | $0.38 per result | sql, query, size, scroll_token, dataset, titlecase | 2026-07-31 |
| Apollo.io | own account, free | person_titles[], person_seniorities[], person_locations[], organization_locations[], q_organization_domains_list[], organization_num_employees_ranges[] | 2026-08-29 |
| Coresignal | own account, free | query | unverified |
| Crunchbase | no dollar rate published | field_ids, query, order, limit, after_id | unverified |
| Dropleads | own account, free | filters, pagination | 2026-09-15 |
| GetLeads.io | free, 5 calls a day on olywork.com's key, then your own key | filters, limit, offset, max_per_company, columns, where_sql | 2026-09-16 |
| LeadsForge | own account, free | cursor, companyDomains, companyNames, companyIndustries, companyTypes, companyFundingRounds | 2026-08-20 |
| Ocean.io | no dollar rate published | size, peopleFilters, companiesFilters, peoplePerCompany, jobTitleThreshold, searchAfter | 2026-08-20 |

Endpoints:

- `aiark.people.search`: olywork call aiark.people.search --data '{"account":{"domain":{"any":{"include":["example.com"]}}},"page":0,"size":1}'
- `apollo.people.search`: olywork call apollo.people.search --data '{"person_titles":["head of marketing"],"q_organization_domains_list":["stripe.com"],"per_page":3}'
- `aviato.people.search`: olywork call aviato.people.search --data '{"dsl":{"filters":[{"headline":{"operation":"fts","value":"software engineer"}}],"limit":10,"offset":0,"sort":[]}}'
- `aviato.people.search.simple`: olywork call aviato.people.search.simple --query page=1 --query perPage=1 --query enrich=False --query fullName=Satya Nadella
- `companyenrich.people.search`: olywork call companyenrich.people.search --data '{"pageSize":1,"page":1,"domains":["stripe.com"],"seniority":["c-suite"]}'
- `companyenrich.people.search.scroll`: olywork call companyenrich.people.search.scroll --data '{"pageSize":1,"domains":["stripe.com"],"positionQuery":["Chief Executive Officer"]}'
- `contactout.people.search`: olywork call contactout.people.search
- `contactout.people.decision-makers`: olywork call contactout.people.decision-makers
- `contactout.people.search.reveal`: olywork call contactout.people.search.reveal
- `contactout.people.decision-makers.reveal`: olywork call contactout.people.decision-makers.reveal
- `coresignal.people.search`: olywork call coresignal.people.search
- `crunchbase.people.search`: olywork call crunchbase.people.search
- `crustdata.people.search`: olywork call crustdata.people.search --data '{"filters":{"field":"basic_profile.name","type":"=","value":"Satya Nadella"},"limit":1}'
- `diffbot.people.search`: olywork call diffbot.people.search --query query=type:Person employments.employer.name:"Diffbot" --query size=1
- `dropleads.people.search`: olywork call dropleads.people.search --data '{"filters":{"companyDomains":["example.test"]},"pagination":{"page":1,"limit":1}}'
- `exa.people.search`: olywork call exa.people.search --data '{"query":"head of security at a fintech in berlin","category":"people","numResults":3}'
- `fiber-ai.people.search`: olywork call fiber-ai.people.search --data '{"currentCompanies":[{"domain":"stripe.com"}],"pageSize":1}'
- `findymail.search.domain`: olywork call findymail.search.domain --data '{"domain":"stripe.com","roles":["ceo"]}'
- `findymail.search.employees`: olywork call findymail.search.employees --data '{"website":"stripe.com","job_titles":["Head of Engineering"],"count":1}'
- `getleadsio.people.search`: olywork call getleadsio.people.search --data '{"filters":{"domains":["olywork-nonexistent-20260916.invalid"],"email_status":["VALID"]},"limit":1,"offset":0}'
- `harvestapi.linkedin.leads.search`: olywork call harvestapi.linkedin.leads.search --query currentCompanies=https://www.linkedin.com/company/google --query page=1
- `hunter.x.multi-domain-search`: olywork call hunter.x.multi-domain-search --query location=US --query department=executive --query limit=1
- `hunter.companies.emails`: olywork call hunter.companies.emails --query domain=stripe.com --query limit=1
- `icypeas.people.search`: olywork call icypeas.people.search --data '{"query":{"currentCompanyWebsite":{"include":["stripe.com"]},"currentJobTitle":{"include":["Engineer"]}},"pagination":{"size":1}}'
- `leadmagic.x.role-finder`: olywork call leadmagic.x.role-finder --data '{"job_title":"Head of Marketing","company_domain":"leadmagic.io"}'
- `leadmagic.x.employee-finder`: olywork call leadmagic.x.employee-finder --data '{"company_domain":"leadmagic.io","limit":1}'
- `leadmagic.people.search`: olywork call leadmagic.people.search --data '{"company_domain":"leadmagic.io","titles":["Head of Marketing"],"limit":1,"include_contact_details":false}'
- `leadsforge.people.search`: olywork call leadsforge.people.search --data '{"companyDomains":{"include":["stripe.com"]},"leadSeniorities":{"include":["c_suite"]},"limit":2}'
- `limadata.people.search`: olywork call limadata.people.search --data '{"filter_expression":"full_name=olywork-nonexistent-person","limit":1}'
- `lusha.people.search`: olywork call lusha.people.search --data '{"pagination":{"page":0,"size":10},"filters":{"contacts":{"include":{"jobTitles":["Head of Marketing"]}}}}'
- `moltsets.people.search`: olywork call moltsets.people.search --data '{"query":"olywork-nonexistent-person-20260916","limit":1}'
- `oceanio.people.search`: olywork call oceanio.people.search --data '{"size":2,"companiesFilters":{"includeDomains":["stripe.com"]},"peopleFilters":{"seniorities":["C-Level"]}}'
- `pdl.x.person-search-post`: olywork call pdl.x.person-search-post --data '{"sql":"SELECT * FROM person WHERE location_country='united states'","size":1}'
- `pdl.people.search`: olywork call pdl.people.search --query sql=SELECT * FROM person WHERE location_country='united states' --query size=1
- `prospeo.people.search`: olywork call prospeo.people.search --data '{"page":1,"filters":{"company":{"websites":{"include":["intercom.com"]}},"person_job_title":{"include":["CEO"],"match_mode":"CONTAINS"}}}'
- `quickenrich.people.search.domain`: olywork call quickenrich.people.search.domain --query company_url=stripe.com --query title=CEO
- `quickenrich.people.search`: olywork call quickenrich.people.search --data '{"company_url":{"include":["stripe.com"],"exclude":[]},"has_email":true,"per_page":1}'
- `sumble.people`: olywork call sumble.people
- `wiza.people.search`: olywork call wiza.people.search --data '{"filters":{"job_title":[{"v":"Founder","s":"i"}]},"size":1}'
- `wiza.prospect-lists.create`: olywork call wiza.prospect-lists.create
- `wiza.prospect-lists.continue`: olywork call wiza.prospect-lists.continue
- `harvestapi.linkedin.profile.search`: olywork call harvestapi.linkedin.profile.search --query search=Bill Gates --query page=1
- `justoneapi.x.linkedin-search-user-v1`: olywork call justoneapi.x.linkedin-search-user-v1 --query firstName=Bill --query lastName=Gates --query title=Senior Technical Recruiter --query page=1

## What people actually struggle with

The complaints here are less about accuracy than about access: the search that does not exist, the bill that scales with rows, and the seat licence. From ~180 Reddit and X posts in August 2026, vendor rings excluded.

**The primitive people actually want**

> "I need an open search option where I can find people across companies by job title (e.g., 'CTO' or 'Product Manager') and other filters." (Reddit: https://www.reddit.com/r/u_Icy_Data8505/comments/1n85jhw/people_search_tool_similar_to_clays_people_finder/)

What this page can do about it: That is this job. The comparison below marks which providers support unbounded search by title and location, and which can only list people at a company you already named.

**Seat pricing locks small teams out**

> "zoominfo has the best mobile numbers by far, but at like 15k/seat minimum they're pricing out anyone who isn't enterprise" (r/CRM: https://www.reddit.com/r/CRM/comments/1svj17o/zoominfo_vs_cognism_vs_apollo_which_one_and_why/)

What this page can do about it: There are no seats here and no minimum. Calls are metered per row or per call from a shared team balance that starts with $1.00 free, so a hundred-row test costs cents.

**Doing it yourself gets the account banned**

> "scraping twitter directly got my accounts banned pretty fast. linkedin is even worse, flags you almost immediately." (r/openclaw, 72 points: https://www.reddit.com/r/openclaw/comments/1sft22e/kept_getting_my_accounts_banned_trying_to_get/)

What this page can do about it: The providers here run their own infrastructure, so your accounts are not in the loop. That is an operational answer, not a legal one: check each provider's terms for your use, because olywork.com relays their answer and makes nothing lawful that was not.

**Coverage outside the US and outside tech is a guess**

> "I've heard of ZoomInfo, Apollo, LeadSquared, IndiaMART but no idea about quality for Indian market specifically." (r/b2bmarketing: https://www.reddit.com/r/b2bmarketing/comments/1r08jcy/need_recommendations_for_b2b_contact_data/)

What this page can do about it: No comparison table can answer this, and anyone claiming otherwise is guessing. Per-row pricing makes the real test cheap: run the same 100-row query of your actual market through three providers and keep the one that holds up.


## What actually differs

- Search and reveal are priced separately almost everywhere. Apollo's people search is free precisely because it returns no emails or phone numbers, Hunter's multi-domain search is free until you unlock an address, and Lusha's search returns masked previews. Budget for the reveal, not the search.
- Per-row billing is where the money goes. People Data Labs charges one credit for every record in the response, so a size=1000 call is a thousand credits; Icypeas charges 0.02 credits a row. Both are legitimate, but only one survives an agent that forgets to set a limit. Cap the result set in the prompt.
- The join key decides whether the results are right. LeadMagic and CompanyEnrich want a company domain; a bare company name is ambiguous and quietly returns people from the wrong company. Give the domain wherever you have it.

## What is a people search API?

It queries a provider's index of working professionals by attributes rather than by name: job title, seniority, department, company, headcount, industry, location. It answers “who are the people like this”, where an enrichment API answers “who is this person”. Most of these return the person without contact details, which you then resolve separately.

## Questions

**Do these return email addresses?** Usually not, and that is why the search is cheap or free. You get the person and then resolve the address with a separate call, which is a separate price.

**How do I stop a search costing more than I expect?** Set a limit. Providers that bill per row charge for every record they return, so a thousand-row response is a thousand charges. Ask the agent for a small result set first.

**Can I search across all companies, or only within one?** Both exist here, and they are different products. The comparison marks which providers support open search by title and location and which need a company first.

**What is the cheapest way to build a list?** Search on a free or per-row-cheap provider, filter down to the people you actually want, then spend on contact details only for those. The two-step flow is why search and reveal are priced separately.

HTML version: https://olywork.com/use-cases/people-search