> ## Documentation Index
> Fetch the complete documentation index at: https://developer.moltsets.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Find Companies and Contacts

> Use MoltSets search to build prospect lists, look up companies by domain, and find contacts matching an ICP — via the MCP or the API.

MoltSets has two search endpoints: one for companies and one for contacts. Both accept the same core filters and return ranked results. Use them when you want to find records matching a profile rather than enrich a specific person or company you already know.

If you already have a LinkedIn URL, email, or IP address and want to enrich it, see [I Have X, I Want Y](/use-cases/i-have-x-i-want-y).

<Warning>
  Search results are capped at **25 per call** (`limit` max 25, default 10). **Free-plan accounts are capped at 5 per call** (`limit` max 5) and get 100 search results total, lifetime. Use `limit` and `offset` together to paginate through larger result sets. See [Pagination](#pagination) below for examples.

  Neither endpoint supports city/region or founding-year filters. `employee_range` and `revenue_range` apply to **`search_companies` only** — `search_people` cannot filter by company size or revenue. Industry and range filters use fixed enumerations — see the API reference for accepted values.
</Warning>

## Available Filters

The two endpoints take **different** filter sets. `industry`, `limit`, and `offset` are shared; the rest are endpoint-specific.

### `search_companies`

| Filter           | What it does                         | Notes                                                                                                                |
| ---------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------- |
| `query`          | Free-text search across company name | Do not use for domain, industry, or size — use the dedicated filters for those                                       |
| `domain`         | Exact company domain match           | Omit the protocol — use `acme.com` not `https://acme.com`. Prefer this over `query` when you have a known domain     |
| `industry`       | Filter by industry                   | Fixed enumeration — see [Search Company Profiles](/api-reference/search/search-company-profiles) for accepted values |
| `employee_range` | Filter by headcount band             | Fixed enumeration — see [Search Company Profiles](/api-reference/search/search-company-profiles) for accepted values |
| `revenue_range`  | Filter by annual revenue band        | Fixed enumeration — see [Search Company Profiles](/api-reference/search/search-company-profiles) for accepted values |
| `limit`          | Number of results to return          | Max 25 per call, default 10 (Free plan: max 5)                                                                       |
| `offset`         | Number of results to skip            | Use with `limit` to paginate                                                                                         |

### `search_people`

| Filter                           | What it does                                               | Notes                                                                                                                  |
| -------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `query`                          | Free-text search across name, company, title, and headline | Put names and role keywords here                                                                                       |
| `company`                        | Free-text company name match                               | Company name only — not domain, industry, or size                                                                      |
| `company_domain`                 | Exact company domain match                                 | Omit the protocol — use `acme.com`. Prefer this over `company` when you have a known domain                            |
| `country`                        | Exact country name filter                                  | Most reliable filter (\~99% filled). Must match the stored value                                                       |
| `seniority`                      | Exact seniority level                                      | Fixed enumeration — see [Search Business Profiles](/api-reference/search/search-business-profiles) for accepted values |
| `industry`                       | Filter by industry                                         | Fixed enumeration — see the API reference for accepted values                                                          |
| `department` / `functional_area` | Team or function filter                                    | Fixed enumerations — see the API reference for accepted values                                                         |
| `limit`                          | Number of results to return                                | Max 25 per call, default 10 (Free plan: max 5)                                                                         |
| `offset`                         | Number of results to skip                                  | Use with `limit` to paginate                                                                                           |

Combine `query` with filters for best precision. Results are ranked by relevance — higher `_score` means a stronger match.

## Finding Companies

Use `search_companies` when your output is a list of companies. Returns name, domain, industry, employee count, revenue range, LinkedIn URL, and follower count.

| I want…                             | Type in Claude…                                                                                          | Filters used                                  |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
| A specific company by domain        | Find the company record for acme.com                                                                     | `domain`                                      |
| Companies matching a name           | Find company profiles matching Acme                                                                      | `query`                                       |
| Companies in a specific industry    | Find information technology companies                                                                    | `industry`                                    |
| Companies by industry and headcount | Find information technology companies with 51–200 employees                                              | `industry`, `employee_range`                  |
| Companies by industry and revenue   | Find computer software companies with revenue above \$50M                                                | `industry`, `revenue_range`                   |
| Companies matching an ICP           | Find privately held computer software companies with 201–500 employees and revenue between $10M and $50M | `industry`, `employee_range`, `revenue_range` |

## Finding Contacts

Use `search_people` when your output is a list of people. Returns name, title, seniority, LinkedIn URL, business email, company name, and firmographic data.

| I want…                             | Type in Claude…                                                                           | Filters used                                     |
| ----------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------ |
| All contacts at a specific company  | Find contacts at acme.com                                                                 | `company_domain`                                 |
| Contacts at a named company         | Find contacts at Acme                                                                     | `company`                                        |
| Contacts in a specific industry     | Find contacts at information technology companies                                         | `industry`                                       |
| Decision-makers at a company        | Find senior contacts at acme.com                                                          | `company_domain`, `seniority`                    |
| Contacts in a specific team         | Find engineering contacts at acme.com                                                     | `company_domain`, `department`                   |
| Contacts in an industry and country | Find marketing contacts at software companies in the United States                        | `industry`, `country`                            |
| Contacts matching an ICP            | Find senior engineering contacts at information technology companies in the United States | `industry`, `seniority`, `department`, `country` |

<Note>
  To target contacts by **company size or revenue**, filter companies first with `search_companies` (`employee_range` / `revenue_range`), then run `search_people` on each returned domain — `search_people` has no size or revenue filter of its own.
</Note>

## Pagination

Each call returns a maximum of 25 results (5 on the Free plan). To pull more, increment `offset` by 25 on each subsequent call (5 on the Free plan). Free-plan accounts have a lifetime cap of 100 search results total, so pagination is only useful up to that ceiling.

The total number of matching records is returned in the `total` field on every response — use this to determine how many pages exist before you start paginating.

## Using with MCP

Once MoltSets is connected to Claude, describe what you want and Claude will call the right search endpoint with the right filters.

**Exact company lookup**

```
Look up the company record for acme.com
```

**ICP company list**

```
Find computer software companies with 51–200 employees and revenue between $10M and $50M
```

**ICP contact list**

```
Find senior contacts at information technology companies in the United States
```

**Paginated pull**

```
Find senior contacts at information technology companies in the United States. Get the first 25, then keep fetching the next page until you have 100 results.
```

**Paginated offset/skip**

```
Find senior contacts at information technology companies in the United States. Offset by 50 then keep fetching the next page until you have 100 additional results.
```

## Using with the API

All search requests follow the same shape. Pass your filters in the request body and increment `offset` to paginate.

**Find companies matching an ICP**

```javascript theme={null}
const response = await fetch("https://api.moltsets.com/api/v1/tools/search_companies", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    industry: "Computer Software",
    employee_range: "51-200",
    revenue_range: "$10M - $20M",
    limit: 25,
    offset: 0
  })
});

const data = await response.json();
// data.results.results — array of matching companies
// data.results.total — total matching records across all pages
```

**Find contacts at a specific company**

```javascript theme={null}
const response = await fetch("https://api.moltsets.com/api/v1/tools/search_people", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    company_domain: "acme.com",
    limit: 25,
    offset: 0
  })
});

const data = await response.json();
// data.results.results — array of matching contacts
// data.results.total — total matching records across all pages
```

**Paginating through results**

```javascript theme={null}
async function fetchAllResults(filters, endpoint) {
  const results = [];
  let offset = 0;
  const limit = 25;

  while (true) {
    const response = await fetch(`https://api.moltsets.com/api/v1/tools/${endpoint}`, {
      method: "POST",
      headers: {
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
      },
      body: JSON.stringify({ ...filters, limit, offset })
    });

    const data = await response.json();
    const page = data.results.results;

    results.push(...page);

    if (results.length >= data.results.total || page.length < limit) break;

    offset += limit;
  }

  return results;
}

// Example: fetch all contacts at acme.com
const contacts = await fetchAllResults({ domain: "acme.com" }, "search_people");
```
