# Candidate Interview API — States

> This document describes the states used by the Candidate Interview feature.


The `code` field in the status object is a string identifier. The `descriptionCode` field optionally qualifies the status.

## States

| State (`code`) | Description | Terminal |
|  --- | --- | --- |
| `Contacting` | The system is reaching out to the candidate to initiate the interview | No |
| `Contacted` | The candidate has been successfully contacted | No |
| `Started` | The candidate has started the interview conversation | No |
| `CommunicationProviderError` | A transient error occurred with the communication provider | No |
| `Stalled` | The auto-advance option is disabled, or an error occurred while moving the candidate to the next stage | No |
| `FailedDueToScore` | The interview finished but the candidate did not meet the minimum score threshold | No |
| `FailedDueToExclusiveQuestion` | The interview finished but the candidate answered a knockout question unfavorably | No |
| `Approved` | The interview results were evaluated and the candidate was approved | Yes |
| `Forwarded` | The same feature instance was re-dispatched to repeat the process | Yes |
| `ClosedManually` | The recruiter manually removed the candidate from this feature | Yes |
| `ClosedAutomatically` | The feature was closed automatically as part of orchestration | Yes |
| `Cancelled` | The process was cancelled | Yes |
| `DiscardedByRecruiter` | Manually discarded by a recruiter | Yes |
| `DiscardedDueToScore` | Discarded because the candidate did not meet the score threshold | Yes |
| `DiscardedDueToExclusiveQuestion` | Discarded because the candidate answered a knockout question unfavorably | Yes |
| `DiscardedDueToInactivity` | Discarded because the candidate was inactive for too long | Yes |
| `DiscardedDueToLackOfInterest` | Discarded because the candidate showed no interest | Yes |
| `DiscardedDueToCandidateOptedOut` | Discarded because the candidate opted out of communications | Yes |
| `DiscardedDueToCommunicationProviderError` | Discarded after a communication provider error could not be recovered | Yes |


`FailedDueToScore` and `FailedDueToExclusiveQuestion` are intermediate results of the interview evaluation — they are not terminal on their own but transition to `DiscardedDueToScore` / `DiscardedDueToExclusiveQuestion` once the discard is processed.

## Description Codes

| Code | Name | Description |
|  --- | --- | --- |
| `CIV20001` | `DiscardedDueToCommunicationProviderError` | Communication provider error led to discard |
| `CIV20002` | `DiscardedDueToLackOfInterest` | Candidate showed no interest |
| `CIV20003` | `DiscardedDueToCandidateOptedOut` | Candidate opted out of communications |
| `CIV20004` | `DiscardedByRecruiter` | Manually discarded by a recruiter |
| `CIV20005` | `DiscardedDueToInactivity` | Candidate was inactive for too long |
| `CIV20006` | `DiscardedDueToScore` | Candidate did not meet the score threshold |
| `CIV20007` | `DiscardedDueToExclusiveQuestion` | Candidate answered a knockout question unfavorably |
| `CIV20008` | `AlternativeContactSent` | An alternative contact method was used (informational, non-terminal) |
| `CIV20009` | `DiscardedDueToCandidateWithdrawal` | Candidate withdrew from the process |