Skip to main content
Every change to a job’s criteria creates a new version. Scoring jobs reference the version they used.

What creates a new version

  • POST /v1/jobs/{jobId}/criteria/generate
  • 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)

Response format

Criteria endpoints return a flat array of criterion items:
{
  "criteria": [
    {
      "id": "crit_a1b2c3d4e5f6",
      "text": "5+ years experience",
      "importance": "MUST_HAVE",
      "order": 0
    }
  ]
}
Version metadata is available through dedicated endpoints:
  • GET /v1/jobs/{jobId}/criteria/versions/current
  • GET /v1/jobs/{jobId}/criteria/versions
  • GET /v1/jobs/{jobId}/criteria/versions/{criteriaVersionId}
Criterion IDs are stable across versions. When you add, edit, or remove a criterion, a new version is created internally, but each criterion keeps its original id.

How this affects scoring

Scoring uses the job’s active criteria version by default. When re-scoring (rescore.enabled: true), you can pin a specific version with rescore.criteriaVersionId. Old scores stay tied to the criteria version used at the time. Criteria changes don’t retroactively alter historical results.