---
title: "Create a new job"
method: POST
path: "/jobs"
tags: ["jobs"]
---

# Create a new job

`POST /jobs`

Create a new job. Ignores all nonexistent job properties and job properties values.

## Request body

- JobInput
  - `title` string, title, required
  - `refNumber` string
  - `targetHiringDate` string, date-time
  - `department` Identifiable
    - `id` string, required
  - `location` LocationInput, required
    - `countryCode` string, required
    - `regionCode` string
    - `region` string
    - `address` string
    - `postalCode` string
    - `city` string, required
    - `longitude` union
      - number
      - string
    - `latitude` union
      - number
      - string
    - `remote` boolean
    - `hybrid` boolean
    - `hybridDescription` string
  - `industry` Identifiable, required
    - `id` string, required
  - `function` Identifiable, required
    - `id` string, required
  - `typeOfEmployment` Identifiable
    - `id` string, required
  - `experienceLevel` Identifiable, required
    - `id` string, required
  - `eeoCategory` Identifiable
    - `id` string, required
  - `template` boolean
  - `compensation` Compensation
    - `min` number, double, nullable
    - `max` number, double, nullable
    - `currency` string, nullable
    - `period` 'HOURLY' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY', nullable
  - `jobAd` JobAd
    - `sections` JobAdSections
      - `sections` object
        - `companyDescription` JobAdSection
          - `title` string
          - `text` string
        - `jobDescription` JobAdSection
          - `title` string
          - `text` string
        - `qualifications` JobAdSection
          - `title` string
          - `text` string
        - `additionalInformation` JobAdSection
          - `title` string
          - `text` string
        - `videos` JobAdVideosSection
          - `title` string
          - `urls` string[]
    - `language` Language
      - `code` string
      - `label` string
      - `labelNative` string
  - `properties` JobPropertyInput[]
    - `id` string, required
    - `value` JobPropertyValue, required
      - `id` string
      - `label` string

## Response `201`

Created job

- JobDetails
  - `id` string
  - `title` string
  - `refNumber` string
  - `createdOn` string, date-time
  - `updatedOn` string, date-time — Job modification date
  - `lastActivityOn` string, date-time — Indicates last activity associated with a job
  - `department` Department
    - `id` string
    - `label` string, required
    - `description` string
  - `location` Location — regionCode is not recommended to be used for countries other than the United States.
    - `country` string
    - `countryCode` string, required
    - `regionCode` string
    - `region` string
    - `city` string, required
    - `address` string, address
    - `postalCode` string
    - `longitude` string
    - `latitude` string
  - `status` 'CREATED' | 'SOURCING' | 'FILLED' | 'INTERVIEW' | 'OFFER' | 'CANCELLED' | 'ON_HOLD' | 'OTHER'
  - `postingStatus` 'PUBLIC' | 'INTERNAL' | 'NOT_PUBLISHED' | 'PRIVATE'
  - `targetHiringDate` string, date-time
  - `hiringProcessId` string — ID of hiring process associated with this job
  - `industry` Property
    - `id` string, required
    - `label` string
  - `function` Property
    - `id` string, required
    - `label` string
  - `typeOfEmployment` Property
    - `id` string, required
    - `label` string
  - `experienceLevel` Property
    - `id` string, required
    - `label` string
  - `eeoCategory` Property
    - `id` string, required
    - `label` string
  - `template` boolean
  - `creator` UserIdentity
    - `id` string
    - `firstName` string
    - `lastName` string
  - `compensation` Compensation
    - `min` number, double, nullable
    - `max` number, double, nullable
    - `currency` string, nullable
    - `period` 'HOURLY' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY', nullable
  - `jobAd` JobAdInput
    - `sections` JobAdSections
      - `sections` object
        - `companyDescription` JobAdSection
          - `title` string
          - `text` string
        - `jobDescription` JobAdSection
          - `title` string
          - `text` string
        - `qualifications` JobAdSection
          - `title` string
          - `text` string
        - `additionalInformation` JobAdSection
          - `title` string
          - `text` string
        - `videos` JobAdVideosSection
          - `title` string
          - `urls` string[]
    - `language` Language
      - `code` string
      - `label` string
      - `labelNative` string
  - `properties` JobProperty[]
    - `id` string, required
    - `key` string
    - `label` string
    - `value` JobPropertyValue, required
      - `id` string
      - `label` string
  - `actions` object
    - `hiringTeam` Action
      - `url` string, required
      - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'OPTIONS' | 'DELETE' | 'HEAD' | 'CONNECT', required
    - `publications` Action
      - `url` string, required
      - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'OPTIONS' | 'DELETE' | 'HEAD' | 'CONNECT', required
    - `positions` Action
      - `url` string, required
      - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'OPTIONS' | 'DELETE' | 'HEAD' | 'CONNECT', required
    - `applyOnWeb` Action
      - `url` string, required
      - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'OPTIONS' | 'DELETE' | 'HEAD' | 'CONNECT', required
    - `details` Action
      - `url` string, required
      - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'OPTIONS' | 'DELETE' | 'HEAD' | 'CONNECT', required

## Other responses

- `400` — with codes * **DEPARTMENT_NOT_FOUND** when provided department does not exist, * **INDUSTRY_NOT_FOUND** when provided industry does not exist, * **FUNCTION_NOT_FOUND** when provided function does not exist, * **TYPE_OF_EMPLOYMENT_NOT_FOUND** when provided type of employment does not exist, * **JOB_AD_LANGUAGE_NOT_FOUND** when provided job ad language does not exist, * **EEO_CATEGORY_NOT_FOUND** when provided eeo category does not exist, * **EXPERIENCE_LEVEL_NOT_FOUND** when provided experience level does not exist, * **CITY_NOT_FOUND** when provided city does not exist, * **INVALID_GEO_DATA** when latitude or longitude parameters are invalid * **COUNTRY_CODE_NOT_RECOGNIZED** when provided country code is not a valid ISO 3166 code * **JOB_PROPERTY_REQUIRED** when some job property is required to create job, * **JOB_PROPERTY_PARENT_VALUE_MISSING** when job property is set but value for its parent is missing, * **INVALID_JOB_PROPERTY_VALUE_ID** when provided job property value id does not exist for required property, * **INVALID_JOB_PROPERTY_VALUE_TYPE** when invalid value type is used for job property, * **JOB_PROPERTY_VALUE_NOT_AVAILABLE_FOR_SELECTED_PARENT_VALUE** when job property's value is not available for selected parent value, * **VALUE_INACTIVE** when job property's value is not active and cannot be set. * **INVALID_TEXT_FORMAT** when job property's value contains invalid text * **INVALID_BRAND_VALUE** when provided brand value is invalid * **TYPE_OF_EMPLOYMENT_NOT_ALLOWED** when provided type of employment is not allowed in country * **PROPERTY_INVALID** when one of provided properties contains invalid characters
- `403` — with codes * **JOB_TEMPLATES_MANAGEMENT_FORBIDDEN** when not allowed to create job templates. * **PERMISSION_DENIED** when job access forbidden
- `409` — with code * **REF_NUMBER_ALREADY_EXISTS** when provided ref number already exists
- `422` — Input validation fails with codes * **COMPENSATION_INVALID_CURRENCY** – the currency code provided is invalid or not supported. * **TAGLINES_EXCEEDS_SECTION_SIZE** – Combined Additional Information and Job Ad Footers exceed the maximum allowed length.

---

[API](https://skmtc.net/smartrecruiters/apis/apply-api.md) · [All operations](https://skmtc.net/smartrecruiters/apis/apply-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smartrecruiters/apply-api/revisions/449bdc2516c9/schema)
