JobsCreate Job

Create Job

Create a Job posting at a Company using the Company's ID.

curl -X POST "https://api.getkini.com/jobs" \
  -H "Content-Type: application/json" \
  -H "Company-Id: 1" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "external_id": "EXT-123456",
  "title": "Software Engineer (m/w/d)",
  "description": "Example job description. We are looking for a Software Engineer (m/w/d) to join our team in Berlin.",
  "posting_url": "https://careers.example.com/jobs/123456",
  "application_url": "https://careers.example.com/jobs/123456/apply",
  "application_email": "jobs@example.com",
  "status": "active",
  "remote": "on-site",
  "language": "en",
  "category": "software_development",
  "work_schedule": "full_time",
  "employment_type": "permanent",
  "senority": "mid_level",
  "education": "Bachelor's degree",
  "start_date": "2026-10-01",
  "contract_limitation": "Unlimited contract",
  "location_name": "Berlin, Germany",
  "street": "Example Street 1",
  "city": "Berlin",
  "country": "Germany",
  "postcode": "10115",
  "longitude": 13.405,
  "latitude": 52.52,
  "salary": "50,000 65,000 gross per year",
  "salary_from": 50000,
  "salary_to": 65000,
  "salary_currency": "EUR",
  "salary_frequency": "annual",
  "contact_name": "Jane Doe",
  "contact_email": "jane.doe@example.com",
  "contact_title": "Head of HR",
  "contact_phone": "+49 30 1234567",
  "contact_salutation": "Frau",
  "banner_image": "https://www.example.com/banner.jpg",
  "screening_questions": [
    {
      "id": "sq-001",
      "question": "Do you have a valid work permit for Germany?",
      "answer_type": "boolean",
      "required": true,
      "options": [
        {
          "label": "Yes",
          "value": "yes"
        }
      ]
    }
  ],
  "application_form_fields": [
    {
      "id": "email",
      "name": "email",
      "label": "Email address",
      "type": "email",
      "subtype": null,
      "required": true,
      "order": 1,
      "options": []
    }
  ],
  "description_sections": [
    {
      "id": "tasks",
      "type": "tasks",
      "order": 2,
      "title": "Your tasks",
      "content": "Example section content. Describe the responsibilities of the role here."
    }
  ],
  "custom_fields": {
    "department": "Engineering",
    "location_type": "Hybrid",
    "salary_range": "60000-80000"
  },
  "import_source": "api",
  "run_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}'
{
  "id": 123456,
  "external_id": "EXT-123456",
  "company": 1,
  "title": "Software Engineer (m/w/d)",
  "description": "Example job description. We are looking for a Software Engineer (m/w/d) to join our team in Berlin.",
  "posting_url": "https://careers.example.com/jobs/123456",
  "application_url": "https://careers.example.com/jobs/123456/apply",
  "application_email": "jobs@example.com",
  "status": "active",
  "remote": "on-site",
  "language": "en",
  "category": "software_development",
  "employment_type": "permanent",
  "work_schedule": "full_time",
  "senority": "mid_level",
  "education": "Bachelor's degree",
  "start_date": "2026-10-01",
  "contract_limitation": "Unlimited contract",
  "location_name": "Berlin, Germany",
  "street": "Example Street 1",
  "city": "Berlin",
  "country": "Germany",
  "postcode": "10115",
  "longitude": 13.405,
  "latitude": 52.52,
  "salary": "50,000 – 65,000 € gross per year",
  "salary_from": 50000,
  "salary_to": 65000,
  "salary_currency": "EUR",
  "salary_frequency": "annual",
  "contact_name": "Jane Doe",
  "contact_email": "jane.doe@example.com",
  "contact_title": "Head of HR",
  "contact_phone": "+49 30 1234567",
  "contact_salutation": "Frau",
  "banner_image": "https://www.example.com/banner.jpg",
  "screening_questions": [
    {
      "id": "sq-001",
      "question": "Do you have a valid work permit for Germany?",
      "answer_type": "boolean",
      "required": true,
      "options": [
        {
          "label": "Yes",
          "value": "yes"
        }
      ]
    }
  ],
  "application_form_fields": [
    {
      "id": "email",
      "name": "email",
      "label": "Email address",
      "type": "email",
      "subtype": null,
      "required": true,
      "order": 1,
      "options": []
    }
  ],
  "description_sections": [
    {
      "id": "tasks",
      "type": "tasks",
      "order": 2,
      "title": "Your tasks",
      "content": "Example section content. Describe the responsibilities of the role here."
    }
  ],
  "custom_fields": {
    "employer_name": "Example Company GmbH",
    "employer_logo": "https://www.example.com/logo.png"
  },
  "raw_values": {
    "employmentType": "FULL_TIME"
  },
  "import_source": "api",
  "run_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "fingerprint": "8f3c1a92d47b0e6558a1c0d4b7e39625f0a1c8d3b6e94275a0c1f8d3b6e94275",
  "apply_webhooks": {
    "indeed": "https://api.getkini.com/indeed/apply/1/123456/"
  },
  "created_at": "2026-06-02T11:07:44.512038Z",
  "updated_at": "2026-07-30T09:15:02.771604Z",
  "last_content_update_at": "2026-07-30T09:15:02.771604Z"
}
POST
/jobs
POST
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

Authenticate every request with an API key from the Kini Partner App, sent as Authorization: Bearer <your_api_key>.

Authenticate every request with an API key from the Kini Partner App, sent as Authorization: Bearer <your_api_key>.
Content-Typestring
Required

The media type of the request body

Options: application/json, application/x-www-form-urlencoded, multipart/form-data
external_idstring

Job's ID in external ATS systems, used for integrations

titlestring
Required

Title of the job

Max length: 255
descriptionstring

Detailed description of the job's responsibilities and requirements

posting_urlstring

URL of the job posted on the company's career page

Format: uri
application_urlstring

URL through which applicants can apply on the company's career page

Format: uri
application_emailstring

Email address through which applicants can apply

Format: email
statusstring

Posting status of the job (active, deleted, archived)

Options: active, deleted, archived
remotestring

Work mode of the job (remote, hybrid, on-site)

Options: remote, hybrid, on-site
languagestring

Language of the job posting as an ISO 639-1 code (e.g. 'en', 'de')

Min length: 2 • Max length: 2
categorystring

Category of the job, e.g. 'sales'

Options: accounting_finance, administration, architecture_construction, arts_media_entertainment, business_development, cleaning_facilities, consulting, customer_service_support, data_analytics, design, education_training, engineering, entertainment_travel, event_management, finance, healthcare, hospitality_tourism, hr_recruitment, installation_maintenance_repair, it_support, legal, logistics_supply_chain, management_executive, marketing, non_profit, operations, other, personal_care_services, pharmaceutical_life_sciences, product_management, project_management, public_relations, real_estate, retail, sales, science_technology, software_development, social_services, sports_fitness_recreation, translation_localization, warehouse
work_schedulestring

Work schedule type for the position (full-time, part-time, flexible)

Options: full_time, part_time, flexible
employment_typestring

Employment type of the job (permanent, contract, minijob, etc.)

Options: contract, freelance, intern, temporary, permanent, volunteer, apprenticeship, working_student, minijob, other
senoritystring

Required or expected seniority level

Options: unexperienced, junior, mid_level, senior, lead, manager, director, executive
educationstring

Required or preferred education level

start_datestring

Required or expected start date

contract_limitationstring

Contractual limitations or terms associated with the job

location_namestring

Full-text location of where the job is based

streetstring

Street of the job's location

citystring

City of the job's location

countrystring

Country of the job's location

postcodestring

Postal code of the job's location

longitudestring

Longitude coordinate of the job's location

Format: decimal • Pattern: ^-?\d{0,3}(?:\.\d{0,6})?$
latitudestring

Latitude coordinate of the job's location

Format: decimal • Pattern: ^-?\d{0,3}(?:\.\d{0,6})?$
salarystring

General description of the salary package

salary_frominteger

Starting salary range

salary_tointeger

Maximum salary range

salary_currencystring

Currency of the stated salary

salary_frequencystring

Payout frequency of the stated salary (annual, monthly, etc.)

contact_namestring

Name of the contact person responsible for the job posting

contact_emailstring

E-Mail Address of the contact person responsible for the job posting

Format: email
contact_titlestring

Work title of the contact person responsible for the job posting

contact_phonestring

Phone Number of the contact person responsible for the job posting

contact_salutationstring

Salutation of the contact person responsible for the job posting

banner_imagestring

Banner Image URL

application_form_fieldsarray

Fields of the application form on the company's career page, in display order

custom_fieldsobject

Custom fields for the job posting as key-value pairs

import_sourcestring

How the job reached Kini, e.g. api, crawler, or clickout

run_idstring

Identifier of the import run this job last came in on. Useful when tracing a sync.

Max length: 36
Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. Authenticate every request with an API key from the Kini Partner App, sent as Authorization: Bearer \<your_api_key\>.

Headers

Company-Idinteger
Required

ID of the Company

Example:
1

Body

external_idstring

Job's ID in external ATS systems, used for integrations

Example:
EXT-123456
titlestring
Required

Title of the job

Example:
Software Engineer (m/w/d)
descriptionstring

Detailed description of the job's responsibilities and requirements

Example:
Example job description. We are looking for a Software Engineer (m/w/d) to join our team in Berlin.
posting_urlstring

URL of the job posted on the company's career page

Example:
https://careers.example.com/jobs/123456
application_urlstring

URL through which applicants can apply on the company's career page

Example:
https://careers.example.com/jobs/123456/apply
application_emailstring

Email address through which applicants can apply

Example:
jobs@example.com
statusstring

Posting status of the job (active, deleted, archived)

Allowed values:activedeletedarchived
remotestring

Work mode of the job (remote, hybrid, on-site)

Allowed values:remotehybridon-site
languagestring

Language of the job posting as an ISO 639-1 code (e.g. 'en', 'de')

Example:
en
categorystring

Category of the job, e.g. 'sales'

Allowed values:accounting_financeadministrationarchitecture_constructionarts_media_entertainmentbusiness_developmentcleaning_facilitiesconsultingcustomer_service_supportdata_analyticsdesigneducation_trainingengineeringentertainment_travelevent_managementfinancehealthcarehospitality_tourismhr_recruitmentinstallation_maintenance_repairit_supportlegallogistics_supply_chainmanagement_executivemarketingnon_profitoperationsotherpersonal_care_servicespharmaceutical_life_sciencesproduct_managementproject_managementpublic_relationsreal_estateretailsalesscience_technologysoftware_developmentsocial_servicessports_fitness_recreationtranslation_localizationwarehouse
work_schedulestring

Work schedule type for the position (full-time, part-time, flexible)

Allowed values:full_timepart_timeflexible
employment_typestring

Employment type of the job (permanent, contract, minijob, etc.)

Allowed values:contractfreelanceinterntemporarypermanentvolunteerapprenticeshipworking_studentminijobother
senoritystring

Required or expected seniority level

Allowed values:unexperiencedjuniormid_levelseniorleadmanagerdirectorexecutive
educationstring

Required or preferred education level

Example:
Bachelor's degree
start_datestring

Required or expected start date

Example:
2026-10-01
contract_limitationstring

Contractual limitations or terms associated with the job

Example:
Unlimited contract
location_namestring

Full-text location of where the job is based

Example:
Berlin, Germany
streetstring

Street of the job's location

Example:
Example Street 1
citystring

City of the job's location

Example:
Berlin
countrystring

Country of the job's location

Example:
Germany
postcodestring

Postal code of the job's location

Example:
10115
longitudestring

Longitude coordinate of the job's location

Example:
13.405
latitudestring

Latitude coordinate of the job's location

Example:
52.52
salarystring

General description of the salary package

Example:
50,000 – 65,000 € gross per year
salary_frominteger

Starting salary range

Example:
50000
salary_tointeger

Maximum salary range

Example:
65000
salary_currencystring

Currency of the stated salary

Example:
EUR
salary_frequencystring

Payout frequency of the stated salary (annual, monthly, etc.)

Example:
annual
contact_namestring

Name of the contact person responsible for the job posting

Example:
Jane Doe
contact_emailstring

E-Mail Address of the contact person responsible for the job posting

Example:
jane.doe@example.com
contact_titlestring

Work title of the contact person responsible for the job posting

Example:
Head of HR
contact_phonestring

Phone Number of the contact person responsible for the job posting

Example:
+49 30 1234567
contact_salutationstring

Salutation of the contact person responsible for the job posting

Example:
Frau
banner_imagestring

Banner Image URL

Example:
https://www.example.com/banner.jpg
application_form_fieldsarray

Fields of the application form on the company's career page, in display order

custom_fieldsobject

Custom fields for the job posting as key-value pairs

Example:
{"department":"Engineering","location_type":"Hybrid","salary_range":"60000-80000"}
import_sourcestring

How the job reached Kini, e.g. api, crawler, or clickout

Example:
api
run_idstring

Identifier of the import run this job last came in on. Useful when tracing a sync.

Example:
3fa85f64-5717-4562-b3fc-2c963f66afa6

Responses