Skip to main content

Create a job

POST 

/api/v1/jobs

Save a job once so future CV DeepMatch and CV DeepSearch runs can reference it instead of re-sending the full content.

Validation (strict, save-time)​

  • job_description is required and must be a non-empty string.
  • config is required and is strictly validated with the same position-config contract CV DeepMatch enforces at submit — it must carry requirements.workExperience and requirements.skills, and every inner field must pass the per-field rules (see the Position config reference). Per-field failures are itemised in error.details.fields.
  • config must not contain a top-level job_description key — send the JD as the top-level job_description field instead (rejected as config.job_description otherwise).
  • position_id, when provided, must match ^[A-Za-z0-9._-]{1,28}$.

position_id uniqueness​

position_id is unique per client among active jobs. Creating a second active job with the same position_id returns 409 POSITION_ID_CONFLICT. Archiving a job frees its position_id for reuse.

Name defaulting​

name is optional. When omitted it defaults from config.name (or its position_name alias), then position_id, then a generated label.

Request​

Responses​

The job was created.