Update Job
Updates an existing job scoped to the API key’s company.
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:Status Transitions
Jobs can transition between statuses:OPEN→CLOSED: Position filled or pausedCLOSED→OPEN: Reopening a position
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 a403 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
Related Resources
Jobs Resource Guide
Get Job
Create Job
Authorizations
API key for authentication using Bearer scheme
Path Parameters
Query Parameters
Required for ATS API keys to specify which company to access. Ignored for standard company API keys.
Body
Job title
5 - 200"Senior TypeScript Developer"
Job description
10 - 5000"We are looking for an experienced TypeScript developer..."
Required skills
10["TypeScript", "React", "Node.js"]Nice-to-have skills
10["Docker", "AWS", "GraphQL"]Language requirements with proficiency levels
5[
{ "language": "EN", "proficiency": "B2" },
{ "language": "SK", "proficiency": "C1" }
]URL to full job description
"https://example.com/jobs/senior-typescript-dev"
Work mode
UNDEFINED, ONSITE, REMOTE, HYBRID "REMOTE"
Job location details
Job status
UNDEFINED, OPEN, CLOSED "OPEN"
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
{
"min": 50000,
"max": 80000,
"currency": "USD",
"period": "YEARLY"
}Custom metadata (merged with existing metadata, max 10KB, 5 levels deep, 50 keys)
{
"salaryRange": "80k-120k",
"benefits": ["health insurance", "remote work"]
}Response
Job ID
"123e4567-e89b-12d3-a456-426614174000"
Company ID
"987e6543-e21b-12d3-a456-426614174000"
Job title
"Senior TypeScript Developer"
Job status
UNDEFINED, OPEN, CLOSED "OPEN"
Created timestamp
"2024-11-16T10:30:00Z"
Updated timestamp
"2024-11-16T10:30:00Z"
Job description
"We are looking for an experienced TypeScript developer..."
Job URL
"https://company.com/careers/senior-typescript-dev"
Benefits
"Health insurance, remote work, flexible hours"
Required skills
["TypeScript", "React", "Node.js"]Nice-to-have skills
["Docker", "AWS"]Language requirements with proficiency levels
[
{ "language": "EN", "proficiency": "B2" },
{ "language": "SK", "proficiency": "C1" }
]Education requirements
["BACHELORS"]Experience level
"SENIOR"
Contract type
"FULL_TIME"
Location information
Salary range
{
"min": 50000,
"max": 80000,
"currency": "USD",
"period": "YEARLY"
}Custom metadata
{
"externalJobId": "JOB-12345",
"department": "Engineering"
}