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

# Job Change → Contacts

> Find people who recently joined a new company or were promoted, in a 60-365 day window. One filter of the Seamless.AI Contact Search API.

> [!NOTE]
>
> `POST /search/contacts` · Credits charged per results returned · v1, v2 · Part of the [Contact Search API](/api-catalog/contact-search)

## Introduction

Find people who recently joined a new company or were promoted, in a 60-365 day window. New leaders buy. Combine it with any other filter in the same request (AND logic). To check whether specific contacts you already know have moved, use the [Job Change API](/api-catalog/job-changes).

## AI agent prompt

```text theme={null}
Read https://docs.seamless.ai/api-catalog/contact-filters/job-changes. Using SEAMLESS_API_KEY, call POST https://api.seamless.ai/api/client/v1/search/contacts with the `jobChanges` filter to find contacts matching: <your target>. Page with nextToken and keep each searchResultId.
```

## Example

```bash cURL theme={null}
curl -X POST https://api.seamless.ai/api/client/v1/search/contacts \
  -H "Token: $SEAMLESS_API_KEY" -H "Content-Type: application/json" \
  -d '{"jobChanges": {"changeType": "New Hire", "dayRange": "Last 90 Days"}, "limit": 25}'
```

```python Python theme={null}
import os, requests
rows = requests.post("https://api.seamless.ai/api/client/v1/search/contacts",
    headers={"Token": os.environ["SEAMLESS_API_KEY"]},
    json={"jobChanges": {"changeType": "New Hire", "dayRange": "Last 90 Days"}, "limit": 25}).json()["data"]
```

## Reference

| Parameter | Type | Required | Description |
| - | - | - | - |
| `jobChanges` | object | Yes | Filter contacts by job change activity. |
| `jobChanges.changeType` | string | Yes | `New Hire` = contacts who joined a new company. `New Promotion` = contacts who received a new title at the same company. `New Hire or New Promotion` = either. |
| `jobChanges.dayRange` | string | No | Rolling lookback window for the job change. One of `Last 60 Days`, `Last 90 Days`, `Last 180 Days`, `Last 365 Days`. |
| `limit` | integer | No | Results per page, up to 500. Default `50`. |
| `nextToken` | string | No | Cursor from `supplementalData.nextToken` to fetch the next page. |

## Response

Rows are contact previews with `searchResultId`, name, title, seniority, company, location, and LinkedIn URL, but no emails or phones. Each row also carries `jobChangeAlert`, `formerCompany`, and `formerTitle`. Send `searchResultId` to [Contact Research](/api-catalog/contact-enrichment) for contact details. Fields: [Contact Search](/api-catalog/contact-search).

Auth: `Token` header ([API keys](/authentication/api-keys)) · Errors: [status codes](/api-http-status-codes) · Billing: [rate limits and credits](/rate-limits-and-credits)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.