Skip to main content
POST
/
v1
/
jobs
/
{jobId}
/
criteria-generations
Generate criteria
curl --request POST \
  --url https://embed.nova.dweet.com/v1/jobs/{jobId}/criteria-generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Tenant-Id: <x-tenant-id>' \
  --data '
{
  "jobContext": {
    "jobId": "<string>",
    "jobTitle": "<string>",
    "companyName": "<string>",
    "jobDescription": "<string>",
    "additionalInfo": "<string>",
    "applicationQuestions": [
      {}
    ],
    "language": "English"
  }
}
'
{
  "criteria": {
    "id": "<string>",
    "version": 123,
    "status": "ACTIVE",
    "criteria": [
      {
        "id": "<string>",
        "text": "<string>",
        "importance": "MUST_HAVE",
        "order": 123
      }
    ],
    "createdAt": "2023-11-07T05:31:56Z"
  }
}
Creates a new version: If this job already has active criteria, a new criteria version is created and becomes the active version. Historical scores retain the criteria version they were scored against.

When to Use

Generate criteria once per job posting, typically when the job is finalized. This endpoint:
  • Analyzes the job description to identify key requirements
  • Creates structured screening criteria with importance levels
  • Stores the criteria server-side for automatic use during scoring

With or Without Questions

Recommended for best results. Requires a prior call to Generate Clarification Questions.Clarification answers help calibrate:
  • Which skills are MUST_HAVE vs NICE_TO_HAVE
  • The target seniority level
  • Any context not captured in the job description

Answer requirements

If you include answers, also include questionSetId and answer every question in the question set.

Example request

{
  "jobContext": {
    "jobId": "job-123",
    "jobTitle": "Senior Software Engineer",
    "companyName": "Acme Corp",
    "jobDescription": "..."
  },
  "questionSetId": "question_set_id",
  "answers": [
    { "id": "q1", "value": "Senior (5+ years)" },
    { "id": "q2", "value": ["Go", "Kubernetes"] }
  ]
}

Example response

{
  "criteria": {
    "id": "criteria_version_id",
    "version": 2,
    "status": "ACTIVE",
    "criteria": [
      {
        "id": "criterion_id",
        "text": "Strong proficiency in Go for backend development",
        "importance": "MUST_HAVE",
        "order": 0
      }
    ],
    "createdAt": "2025-12-14T10:30:45Z"
  }
}

Latency

10-20 seconds (synchronous) The AI analyzes the job context to generate contextually relevant criteria. This is a one-time operation per job posting.

Next Step

After generating criteria, you’re ready to Score Candidates. Nova loads the job’s active criteria automatically.

Authorizations

Authorization
string
header
required

Use Authorization: Bearer sk_test_* or Authorization: Bearer sk_live_*.

Headers

X-Tenant-Id
string
required

Your customer identifier. Tenants are auto-provisioned on first request.

Path Parameters

jobId
string
required

Your job identifier (external ID).

Body

application/json
jobContext
object
required
questionSetId
string
answers
object[]

Response

Created

criteria
object
required