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

# Contact Prospect

> Queue an asynchronous contact-prospect job that finds people in NAICS industries matching desired job titles

<div style={{ display: 'none' }} aria-hidden="false">
  ## Quick Answer

  **How do I find contacts in an industry by job title?** Use Contact Prospect with NAICS codes and job titles. Minerva queues an asynchronous job and returns a `job_id` you poll until completion, then unlock to retrieve billed results.

  **Common questions this endpoint answers:**

  * How do I prospect contacts in specific NAICS industries?
  * How do I find title matches without providing a company list?
  * How do I safely retry a contact-prospect request?

  **What you need:** One or more NAICS codes (2–6 digits) and one or more job titles with at least one meaningful alphanumeric token.

  **What you get back:** HTTP `202` with a `job_id`, `job_type`, `status`, and `created_at`. Poll [Contact Job Status](/api-reference/person-search-contact-job), then unlock via [Contact Job Results](/api-reference/person-search-contact-job-results).
</div>

## Overview

Contact Prospect finds people whose current job falls under the NAICS industries you specify and whose titles approximately match the titles you request.

NAICS codes are **prefix-matched** against stored 6-digit codes. For example, `"51"` matches information industries under that prefix. Note that a substantial share of current jobs have no NAICS code and are invisible to this filter.

The endpoint is **asynchronous** — same lifecycle as [Contact Append](/api-reference/person-search-contact-append):

1. Submit → `202` + `job_id`
2. Poll status until `completed`
3. Unlock results (billing) with `POST .../results`
4. Page with `GET .../results`

Billing happens on unlock, not on submit. See [Contact Job Results](/api-reference/person-search-contact-job-results#billing).

<RequestExample>
  ```bash Request Example theme={null}
  curl --request POST \
    --url 'https://api.minerva.io/person-search/v0/contact-prospect' \
    --header 'x-api-key: <api-key>' \
    --header 'Content-Type: application/json' \
    --header 'Idempotency-Key: prospect-5112-cfo-2026-07-21' \
    --data '{
      "naics_codes": ["5112", "518"],
      "job_titles": ["Chief Financial Officer", "VP Finance"],
      "size": 100
    }'
  ```
</RequestExample>

## Request

### Headers

<ParamField header="x-api-key" type="string" required>
  Your API key for authentication.
</ParamField>

<ParamField header="Idempotency-Key" type="string">
  Optional client-supplied key (max 200 characters). Reusing the same key with the same org and an identical request returns the existing job. Reusing it with a different request body returns `409 Conflict`.
</ParamField>

### Body

<ParamField body="naics_codes" type="string[]" required>
  NAICS industry codes (1–10 entries). Each code must be 2–6 ASCII digits. Codes are prefix-matched against stored 6-digit NAICS values.
</ParamField>

<ParamField body="job_titles" type="string[]" required>
  Desired job titles (1–25). Titles are pre-filtered in SQL, then matched approximately. At least one title must contain a non-stopword alphanumeric token.
</ParamField>

<ParamField body="size" type="integer">
  Maximum contacts to return. Defaults to `100`. Range: `1`–`500`.
</ParamField>

## Response

### Success Response (`202 Accepted`)

<ResponseField name="job_id" type="string">
  UUID of the queued job. Use it with [Contact Job Status](/api-reference/person-search-contact-job) and [Contact Job Results](/api-reference/person-search-contact-job-results).
</ResponseField>

<ResponseField name="job_type" type="string">
  Always `contact_prospect` for this endpoint.
</ResponseField>

<ResponseField name="status" type="string">
  Initial status, typically `queued`.
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO-8601 timestamp when the job was created.
</ResponseField>

```json Response Example theme={null}
{
  "job_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "job_type": "contact_prospect",
  "status": "queued",
  "created_at": "2026-07-21T13:54:00.123456+00:00"
}
```

## Errors

| Status | When                                                              |
| ------ | ----------------------------------------------------------------- |
| `400`  | Invalid NAICS codes, empty/invalid titles, or out-of-range `size` |
| `409`  | `Idempotency-Key` reused with a different request body            |
| `503`  | Job could not be queued for processing                            |

## Related

* [Contact Append](/api-reference/person-search-contact-append) — company-targeted ABM append
* [Contact Job Status](/api-reference/person-search-contact-job) — poll job progress
* [Contact Job Results](/api-reference/person-search-contact-job-results) — unlock and page results
