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

# preview_offer

> The PDF create_offer would attach, for the same body. Nothing is saved or sent.



## OpenAPI

````yaml /openapi.json post /v1/employer/applications/{application_id}/offer/preview
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/employer/applications/{application_id}/offer/preview:
    post:
      tags:
        - Offers
      summary: preview_offer
      description: >-
        The PDF create_offer would attach, for the same body. Nothing is saved
        or sent.
      operationId: preview_offer
      parameters:
        - name: application_id
          in: path
          required: true
          description: Application UUID.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                subject:
                  type: string
                  description: >-
                    Optional. The email's subject. Blank uses your Offer
                    template's.
                body:
                  type: string
                  description: >-
                    Optional. The letter in markdown, as you'd send it. Blank
                    uses your Offer template. Tokens like {{first_name}} are
                    filled; {{pay}}, {{start_date}}, and {{respond_by}} are
                    filled from the fields below.
                pay:
                  type: string
                  description: >-
                    Optional. Pay as the letter should say it, like "$185,000 a
                    year". Required when the letter has {{pay}}.
                start_date:
                  type: string
                  description: >-
                    Optional. YYYY-MM-DD. Required when the letter has
                    {{start_date}}; written out as November 2, 2026.
                respond_by:
                  type: string
                  description: >-
                    Optional. YYYY-MM-DD, the date you'd like an answer by.
                    Required when the letter has {{respond_by}}. Text in the
                    letter, not an expiry.
      responses:
        '200':
          description: Success
          content:
            application/pdf:
              schema:
                type: string
                format: binary
      security:
        - ApiKey: []
        - BearerAuth: []
components:
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      description: >-
        Company API key minted at Settings → API. Prefix hf_. Accepted on hiring
        data routes. Not accepted on MCP.
    BearerAuth:
      type: http
      scheme: bearer
      description: Employer session JWT from Better Auth.

````

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