Skip to main content
POST
Create a job

Authorizations

Authorization
string
header
required

API key authentication for the public API. Pass your API key as a Bearer token.

Headers

Idempotency-Key
string

Unique key (e.g. a UUID v4) that makes this POST safe to retry: a repeated key replays the original response instead of creating a second resource.

Body

application/json

Request body for POST /jobs. salary_currency is an ISO 4217 code.

title
string
required
Required string length: 1 - 255
description
string
required
Minimum string length: 1
location
string
required
Required string length: 1 - 255
employment_type
enum<string>
required
  • full_time - Full Time
  • part_time - Part Time
  • contract - Contract
  • internship - Internship
  • freelance - Freelance
Available options:
full_time,
part_time,
contract,
internship,
freelance
external_id
string | null

The job's ID in the system that supplied it, in that system's own form. Unique per organization and source.

Maximum string length: 255
external_id_source
enum<string> | null
default:api

Where external_id comes from. Defaults to api, for your own ids. Set it to an ATS (e.g. talent360) when mirroring that ATS's jobs, so its applications reach this job.

  • api - Public API
  • kombo - Kombo
  • talent360 - Talent360
Available options:
api,
kombo,
talent360
language
enum<string>
default:de-DE

Language for conducting interviews and generating CV evaluations

  • en-US - English
  • de-DE - German
Available options:
en-US,
de-DE
is_multilingual
boolean

When enabled, the interview STARTS in language but the AI adapts to the candidate's spoken language. The call routes through a CallProfile flagged is_multilingual=True (must be configured at platform or org level). Analysis outputs (scoring, summary, insights) stay in language regardless of what the candidate spoke.

status
enum<string>
default:active
  • active - Active
  • paused - Paused
  • closed - Closed
  • draft - Draft
Available options:
active,
paused,
closed,
draft
is_public
boolean
cv_requirement
enum<string>

Controls whether candidates must upload a CV when applying

  • required - Required
  • optional - Optional
  • disabled - Disabled
Available options:
required,
optional,
disabled
salary_min
string<decimal> | null
Pattern: ^-?\d{0,10}(?:\.\d{0,2})?$
salary_max
string<decimal> | null

Must be greater than or equal to salary_min.

Pattern: ^-?\d{0,10}(?:\.\d{0,2})?$
salary_currency
string | null

ISO 4217 currency code (e.g. USD, EUR).

Minimum string length: 1
salary_frequency
enum<string> | null

Frequency of the salary range. Required when salary_min is set.

  • per_hour - Per Hour
  • per_day - Per Day
  • per_week - Per Week
  • per_month - Per Month
  • per_year - Per Year
Available options:
per_hour,
per_day,
per_week,
per_month,
per_year
additional_information
string | null

Additional information about job posting that is not shown to candidate but used for internal system

auto_setup_interview
boolean
default:false
write-only

When true, an interview config with generated criteria and questions is created for this job in the background. Leave false to configure the interview yourself with the interview-config endpoints. interview_config_id is null in this response either way; generation finishes shortly afterwards.

Response

Adds application_count. Load the job with an application_count annotation (Count("applications")) so no application rows are fetched.

id
string<uuid>
required
read-only
external_id
string | null
required
read-only

The job's ID in the system that supplied it, in that system's own form. Unique per organization and source.

external_id_source
enum<string> | null
required

Which system supplied external_id.

  • api - Public API
  • kombo - Kombo
  • talent360 - Talent360
Available options:
api,
kombo,
talent360
title
string
required
read-only
description
string
required
read-only
location
string
required
read-only
employment_type
enum<string>
required
  • full_time - Full Time
  • part_time - Part Time
  • contract - Contract
  • internship - Internship
  • freelance - Freelance
Available options:
full_time,
part_time,
contract,
internship,
freelance
status
enum<string>
required
  • active - Active
  • paused - Paused
  • closed - Closed
  • draft - Draft
Available options:
active,
paused,
closed,
draft
is_public
boolean
required
read-only
language
enum<string>
required

Language for conducting interviews and generating CV evaluations

  • en-US - English
  • de-DE - German
Available options:
en-US,
de-DE
is_multilingual
boolean
required
read-only

When enabled, the interview STARTS in language but the AI adapts to the candidate's spoken language. The call routes through a CallProfile flagged is_multilingual=True (must be configured at platform or org level). Analysis outputs (scoring, summary, insights) stay in language regardless of what the candidate spoke.

cv_requirement
enum<string>
required

Controls whether candidates must upload a CV when applying

  • required - Required
  • optional - Optional
  • disabled - Disabled
Available options:
required,
optional,
disabled
additional_information
string | null
required
read-only

Additional information about job posting that is not shown to candidate but used for internal system

salary
object | null
required

Salary block; the whole object is null when no salary is set.

interview_config_id
string<uuid> | null
required
read-only
created_at
string<date-time>
required
read-only
application_count
integer
required
read-only