Nova versions criteria automatically. Every change to a job’s criteria creates a new version, and scoring jobs reference the version they used.
What is versioned
These operations create a new criteria version:
POST /v1/jobs/{jobId}/criteria-generations
POST /v1/jobs/{jobId}/criteria/items
PATCH /v1/jobs/{jobId}/criteria/items/{criterionId}
DELETE /v1/jobs/{jobId}/criteria/items/{criterionId}
DELETE /v1/jobs/{jobId}/criteria (archives the active version)
What you get back
Criteria responses include:
criteria.id: The criteria version ID
criteria.version: A monotonically increasing version number per job
criteria.status: ACTIVE or ARCHIVED
{
"criteria": {
"id": "criteria_version_id",
"version": 2,
"status": "ACTIVE",
"criteria": [],
"createdAt": "2025-12-14T10:30:45Z"
}
}
Criterion IDs are version-scoped. When a new criteria version is created, all criteria items receive new criterionId values. Fetch the latest criteria before editing or removing a criterion.
How this affects scoring
When you submit a scoring request, Nova uses:
- The job’s active criteria version by default
- When you re-score (
rescore: true), you can pin scoring to a specific version using criteriaVersionId
To re-score an application after updating criteria, set rescore: true. You can optionally set criteriaVersionId to force a specific version.
Auditability
This approach ensures:
- Old scores remain tied to the criteria version used at the time
- Criteria changes do not retroactively change historical results