Skip to main content
POST
/
v1
/
jobs
/
{jobId}
/
criteria
Add a criterion
curl --request POST \
  --url https://embed.nova.dweet.com/v1/jobs/{jobId}/criteria \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Tenant-Id: <x-tenant-id>' \
  --data '
{
  "text": "<string>",
  "importance": "MUST_HAVE"
}
'
{
  "jobId": "<string>",
  "criteria": [
    {
      "id": "<string>",
      "text": "<string>",
      "importance": "MUST_HAVE"
    }
  ],
  "status": "active",
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z"
}
Existing scores are not affected. A new criteria version is created when you add a criterion. Only future score requests will use the updated criteria.

When to Use

Add a criterion when you discover a new requirement after initial criteria generation:

Discovered Requirement

Your team identified an important qualification that wasn’t in the original job description

Process Change

Your hiring process evolved and now requires evaluating an additional skill

Common Scenarios

ScenarioExample Criterion
Team feedback after interviews”Experience mentoring junior engineers”
New project requirements”Familiarity with GraphQL APIs”
Compliance update”Security clearance eligibility”
From libraryCopy a reusable criterion from your Criteria Library

Adding from Library

To add a criterion from the library to a job, first list your library criteria, then add the selected criterion to the job:
// 1. Get library criteria
const { criteria: libraryCriteria } = await fetch(
  'https://embed.nova.dweet.com/v1/criteria/library',
  { headers: { 'Authorization': `Bearer ${apiKey}`, 'X-Tenant-Id': tenantId } }
).then(r => r.json());

// 2. User selects a criterion from the library UI
const selected = libraryCriteria[0];

// 3. Add it to the job (creates a copy)
await fetch(`https://embed.nova.dweet.com/v1/jobs/${jobId}/criteria`, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'X-Tenant-Id': tenantId,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    text: selected.text,
    importance: selected.importance,
  }),
});
Adding from the library creates an independent copy. Editing the job criterion won’t affect the library, and vice versa.

Response

The response includes the full criteria list after the addition, making it easy to update your UI without a separate GET request.

Authorizations

Authorization
string
header
required

API key authentication. Use your environment-specific API key (sk_test_* for sandbox, sk_live_* for production).

Headers

X-Tenant-Id
string
required

Your customer/tenant identifier. Used for data isolation and per-customer metrics. Tenants are created automatically on first request.

Path Parameters

jobId
string
required

Your job ID

Body

application/json
text
string
required

Concise eligibility criterion (8-16 words)

importance
enum<string>
required

How critical this criterion is for the role

Available options:
MUST_HAVE,
PREFERRED,
NICE_TO_HAVE

Response

Criterion added successfully

jobId
string
required

Your job ID

criteria
object[]
required

The screening criteria for this job

status
enum<string>
required

Criteria status. Archived criteria cannot be used for new scoring requests.

Available options:
active,
archived
createdAt
string<date-time>
required

When the criteria were originally created

updatedAt
string<date-time>
required

When the criteria were last modified