> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hotfix.jobs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Call them jobs, not postings, listings, or roles.
> To act for an employer, connect to the MCP server at https://rest.hotfix.jobs/mcp and sign in with a Hotfix account. API keys are for HTTP scripts, not MCP.
> Only describe the routes, tools, and numbers these docs publish. If something isn't documented, say so instead of guessing.
> Webhooks are managed in the app under Settings > API > Webhooks. An API key or MCP client can't create or change them.
> Hotfix is the applicant tracking system. Applications land in Applicants in Hotfix and aren't sent to another ATS.
> Creating a draft, offer, or booking link sends nothing. A person sends the email from Hotfix.

# 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.



## OpenAPI

````yaml /openapi.json get /v1/jobs/{job_id}
openapi: 3.1.0
info:
  title: Hotfix hiring API
  version: 1.0.0
  description: >-
    Employer hiring surface under /v1/employer, plus the public company and job
    reads a company builds its own careers page from. Routes take an employer
    session Bearer token. Hiring data routes also accept a company API key
    (hf_…); mail and drafts are session only. Agents should prefer MCP at
    https://rest.hotfix.jobs/mcp, where they sign in with Hotfix. It is not a
    dump of rest.hotfix.jobs/openapi.json.
servers:
  - url: https://rest.hotfix.jobs
    description: Production
security: []
tags:
  - name: Applications
  - name: Jobs
  - name: Careers page
  - name: Interviews
  - name: Offers
  - name: Mail
  - name: Automations
  - name: Fields
paths:
  /v1/jobs/{job_id}:
    get:
      tags:
        - Careers page
      summary: Get a public job
      description: >-
        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.
      operationId: get_job
      parameters:
        - name: job_id
          in: path
          required: true
          description: The job's id, from search.
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicJob'
              example:
                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.

                  ## The role

                  You will own the platform that runs every Acme service.

                  Acme is an equal opportunity employer.
                direct_apply_supported: true
                is_active: true
                skills:
                  - Go
                  - Kubernetes
                yoe_min: 6
                education: null
        '404':
          description: No job with this id.
        '429':
          description: >-
            Too many calls from your address. Wait for the `Retry-After`
            seconds, then try again.
      security: []
components:
  schemas:
    PublicJob:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        company_name:
          type:
            - string
            - 'null'
        company_slug:
          type:
            - string
            - 'null'
        company_website:
          type:
            - string
            - 'null'
        company_logo_updated_at:
          type:
            - string
            - 'null'
          format: date-time
        summary:
          type:
            - string
            - 'null'
          description: Hotfix's short summary of the job, on list rows.
        description:
          type:
            - string
            - 'null'
          description: The job description in markdown. Only on Get a public job.
        requirements:
          type: array
          items:
            type: string
          description: What every applicant must show.
        department:
          type:
            - string
            - 'null'
        department_label:
          type:
            - string
            - 'null'
          description: The department as people read it.
        team:
          type:
            - string
            - 'null'
        team_label:
          type:
            - string
            - 'null'
        locations:
          type: array
          items:
            type: string
        countries:
          type: array
          items:
            type: string
        work_type:
          type:
            - string
            - 'null'
          description: '`remote`, `hybrid`, or `onsite`.'
        employment_type:
          type:
            - string
            - 'null'
        salary_min:
          type:
            - integer
            - 'null'
        salary_max:
          type:
            - integer
            - 'null'
        salary_currency:
          type:
            - string
            - 'null'
          description: The currency the job states. Never converted.
        skills:
          type: array
          items:
            type: string
        education:
          type:
            - string
            - 'null'
        yoe_min:
          type:
            - integer
            - 'null'
        posted_at:
          type:
            - string
            - 'null'
          format: date-time
        is_active:
          type: boolean
          description: False once the job is closed.
        apply_url:
          type:
            - string
            - 'null'
          description: Where applicants apply.
        is_promoted:
          type: boolean
          description: True while the job is Featured.
      additionalProperties: true

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.