---
title: "Updates job"
method: PUT
path: "/jobs/{jobId}"
tags: ["jobs"]
---

# Updates job

`PUT /jobs/{jobId}`

Enables you to update job and it's jobAd. This operation requires passing a job id within path and job's new state within body of the PUT request. Ignores all nonexistent job properties and job properties values. However jobAd and all it's properties need to be provided. All jobAd's properties will be removed if not provided. Returns an updated job with jobAd.

## 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 `200`

- 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, * **JOB_PROPERTY_REQUIRED** when some job property is required to create job, * **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, * **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
- `401` — Job access denied
- `403` — with code * **JOB_TEMPLATES_MANAGEMENT_FORBIDDEN** when not allowed to create job templates.
- `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)
