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

# Criteria Management

> Generate, view, update, and manage screening criteria for jobs

Criteria define how Nova scores an application against a job. Nova stores them server-side and pulls them in automatically when scoring.

## Criteria Lifecycle

Create criteria via **AI generation** from a job description, or **manual creation** one at a time.

```mermaid theme={null}
flowchart LR
    subgraph setup["AI Generation"]
        Q[Optional: Get Questions] --> A[Collect Answers]
        A --> G[Generate Criteria]
    end

    subgraph manual["Manual Creation"]
        M[Add Criterion]
    end

    subgraph library["Criteria Library"]
        LIB[("Tenant Library")]
    end

    subgraph manage["Management"]
        G --> STORED[Stored by Nova]
        M --> STORED
        LIB -->|add from library| STORED
        STORED --> VIEW[View Criteria]
        STORED --> ADD[Add More]
        STORED --> EDIT[Edit Criterion]
        STORED --> REMOVE[Remove Criterion]
        STORED --> ARCHIVE[Archive Criteria]
        ADD --> STORED
        EDIT --> STORED
        REMOVE --> STORED
    end

    subgraph scoring["Scoring"]
        STORED --> SCORE[Score Application]
        SCORE --> RESULT[Webhook with Score]
    end
```

## Versioning

<Note>
  Calling [Generate Criteria](/embed-api/endpoints/criteria/generate) for a job that already has criteria **replaces** the existing set. Historical scores keep the criteria version they were scored against.
</Note>

<Note>
  **Criterion IDs are stable.** Mutations create a new version, but each criterion keeps its original `id`.
</Note>

## Importance Levels

| Level          | Impact on Scoring              | Example                     |
| -------------- | ------------------------------ | --------------------------- |
| `MUST_HAVE`    | Disqualifier if unmet          | "Valid work authorization"  |
| `PREFERRED`    | Significant concern if missing | "5+ years experience"       |
| `NICE_TO_HAVE` | Minor concern only             | "Open source contributions" |

## Answer Validation

| Check                                            | Error Code               |
| ------------------------------------------------ | ------------------------ |
| `questionSetId` required when `answers` provided | `VALIDATION_ERROR`       |
| Valid, existing question set                     | `QUESTION_SET_NOT_FOUND` |
| Answer IDs match questions in the set            | `ANSWER_MISMATCH`        |
| Answer types match question types                | `ANSWER_MISMATCH`        |

<Note>
  If you include `answers`, answer every question in the set.
</Note>

## Available Operations

<CardGroup cols={2}>
  <Card title="Generate Criteria" icon="wand-magic-sparkles" href="/embed-api/endpoints/criteria/generate">
    Create screening criteria from a job description
  </Card>

  <Card title="Get Criteria" icon="eye" href="/embed-api/endpoints/criteria/get">
    Retrieve stored criteria for a job
  </Card>

  <Card title="Get Current Version" icon="clock-rotate-left" href="/embed-api/endpoints/criteria/current-version">
    Retrieve active criteria with version metadata
  </Card>

  <Card title="List Versions" icon="layer-group" href="/embed-api/endpoints/criteria/versions">
    List historical criteria versions for a job
  </Card>

  <Card title="Get Version by ID" icon="bookmark" href="/embed-api/endpoints/criteria/version">
    Retrieve a specific historical criteria version
  </Card>

  <Card title="Get Batch Criteria" icon="layer-group" href="/embed-api/endpoints/criteria/batch">
    Retrieve criteria for multiple jobs in one request
  </Card>

  <Card title="Set Criteria" icon="arrows-rotate" href="/embed-api/endpoints/criteria/set">
    Replace the entire criteria set for a job
  </Card>

  <Card title="Add Criterion" icon="plus" href="/embed-api/endpoints/criteria/add">
    Add a single criterion to the job's criteria
  </Card>

  <Card title="Edit Criterion" icon="pen-to-square" href="/embed-api/endpoints/criteria/edit">
    Update text or importance of a criterion
  </Card>

  <Card title="Remove Criterion" icon="minus" href="/embed-api/endpoints/criteria/remove">
    Remove a single criterion from the job
  </Card>

  <Card title="Archive Criteria" icon="box-archive" href="/embed-api/endpoints/criteria/archive">
    Archive criteria when a job closes
  </Card>
</CardGroup>

## Criteria Library

Save common requirements once and reuse them across jobs.

<Card title="Criteria Library" icon="book" href="/embed-api/concepts/criteria-library">
  Store and reuse criteria across jobs
</Card>

## Next Step

Once you have criteria, you're ready to [Score Applications](/embed-api/endpoints/score).
