> ## 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
> Product noun is jobs.
> MCP at https://rest.hotfix.jobs/mcp is the hiring contract for agents with a company API key.
> Do not invent unpublished REST, hiring stats, or webhooks.
> Do not mention Greenhouse, Ashby, Quick Apply, or claim.
> Creating a draft, offer, or booking link does not send email.

# Automations

> Fixed WHEN, IF, THEN. One default action branch. Starts paused. Never sends email.

An automation is a Fixed hiring flow for this company: **WHEN** a trigger fires, **IF** conditions hold, **THEN** run the actions on `branches.default`.

Automations are deterministic. Judgment lives in Agent chat, not in Automations. Automations do not burn Agent credits.

New automations start **paused**. Turn one on with [update\_automation](/reference/update-automation) and `status: active`. Actions never send email, create offers, or book meetings. `create_draft` only saves a letter. A person still hits **Send**.

Agents call the same operations on [MCP](/hiring-mcp).

## Seed the starting pack

[seed\_automation\_pack](/reference/seed-automation-pack) installs the default pack once per company, all paused. Call it again safely. If the pack is already installed, you get the current list.

## List and read

1. [list\_automations](/reference/list-automations) returns automations for this company. Filter with `status` (`active`, `paused`, `archived`) or `job_id`.
2. [get\_automation](/reference/get-automation) returns one automation, including trigger, conditions, and `branches.default`.

## Create an automation

[create\_automation](/reference/create-automation) needs `name`, `trigger`, and `branches`.

| Field             | Notes                                                                                                                                                                               |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `trigger`         | WHEN. Object with `type`. Event types include `application.confirmed`, `status.changed`, `interview.booked`, and `offer.accepted`. `schedule` needs `cron` and optional `timezone`. |
| `condition_group` | IF. Optional. Default is `and` with no conditions.                                                                                                                                  |
| `branches`        | THEN. Object with one key, `default`, whose value is the action list.                                                                                                               |
| `job_id`          | Optional. Null means company-wide.                                                                                                                                                  |
| `status`          | `active`, `paused`, or `archived`. Default `paused`.                                                                                                                                |

Actions you can put on `branches.default`: `set_status`, `set_assignee`, `clear_assignee`, `add_note`, `archive`, `restore`, `create_draft`.

## Update, archive, run

1. [update\_automation](/reference/update-automation) patches only the fields you send. Pass `clear_job: true` to drop the job scope.
2. [archive\_automation](/reference/archive-automation) archives one automation. Run history stays.
3. [run\_automation](/reference/run-automation) runs one automation now. Pass `application_id` when the flow needs an application snapshot.
4. [list\_automation\_runs](/reference/list-automation-runs) lists recent runs. Filter with `status`: `skipped`, `failed`, or `ran`.

## Internal tick is not public

`POST /v1/internal/automations/tick` is platform schedule plumbing. It is not on this hiring spec and not on MCP.
