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

# Set a candidate's ParaAI fast-track opt-in

<Info>
  **Required scopes:** `talent_network:write`<br />
  **Rate limit:** `write` tier, 60 requests per minute per key
</Info>

The ParaAI fast-track opt-in for one candidate — the same setting as the in-app "Fast-track this candidate" toggle, stored per candidate per owning recruiter. When a hiring manager shows interest in a ParaAI match for a fast-tracked candidate, Paraform emails the candidate directly with a link to review the role and self-submit; the owning recruiter is CC'd, notified, and keeps full ownership of the candidate. Without the opt-in only the recruiter is notified.

The opt-in is stored, not acted on: nothing happens when it is set. Every precondition is re-checked at the moment a hiring manager shows interest — the recruiter is enabled for fast-track, the candidate is not off market, a contact email is on file, and the recruiter-entered work preferences are complete. If any of those fails at that moment, the recruiter-only flow runs instead.

`candidateUserId` is the handle returned by the membership list, `lookup`, and batch items. Any candidate owned by an approved member of your agency is readable; another agency's id answers 404, indistinguishable from a nonexistent candidate. Both verbs answer 403 when fast-track is not enabled for the candidate's owning recruiter, and the write additionally requires the candidate to be owned by the recruiter who created the API key.

Sets the opt-in and echoes the persisted state, matching a subsequent GET. The write is accepted while the candidate is off market — the in-app setting persists the same way while its toggle is hidden — and `offMarket: true` in the response tells you it will not fire until they are back on market. Retries converge on the same state, so no `Idempotency-Key` is needed.

The write is bound to the recruiter who created the API key: only candidates owned by that recruiter can be set, and any other candidate in the agency answers 403 — agency owners included. To change another recruiter's candidates, use a key that recruiter created at /agency/api-keys. Reads are not restricted this way.

## Path parameters

<ParamField path="candidateUserId" type="string" required>
  Constraints: min length 1.
</ParamField>

## Body

<ParamField body="fastTrack" type="boolean" required />

## Response

<ResponseField name="candidateUserId" type="string" required />

<ResponseField name="fastTrack" type="boolean" required />

<ResponseField name="offMarket" type="boolean" required>
  True while the candidate is explicitly off market (toggled off by a recruiter, or pre-excluded). Fast-track never fires while true; the opt-in itself is still stored.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X PUT "https://external-api.paraform.com/api/external/v1/talent-network/candidates/$CANDIDATE_USER_ID/fast-track" \
    -H "Authorization: Bearer $PARAFORM_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
    "fastTrack": true
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "candidateUserId": "string",
    "fastTrack": true,
    "offMarket": true
  }
  ```
</ResponseExample>


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