Skip to main content
POST
/
jobs
curl --request POST \
  --url https://api.kardow.com/jobs \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "title": "Backend Engineer",
  "description": "Build internal and public APIs.",
  "company_name": "Acme"
}
'
{
  "data": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "title": "<string>",
    "slug": "<string>",
    "status": "<string>",
    "created_at": "2023-11-07T05:31:56Z",
    "company_logo_url": "<string>"
  },
  "meta": {
    "organization_id": 123,
    "url": "<string>"
  }
}
Use this endpoint when an external system needs to publish jobs directly into Kardow.

Required Fields

title
string
required
Job title.
description
string
required
Full job description. HTML is accepted.
company_name
string
required
Hiring company name.

Common Optional Fields

job_type
string
One of full-time, part-time, contract, internship, temporary, or casual.
location
string
Freeform location such as Remote, Paris, or San Francisco, CA.
is_remote
boolean
Set to true for remote roles.
how_to_apply
string
External apply URL or instructions.
how_to_apply_method
string
One of form, email, website, or form-external.
salary_min
number
Minimum salary amount.
salary_max
number
Maximum salary amount.
salary_currency
string
Currency code such as USD.
salary_period
string
One of hourly, daily, weekly, monthly, or yearly.
status
string
default:"pending"
One of pending, active, expired, or draft.

Examples

Minimal job

cURL
curl --request POST \
  --url https://api.kardow.com/jobs \
  --header "Content-Type: application/json" \
  --header "x-api-key: your-api-key-here" \
  --data '{
    "title": "Backend Engineer",
    "description": "Build internal and public APIs.",
    "company_name": "Acme"
  }'

Remote role with salary details

cURL
curl --request POST \
  --url https://api.kardow.com/jobs \
  --header "Content-Type: application/json" \
  --header "x-api-key: your-api-key-here" \
  --data '{
    "title": "Senior Product Designer",
    "description": "Lead product design across web and mobile.",
    "company_name": "Acme",
    "location": "Remote",
    "is_remote": true,
    "job_type": "full-time",
    "salary_min": 90000,
    "salary_max": 120000,
    "salary_currency": "USD",
    "salary_period": "yearly",
    "contact_email": "jobs@acme.com"
  }'

External apply flow

cURL
curl --request POST \
  --url https://api.kardow.com/jobs \
  --header "Content-Type: application/json" \
  --header "x-api-key: your-api-key-here" \
  --data '{
    "title": "Growth Marketer",
    "description": "Own paid acquisition and lifecycle campaigns.",
    "company_name": "Acme",
    "location": "Remote",
    "how_to_apply": "https://acme.com/careers/growth-marketer",
    "how_to_apply_method": "website",
    "company_website": "https://acme.com",
    "status": "pending"
  }'

JavaScript example

const response = await fetch("https://api.kardow.com/jobs", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.KARDOW_API_KEY,
  },
  body: JSON.stringify({
    title: "Senior Software Engineer",
    description: "Build product features across the stack.",
    company_name: "Acme",
    location: "Remote",
    is_remote: true,
    job_type: "full-time",
    contact_email: "jobs@acme.com",
  }),
});

const result = await response.json();
console.log(result.data.id);

Response Shape

data.id
string
required
Newly created job UUID.
data.slug
string
required
Job slug.
data.status
string
required
Current job status.
meta.organization_id
number
required
Organization that owns the job.
meta.url
string
required
Relative URL for the created job.

Example response

{
  "data": {
    "id": "4d1b6fe8-688f-467c-b233-b5d6a51ce1cb",
    "title": "Backend Engineer",
    "slug": "backend-engineer",
    "status": "pending",
    "created_at": "2026-03-10T12:00:00.000Z",
    "company_logo_url": null
  },
  "meta": {
    "organization_id": 42,
    "url": "/jobs/backend-engineer"
  }
}

Authorizations

x-api-key
string
header
required

API key for authentication. Get yours from Settings > API Keys in the Kardow dashboard.

Body

application/json
title
string
required
description
string
required
company_name
string
required
how_to_apply
string
is_remote
boolean
is_highlighted
boolean
is_sticky
boolean
location
string
location_restricted
boolean
category_id
string<uuid>
job_type
enum<string>
Available options:
full-time,
part-time,
contract,
internship,
temporary,
casual
company_website
string<uri>
company_logo_url
string<uri>
salary_min
number
salary_max
number
salary_currency
string
salary_period
enum<string>
Available options:
hourly,
daily,
weekly,
monthly,
yearly
contact_email
string<email>
expires_at
string<date-time>
status
enum<string>
Available options:
pending,
active,
expired,
draft

Response

Job created

data
object
meta
object