Jobs

Edit job posting

Applies a partial update to a job posting the connected account owns; only included fields change. Editing an already-published (LISTED) posting affects a live, money-spending listing.

patch/v1/{account_id}/jobs/{job_id}

Request

  • Base URL: https://api.curviate.com
  • URL: https://api.curviate.com/v1/{account_id}/jobs/{job_id}
  • Auth: HTTP bearer

Path parameters

account_idstring required

The connected LinkedIn account that owns the job posting.

job_idstring required

The job posting's numeric id, e.g. 4100000000 (from the LinkedIn job URL or a search/jobs result). A full URL is not accepted here.

Request body

workplace_type'ON_SITE' | 'HYBRID' | 'REMOTE'

Workplace arrangement.

locationstring

A LOCATION parameter id from GET /v1/{account_id}/search/parameters.

employment_status'FULL_TIME' | 'PART_TIME' | 'CONTRACT' | 'TEMPORARY' | 'OTHER' | 'VOLUNTEER' | 'INTERNSHIP'

Employment type.

descriptionstring

Full job description (minimum 200 characters). Content passes through verbatim, never stored.

skillsstring[]

Optional skill parameter ids from GET /v1/{account_id}/search/parameters.

screening_questionsobject[]

Optional screening questions attached to the posting.

rejection_settingsobject

Optional automatic-rejection configuration.

Response

The updated job posting, reflecting only the fields included in the request. Content fields (title, description) are returned verbatim and are never stored.

object'job_posting' required

Response type discriminator.

idstring required

The job posting's numeric identifier.

titlestring required

Job title (content pass-through, never stored).

locationstring

Job location, when set.

state'DRAFT' | 'LISTED' | 'CLOSED' | 'REVIEW' | 'SUSPENDED' required

Posting lifecycle state.

is_repostboolean required

Whether this posting is a repost of a prior one.

is_application_limit_reachedboolean required

Whether this posting has reached its application limit.

industriesstring[]

Industries associated with this posting, when set.

created_atstring required

ISO-8601 UTC timestamp the posting was created.

descriptionstring required

Full job description text (content pass-through, never stored).

views_countnumber

Number of views so far, when tracked.

applications_countnumber required

Number of applicants so far.

workplace_type'ON_SITE' | 'HYBRID' | 'REMOTE' required

Workplace arrangement.

employment_status'FULL_TIME' | 'PART_TIME' | 'CONTRACT' | 'TEMPORARY' | 'OTHER' | 'VOLUNTEER' | 'INTERNSHIP' required

Employment type.

published_atstring

ISO-8601 UTC timestamp the posting was published, when set.

expires_atstring

ISO-8601 UTC timestamp the posting expires, when set.

closed_atstring

ISO-8601 UTC timestamp the posting was closed, when set.

listed_atstring

ISO-8601 UTC timestamp the posting was listed, when set.

Example response

{
  "safety_warning": {
    "row": "profile_views",
    "reset_at": "2026-09-05T00:00:00.000Z",
    "hint": {
      "parameter": "profile_views.ceiling",
      "message": "This account is at its ceiling for profile_views. This action went through because profile_views.posture is warn, and it counted: 101 of 100 this window. Raise profile_views.ceiling, or wait for the window to reset at 2026-09-05T00:00:00.000Z."
    },
    "reason": "ceiling",
    "blocked": false
  }
}

Changes

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