Get a public job
curl --request GET \
--url https://rest.hotfix.jobs/v1/jobs/{job_id}const options = {method: 'GET'};
fetch('https://rest.hotfix.jobs/v1/jobs/{job_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://rest.hotfix.jobs/v1/jobs/{job_id}"
response = requests.get(url)
print(response.text){
"id": "9a1b2c3d-4e5f-6789-abcd-ef0123456789",
"title": "Staff engineer",
"company_name": "Acme",
"company_slug": "acme",
"locations": [
"New York"
],
"countries": [
"United States"
],
"work_type": "hybrid",
"employment_type": "FULL_TIME",
"salary_min": 210000,
"salary_max": 260000,
"salary_currency": "USD",
"posted_at": "2026-09-21T15:04:05+00:00",
"department": "engineering",
"department_label": "Engineering",
"team": "infrastructure",
"team_label": "Infrastructure",
"summary": "Own the platform that runs every Acme service.",
"description": "We hire across time zones and pay the same band everywhere.\n\n## The role\n\nYou will own the platform that runs every Acme service.\n\nAcme is an equal opportunity employer.",
"direct_apply_supported": true,
"is_active": true,
"skills": [
"Go",
"Kubernetes"
],
"yoe_min": 6,
"education": null
}Careers page
Get a public job
One open job as it appears on your company page, with its description in markdown. The opening and closing you set under Settings > Embed > Job posts are already around it. Public, no key.
404 once the job is gone; a closed job that still exists comes back with is_active false.
GET
/
v1
/
jobs
/
{job_id}
Get a public job
curl --request GET \
--url https://rest.hotfix.jobs/v1/jobs/{job_id}const options = {method: 'GET'};
fetch('https://rest.hotfix.jobs/v1/jobs/{job_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://rest.hotfix.jobs/v1/jobs/{job_id}"
response = requests.get(url)
print(response.text){
"id": "9a1b2c3d-4e5f-6789-abcd-ef0123456789",
"title": "Staff engineer",
"company_name": "Acme",
"company_slug": "acme",
"locations": [
"New York"
],
"countries": [
"United States"
],
"work_type": "hybrid",
"employment_type": "FULL_TIME",
"salary_min": 210000,
"salary_max": 260000,
"salary_currency": "USD",
"posted_at": "2026-09-21T15:04:05+00:00",
"department": "engineering",
"department_label": "Engineering",
"team": "infrastructure",
"team_label": "Infrastructure",
"summary": "Own the platform that runs every Acme service.",
"description": "We hire across time zones and pay the same band everywhere.\n\n## The role\n\nYou will own the platform that runs every Acme service.\n\nAcme is an equal opportunity employer.",
"direct_apply_supported": true,
"is_active": true,
"skills": [
"Go",
"Kubernetes"
],
"yoe_min": 6,
"education": null
}Path Parameters
The job's id, from search.
Response
Success
Hotfix's short summary of the job, on list rows.
The job description in markdown. Only on Get a public job.
What every applicant must show.
The department as people read it.
remote, hybrid, or onsite.
The currency the job states. Never converted.
False once the job is closed.
Where applicants apply.
True while the job is Featured.