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

# Write-back Configs

> Easily set up custom rules that automatically write interview results back to your ATS, no developer required. Set a condition, pick the actions, and apply the rule workspace-wide or per agent.

<video src="https://storage.googleapis.com/heymilo-pub-docs/videos/Custom%20Write-back%20Configs.mp4" controls />

It runs after every completed and evaluated:

* Voice/Video interview
* Resume screen
* SMS screen
* Form

### Currently supported ATS providers

| Bullhorn | Avionté |
| :------- | :------ |
| ✅        | ✅       |

### What you can automate

| Action                                   | What it does                                                                                                                               | Bullhorn | Avionté |
| :--------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- | :------- | :------ |
| **Move Stage**                           | Moves the candidate to a specific stage in your ATS                                                                                        | ✅        | ✅       |
| **Write Note**                           | Posts a note to the candidate's profile. Supports rich formatting and variables like score, name, and report link on ATSs that support it. | ✅        | ✅       |
| **Set Custom Field**                     | Updates a custom field on the candidate record                                                                                             | ✅        | —       |
| **Save Tags**\*(default)\*               | Saves interview tags extracted by HeyMilo to the candidate record                                                                          | ✅        | ✅       |
| **Attach Interview Report**\*(default)\* | Attaches the HeyMilo Interview Report to the candidate record                                                                              | ✅        | ✅       |

**Default actions** (Save Tags, Attach Interview Report) are only available for Voice/Video interviews. They run automatically when toggled on, no condition needed.

### Where to set it up

You've got two options depending on how broad you want the rule to apply.

### Option 1: Per agent (per mapping)

Best when you want different rules for a specific role or posting. Overrides are applied at the **mapping level** — if an agent has multiple ATS job mappings, you can configure each one independently.

1. Open any agent and go to the **Integrations** tab

<Frame>
  <img src="https://mintcdn.com/heymilo/HYw76xDbeZ2pGyNB/images/Screenshot-2026-04-24-at-02.00.07.png?fit=max&auto=format&n=HYw76xDbeZ2pGyNB&q=85&s=a4d6623a2ca30349e4911f89645ac8bc" alt="Screenshot 2026 04 24 At 02 00 07" width="3316" height="856" data-path="images/Screenshot-2026-04-24-at-02.00.07.png" />
</Frame>

2. Find your connected ATS mapping and click the **configure** icon near the trash icon

3. The **Write-back Actions** panel slides open

<Frame>
  <img src="https://mintcdn.com/heymilo/URYPVupmMkGbRUM4/images/writeback-actions-panel.png?fit=max&auto=format&n=URYPVupmMkGbRUM4&q=85&s=403f2cb88d4986a48cebc8a1038b5086" alt="Write-back Actions panel" className="mx-auto" width="1024" height="603" data-path="images/writeback-actions-panel.png" />
</Frame>

4. If workspace-level rules already exist, click **Copy configurations** to use them as a starting point — you'll see a preview of the copied config before customizing.

5. Build your rule and save. Changes only affect this mapping — all other agents continue using workspace defaults.

<Info>
  Per-agent rules override workspace-wide rules for that mapping. When configuring at this level, the **Save Tags** action shows the actual tags configured for that specific interviewer — unlike workspace level, where tags vary per agent.
</Info>

#### Reverting or stopping write-backs for a mapping

Once you've set per-agent overrides, toggling off **Writeback actions enabled** opens a dialog with two options:

<Frame caption="Pause custom writeback actions — choose to fall back to workspace defaults or stop all write-backs entirely.">
  <img src="https://mintcdn.com/heymilo/SJ7Ewa9zbllR0zAP/images/writeback-pause-dialog.png?fit=max&auto=format&n=SJ7Ewa9zbllR0zAP&q=85&s=d18eedf0636eba726d6ba713c45686b0" alt="Pause custom writeback actions dialog with Use workspace defaults and Stop all writeback options" className="mx-auto" width="1024" height="562" data-path="images/writeback-pause-dialog.png" />
</Frame>

| Option                     | What it does                                                                                             |
| -------------------------- | -------------------------------------------------------------------------------------------------------- |
| **Use workspace defaults** | Your custom actions stop, but workspace-level default actions continue to run for this job's candidates. |
| **Stop all writeback**     | No writeback actions will run for this job at all — including workspace defaults.                        |

### Option 2: Workspace-wide

Sets a default rule that applies across every posting on that ATS connection.

1. Go to **Integrations → ATS** in workspace settings

<Frame>
  <img src="https://mintcdn.com/heymilo/HYw76xDbeZ2pGyNB/images/Screenshot-2026-04-24-at-02.06.55.png?fit=max&auto=format&n=HYw76xDbeZ2pGyNB&q=85&s=72c7414be253bf438771c2517f300c65" alt="Screenshot 2026 04 24 At 02 06 55" width="3442" height="1090" data-path="images/Screenshot-2026-04-24-at-02.06.55.png" />
</Frame>

2. Select your Bullhorn or Avionté connection
3. Scroll to **Advanced Settings**

<Frame>
  <img src="https://mintcdn.com/heymilo/HYw76xDbeZ2pGyNB/images/Screenshot-2026-04-24-at-02.08.30.png?fit=max&auto=format&n=HYw76xDbeZ2pGyNB&q=85&s=300ef09bb1a3efe51167efe803ff68c4" alt="Screenshot 2026 04 24 At 02 08 30" width="3310" height="1384" data-path="images/Screenshot-2026-04-24-at-02.08.30.png" />
</Frame>

4. Build your rule and save

### Building a rule

For Voice/Video interviews, the builder has two parts: **default actions** and **conditional rules**. For Resume, SMS, and Form, only conditional rules are available.

### Default actions (Voice/Video only)

These sit at the top of the Voice/Video section and run automatically after every interview. No condition needed, just toggle on or off.

<Frame>
  <img src="https://mintcdn.com/heymilo/HYw76xDbeZ2pGyNB/images/Screenshot-2026-04-24-at-02.12.20-2.png?fit=max&auto=format&n=HYw76xDbeZ2pGyNB&q=85&s=1d6328eaeef92ccb09910d0bd39fc661" alt="Screenshot 2026 04 24 At 02 12 20" width="3196" height="1732" data-path="images/Screenshot-2026-04-24-at-02.12.20-2.png" />
</Frame>

* **Save Tags**: saves interview tags extracted by HeyMilo to the candidate record
* **Attach Interview Report**: attaches the HeyMilo Interview Report to the candidate record

### Conditional rules

Each rule has two parts.

<Frame>
  <img src="https://mintcdn.com/heymilo/HYw76xDbeZ2pGyNB/images/Screenshot-2026-04-24-at-02.15.20-1.png?fit=max&auto=format&n=HYw76xDbeZ2pGyNB&q=85&s=0f09ce0492affb63b533b54227a7941f" alt="Screenshot 2026 04 24 At 02 15 20" width="3120" height="1066" data-path="images/Screenshot-2026-04-24-at-02.15.20-1.png" />
</Frame>

**1. A condition** *(optional)*

Choose what HeyMilo should check before running the action. Examples:

* Interview Score is at least 80
* Candidate passed
* A specific evaluation criterion meets a threshold

If you skip the condition, the action runs after every interview.

**2. One or more actions**

Pick from the action list (only actions supported by your connected ATS will appear). You can add as many as you need.

**Example**

**If** Interview Score is at least 80 → **Move** to Shortlisted **+ Write** a custom note with the score and report link

You can stack multiple rules with different conditions to route candidates automatically. For example, one rule for high scorers and another for low scorers.

#### Write Note — where the note is posted

When adding a **Write Note** action, you choose where in the ATS the note is written:

| Target                           | What it means                                                                                                                                                    |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Candidate**                    | Written to the candidate's global profile — visible across all jobs, with no reference to which role triggered it.                                               |
| **Job Submission / Application** | Written to the specific application for this job. The note appears under both the job's notes and the candidate's notes, so you can see which role it came from. |

The label ("Job Submission" in Bullhorn, "Application" in Avionté) is shown using the terminology specific to your connected ATS. You can enable one or both targets.

<Frame caption="Write Note — select Job Submission, Candidate, or both as the target.">
  <img src="https://mintcdn.com/heymilo/SJ7Ewa9zbllR0zAP/images/writeback-write-note-target.png?fit=max&auto=format&n=SJ7Ewa9zbllR0zAP&q=85&s=95a878668685f3c08d5279062ded5f51" alt="Write Note target selector showing Job Submission and Candidate options" className="mx-auto" width="1024" height="579" data-path="images/writeback-write-note-target.png" />
</Frame>

#### Using variables in notes

Inside any note, you can inject dynamic values using the variable picker. Click any variable button above the note editor (e.g. **Report URL**) or click **See all available data** to browse the full list. The variable appears as a pill inline — hover it to see what it resolves to. The **Preview** section below the editor shows exactly what the note will look like when posted.

Available variables include: candidate name, interview score, report URL, interview ID, resume link, and more. Only variables available for that interview type are shown.

<Frame caption="Variable inserted inline with live Preview showing the resolved value.">
  <img src="https://mintcdn.com/heymilo/SJ7Ewa9zbllR0zAP/images/writeback-note-variables.png?fit=max&auto=format&n=SJ7Ewa9zbllR0zAP&q=85&s=366eec18e2c89331d937091228cee6f6" alt="Note editor with Report URL variable pill and live preview" className="mx-auto" width="1024" height="504" data-path="images/writeback-note-variables.png" />
</Frame>

**Set Custom Field (Bullhorn only):** When you add this action, pick the Bullhorn custom field you want to update, then choose the value to send — a custom value, a recommended value, or any HeyMilo data point (score, report link, etc.). You can map multiple fields in a single action.

#### Move Stage — ATS-specific selection

Stage selection varies by ATS:

* **Bullhorn**: single dropdown — pick the stage directly.
* **Avionté**: three dropdowns — select category, then pipeline, then stage.

The builder shows the correct number of dropdowns automatically based on your connected ATS.

### Saving your config

The builder validates everything before save:

* **Green "Ready to save"** = good to go
* **Amber warning** = something is incomplete (the builder tells you exactly what)

A single save covers all interview types at once.

### Common use cases

* Auto-advance top scorers to the next stage
* Auto-route low scorers to a rejected pipeline
* Always write the interview score and report link to the candidate's profile
* Save extracted skills as tags on the candidate record
* Attach the full HeyMilo Interview Report for compliance and reference

### Additional resources

For additional information not covered here, reach out to [support@heymilo.ai](mailto:support@heymilo.ai).
