Job Postings

Update a draft job posting

Update a draft job posting

Required scopes: job_postings:write

Archived postings reject updates with HTTP 409 posting_archived.

Example (curl):

curl -X PATCH https://api.yardstick.team/v1/job_postings/jp_abc123 \
  -H 'Authorization: Bearer ys_sk_live_…' \
  -H 'Content-Type: application/json' \
  -d '{"location":"Remote","location_type":"remote"}'

Example (TypeScript):

await fetch("https://api.yardstick.team/v1/job_postings/jp_abc123", {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${process.env.YS_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ location: "Remote", location_type: "remote" }),
});
patch/v1/job_postings/{job_posting_id}

Request

  • Base URL: https://api.yardstick.team
  • URL: https://api.yardstick.team/v1/job_postings/{job_posting_id}
  • Auth: HTTP bearer

Path parameters

job_posting_idstring required

Headers

Idempotency-Keystring

Supported for safe retry. Reuse the same key to receive the cached response without repeating the operation.

X-Request-Idstring

Optional caller-supplied request identifier. Values must match ^[A-Za-z0-9_-]{1,128}$; a valid value is echoed in the response X-Request-Id header, otherwise the API generates one.

Request body

titlestring
slugstring
departmentstring nullable
group_idstring uuid nullable
locationstring nullable
location_type'remote' | 'hybrid' | 'onsite'
location_countrystring nullable

Assigned ISO 3166-1 alpha-2 country code. Lowercase input is accepted and normalized to uppercase.

salary_mininteger nullable
salary_maxinteger nullable
salary_currencystring
salary_displayboolean
descriptionstring nullable
requirementsstring nullable

Response

Success

idstring required

Display id, e.g. jp_<base32>

object'job_posting' required
status'draft' | 'unpublished' | 'published' | 'archived' required

Derived from is_published / published_at / archived_at.

titlestring nullable required
slugstring required
departmentstring nullable required
locationstring nullable required
location_typestring nullable required
location_countrystring nullable required

Assigned ISO 3166-1 alpha-2 country code for the posting location. Drafts may be null; every new publish or republish requires a country, including remote roles.

salary_minnumber nullable required
salary_maxnumber nullable required
salary_currencystring nullable required
salary_displayboolean nullable required
descriptionstring nullable required
requirementsstring nullable required
custom_questionsunknown
interview_plan_idstring required

Display id of the bound interview plan (ipd_<base32>).

is_publishedboolean required
published_atstring nullable required

ISO-8601 UTC

archived_atstring nullable required

ISO-8601 UTC

public_urlstring nullable required

Canonical public job board URL when published in live mode; uses PUBLIC_JOB_BOARD_BASE_URL with root jobs-board paths, falls back to PUBLIC_APP_BASE_URL with /careers paths, then defaults to https://jobs.yardstick.team. Null for drafts, archived postings, and test-mode postings.

applications_countinteger nullable required

Application count populated on retrieve-by-id; null on list responses to bound query cost.

livemodeboolean required
created_atstring nullable required

ISO-8601 UTC

updated_atstring nullable required

ISO-8601 UTC

Changes

No recorded changes to this operation across all 1 revision of this API.