Skip to main content
PATCH
/
jobs
/
{id}
Update job
curl --request PATCH \
  --url https://api.instaview.sk/jobs/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "Senior TypeScript Developer",
  "description": "We are looking for an experienced TypeScript developer...",
  "requiredSkills": [
    "TypeScript",
    "React",
    "Node.js"
  ],
  "niceToHaveSkills": [
    "Docker",
    "AWS",
    "GraphQL"
  ],
  "languageRequirements": [
    {
      "language": "EN",
      "proficiency": "B2"
    },
    {
      "language": "SK",
      "proficiency": "C1"
    }
  ],
  "descriptionUrl": "https://example.com/jobs/senior-typescript-dev",
  "workMode": "REMOTE",
  "location": {
    "workMode": "REMOTE",
    "street": "Hlavná 123",
    "city": "Bratislava",
    "postalCode": "81101",
    "countryCode": "SK"
  },
  "status": "OPEN",
  "salary": {
    "min": 50000,
    "max": 80000,
    "currency": "USD",
    "period": "YEARLY"
  },
  "metadata": {
    "salaryRange": "80k-120k",
    "benefits": [
      "health insurance",
      "remote work"
    ]
  }
}
'
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "companyId": "987e6543-e21b-12d3-a456-426614174000",
  "title": "Senior TypeScript Developer",
  "status": "OPEN",
  "createdAt": "2024-11-16T10:30:00Z",
  "updatedAt": "2024-11-16T10:30:00Z",
  "description": "We are looking for an experienced TypeScript developer...",
  "jobUrl": "https://company.com/careers/senior-typescript-dev",
  "benefits": "Health insurance, remote work, flexible hours",
  "requiredSkills": [
    "TypeScript",
    "React",
    "Node.js"
  ],
  "niceToHaveSkills": [
    "Docker",
    "AWS"
  ],
  "languageRequirements": [
    {
      "language": "EN",
      "proficiency": "B2"
    },
    {
      "language": "SK",
      "proficiency": "C1"
    }
  ],
  "education": [
    "BACHELORS"
  ],
  "experience": "SENIOR",
  "contractType": "FULL_TIME",
  "location": {
    "workMode": "REMOTE",
    "street": "Hlavná 123",
    "city": "Bratislava",
    "postalCode": "81101",
    "countryCode": "SK"
  },
  "salary": {
    "min": 50000,
    "max": 80000,
    "currency": "USD",
    "period": "YEARLY"
  },
  "metadata": {
    "externalJobId": "JOB-12345",
    "department": "Engineering"
  }
}
Updates an existing job posting using partial updates. Only provided fields will be updated; omitted fields remain unchanged.

Overview

The update job endpoint allows you to modify job details without recreating the job. This supports partial updates, meaning you only need to provide the fields you want to change. Useful for updating job descriptions, changing status, adjusting salary, or modifying skills requirements.

Use Cases

  • Status Updates: Change job status (OPEN to CLOSED, etc.)
  • Content Updates: Update job description or requirements
  • Salary Adjustments: Modify salary ranges as needed
  • Skills Refinement: Update required or nice-to-have skills

Partial Updates

You can update any combination of fields:
// Update only status
PATCH /jobs/{id}
{
  "status": "CLOSED"
}

// Update multiple fields
PATCH /jobs/{id}
{
  "title": "Updated Job Title",
  "description": "Updated description",
  "requiredSkills": ["New", "Skills", "List"]
}

Status Transitions

Jobs can transition between statuses:
  • OPENCLOSED: Position filled or paused
  • CLOSEDOPEN: Reopening a position
Status changes do not affect existing candidates or interviews. Candidates remain associated with the job regardless of status.

Company Isolation

You can only update jobs that belong to your API key’s company. Attempting to update a job from another company will result in a 403 Forbidden error.

Error Scenarios

  • 404 Not Found: Job doesn’t exist or has been deleted
  • 403 Forbidden: Job belongs to a different company
  • 400 Bad Request: Invalid field values or validation errors

Authorizations

Authorization
string
header
required

API key for authentication using Bearer scheme

Path Parameters

id
string<uuid>
required

Body

application/json
title
string

Job title

Required string length: 5 - 200
Example:

"Senior TypeScript Developer"

description
string

Job description

Required string length: 10 - 5000
Example:

"We are looking for an experienced TypeScript developer..."

requiredSkills
string[]

Required skills

Maximum array length: 10
Example:
["TypeScript", "React", "Node.js"]
niceToHaveSkills
string[]

Nice-to-have skills

Maximum array length: 10
Example:
["Docker", "AWS", "GraphQL"]
languageRequirements
object[]

Language requirements with proficiency levels

Maximum array length: 5
Example:
[
{ "language": "EN", "proficiency": "B2" },
{ "language": "SK", "proficiency": "C1" }
]
descriptionUrl
string

URL to full job description

Example:

"https://example.com/jobs/senior-typescript-dev"

workMode
enum<string>

Work mode

Available options:
UNDEFINED,
ONSITE,
REMOTE,
HYBRID
Example:

"REMOTE"

location
object

Job location details

status
enum<string>

Job status

Available options:
UNDEFINED,
OPEN,
CLOSED
Example:

"OPEN"

salary
object

Salary range with comprehensive validation: min and max must be >= 0, min < max, currency and period are required if min or max is provided, at least one of min or max must be provided if any salary field is present

Example:
{
"min": 50000,
"max": 80000,
"currency": "USD",
"period": "YEARLY"
}
metadata
object

Custom metadata (merged with existing metadata, max 10KB, 5 levels deep, 50 keys)

Example:
{
"salaryRange": "80k-120k",
"benefits": ["health insurance", "remote work"]
}

Response

200 - application/json
id
string
required

Job ID

Example:

"123e4567-e89b-12d3-a456-426614174000"

companyId
string
required

Company ID

Example:

"987e6543-e21b-12d3-a456-426614174000"

title
string
required

Job title

Example:

"Senior TypeScript Developer"

status
enum<string>
required

Job status

Available options:
UNDEFINED,
OPEN,
CLOSED
Example:

"OPEN"

createdAt
string
required

Created timestamp

Example:

"2024-11-16T10:30:00Z"

updatedAt
string
required

Updated timestamp

Example:

"2024-11-16T10:30:00Z"

description
string | null

Job description

Example:

"We are looking for an experienced TypeScript developer..."

jobUrl
string

Job URL

Example:

"https://company.com/careers/senior-typescript-dev"

benefits
string

Benefits

Example:

"Health insurance, remote work, flexible hours"

requiredSkills
string[]

Required skills

Example:
["TypeScript", "React", "Node.js"]
niceToHaveSkills
string[]

Nice-to-have skills

Example:
["Docker", "AWS"]
languageRequirements
object[]

Language requirements with proficiency levels

Example:
[
{ "language": "EN", "proficiency": "B2" },
{ "language": "SK", "proficiency": "C1" }
]
education
string[]

Education requirements

Example:
["BACHELORS"]
experience
string

Experience level

Example:

"SENIOR"

contractType
string

Contract type

Example:

"FULL_TIME"

location
object

Location information

salary
object

Salary range

Example:
{
"min": 50000,
"max": 80000,
"currency": "USD",
"period": "YEARLY"
}
metadata
object

Custom metadata

Example:
{
"externalJobId": "JOB-12345",
"department": "Engineering"
}