# Decision makers

The right person at every company you target, by title, seniority, department and country.

You name the company. mySDR returns the people who hold the role you sell to. The person did not do anything: they work at a company you chose. For people who just did something, use [Signals](/docs/signals).

## People at your companies: Search People with companies

Say: "Find the CFO of Acme Analytics in Belgium."

**MCP** — `search_people`, on every connection. **REST** — [`POST /person/search`](/docs/api-reference/search-people), with every key.

```json
{
  "companies": [{ "domain": "acme-analytics.example" }],
  "current_job_titles": ["CFO", "Head of Finance"],
  "locations": ["Belgium"],
  "limit": 5
}
```

Name up to 25 companies in `companies`, each by its `domain`, its LinkedIn company page (`linkedin_url`) or a `cmp_…` from a signal row (`id`), and say who you want there with the filters of Search People: `current_job_titles`, `seniority_levels`, `functions`, `locations` and more. With `companies`, `current_job_titles` and `functions` filter. A company where nobody holds that role returns `status` `no_match` and `suggested_roles`, other titles to try in a next call, at no extra cost. Each lead carries `company_index`, its place in `companies`, and `companies` in the response says per company what was found. A company that cannot be matched costs nothing.

A company you send by its `domain` is looked up first. If the source cannot reach one company (the lookup or the people search fails or times out), that company is retried on its own. The call still returns the people from the companies it could reach. `companies[].status` `upstream_unavailable`, and `failed_companies` with `error.code` `upstream_unavailable`, name the ones to retry later. Nothing is charged for those. The call is `503` `service_unavailable` with `Retry-After` only when every company fails, or when a search without `companies` fails upstream.

A company the source did search, where nobody holds the role you asked for, has `companies[].status` `no_match`. `suggested_roles` lists other titles to try (HR, sales, marketing, engineering, finance, operations, and CEO or Founder when the company is small or its size is not already known). That hint is free, and a company with no match costs nothing.

## The top people of each company: per_company

Say: "The CFO of each of these ten companies."

```json
{
  "companies": [{ "domain": "acme-analytics.example" }, { "linkedin_url": "https://www.linkedin.com/company/example-labs" }],
  "functions": ["finance"],
  "seniority_levels": ["cxo", "vice_president"],
  "per_company": 1
}
```

Without `per_company` one call reads one page across all the companies, so a big company can fill it. With `per_company` the call searches in rounds, at most 4, and a company that has its people drops out of the next round, so a big company does not crowd out the others. It returns up to 100 people in one call, without a next page; a company the call did not get to says so in `companies[].message`.

Send all the companies of one request in one call, not one call per company. Each call that finds someone costs at least **3 credits**, and each call that finds nobody counts toward the daily limit on empty searches. Ten companies with one CFO each are ten calls at the minimum, or one call that pays per lead.

## What it costs

You pay **1 credit** per lead that comes back, and at least **3 credits** for a search that finds someone: ask for the number of people you want in one call. `limit` (10 unless you say otherwise, at most 25, with `per_company` up to 100) caps what the call returns, and `max_credits` what it costs. For more, send `next_cursor` back. People at a company on your exclusions are left out and not charged (`left_out.excluded`).

The same search also works without companies: people by title, seniority, department, company size and place, anywhere. Without `companies`, titles rank the results and do not exclude, so a person with a different title can still appear. `total_results` says how many match.

A search that finds nobody is free, but such searches are limited: 20 a day for your organization, plus one for every 20 leads or companies your searches delivered that day (Search People and Search Companies count together). After that, a new search answers **429** `empty_search_limit_reached` until midnight in Brussels. Start broad and narrow down from the results.

## Build a list of companies

Before the people, you may need the companies.

- **By name, free:** `lookup_company` ([`GET /companies/lookup`](/docs/api-reference/lookup-company)) returns the LinkedIn pages whose name matches, so you can pick the right one between namesakes.
- **By name, industry, size, place or recent activity:** `search_companies` ([Search Companies](/docs/api-reference/search-companies), `POST /company/search`). Filter on LinkedIn industry, company size, country or city, funding raised in the last 12 months, new senior leaders in the last 3 months and hiring on LinkedIn. **1 credit** per company returned; a search by filters that returns a company costs at least **5 credits**, so ask for the number of companies you want in one call.
- **Like a company you know:** the same search with `similar_to`, a LinkedIn company page or a domain. We read its industry, size and country and find companies with the same industry, a similar size and the same country; a filter you add replaces what we read. The company itself never comes back, and reading it is free.
- **By technology:** `find_companies_using_technology` ([`POST /technologies/companies`](/docs/api-reference/find-companies-using-technology)), with every key: the companies whose job posts mention a technology, with the evidence per company, **3 credits** per company. Find the slug of a technology for free with `find_technologies` ([`GET /technologies`](/docs/api-reference/find-technologies)).

The technology search is data about who uses a tool today. The [Technology signal](/docs/api-reference/signals/technology) runs the same data as a signal search, for companies that just adopted it.

## Then

- Enrich only the people you keep: [People enrichment](/docs/enrichment/people).
- Save them to the Leads table with a note: `save_leads` or `POST /tables/leads`.
