Use this endpoint when an external system needs to publish jobs directly into Kardow.
Required Fields
Full job description. HTML is accepted.
Common Optional Fields
One of full-time, part-time, contract, internship, temporary, or casual.
Freeform location such as Remote, Paris, or San Francisco, CA.
Set to true for remote roles.
External apply URL or instructions.
One of form, email, website, or form-external.
Currency code such as USD.
One of hourly, daily, weekly, monthly, or yearly.
One of pending, active, expired, or draft.
Examples
Minimal job
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 --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 --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
Organization that owns the job.
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"
}
}
API key for authentication. Get yours from Settings > API Keys in the Kardow dashboard.
Available options:
full-time,
part-time,
contract,
internship,
temporary,
casual
Available options:
hourly,
daily,
weekly,
monthly,
yearly
Available options:
pending,
active,
expired,
draft