---
title: "Send a coding screen when a candidate enters an Ashby stage"
description: "Map an Ashby job and stage to a live Kendor screen. When an application enters that stage, the candidate gets the screen by email."
updated: 2026-10-06
canonical: https://kendor.io/docs/ashby/stage-triggers
---

# Send a coding screen when a candidate enters an Ashby stage
A stage rule tells Kendor which screen to send when an application enters an Ashby stage. Recruiters keep moving candidates in Ashby as usual; when an application lands in a stage with a rule, Kendor emails the candidate their screen and starts writing its status back to the application.

> **Before you start**
>
> - Ashby is connected and the **Webhook** row in **Setup** has a tick. See [Connect Ashby](/docs/ashby/connect-ashby).
> - The screen you want to send is live. Only live screens can be chosen.
> - You're an **Owner**.

## Add a stage rule

Open **Integrations**, choose **Manage** on the **Ashby** card, and go to **Stages that send a screen**.

1. In **Job**, pick an open Ashby job, or leave it on **any job**.
2. In **Stage**, choose a stage. For one job, the list shows that job's interview plan stages in order. For **any job**, it shows every stage name used across your open jobs.
3. In **Kendor screen**, choose one of your live screens.
4. Choose **Add rule**.

The rule appears as the stage, the job (or **any job**) and the screen it sends. Use **Remove** to delete a rule.

Live coding interviews can't be sent from Ashby. They're started from a session instead; see [Start a live coding interview](/docs/live-coding/start-a-live-coding-interview).

### One job or any job

- **One job** matches that job's exact stage.
- **Any job** matches a stage by name on every job, ignoring case. A rule for `Technical screen` fires on every job that has a stage called Technical screen.

When both could apply, the rule for the one job wins over the any-job rule.

## What happens when a candidate enters the stage

1. Ashby sends Kendor a signed stage-change webhook. Kendor checks the signature and answers straight away.
2. Kendor looks for a rule matching the application's job and new stage. No match, nothing happens.
3. Kendor reads the candidate's primary email address from Ashby and invites them to the screen, exactly as if you had invited them from Kendor.
4. The candidate gets Kendor's usual invitation email for that screen, from your organization, with the time limit and the date the invite expires.
5. Kendor writes `Kendor status` = `Invited` to the application in Ashby.

The candidate shows up in the screen's candidate list in Kendor with an **Ashby** mark (**Sent from Ashby**). From there it's an ordinary invite: reviewers work on it in Kendor, and Kendor keeps the Ashby fields up to date. See [What Kendor writes back to Ashby](/docs/ashby/fields-written-back).

The screen's own settings still apply. If the screen has an **Email domain allowlist** and the candidate's email is outside it, or the candidate already completed the screen and **Allow re-invite after completion** is off, Kendor sends no invite and leaves a note on the candidate in Ashby that starts `Kendor: no invite sent.` and gives the reason.

## Duplicates

An application gets one invite per stage. If Ashby delivers the same stage change twice, even at the same moment, only the first one sends an email; the repeat is ignored.

This also means moving an application out of a stage and back into it doesn't send the screen again. To send the email again, open the candidate in Kendor and choose **Send reminder**.

If the same candidate is invited to the same screen again from a different stage, Kendor refreshes their existing invite with a new expiry date and sends the email again, rather than creating a second invite.

## Cancelling an invite

Moving the candidate out of the stage in Ashby doesn't withdraw the invite. To stop it, open the candidate in Kendor and choose **Cancel invite**. The link stops working at once, and Kendor writes `Kendor status` = `Cancelled` to the application.

- You can only cancel an invite the candidate hasn't started.
- **Send reminder** revives a cancelled invite with a fresh expiry date, and the status goes back to `Invited`.
- Deleting the screen in Kendor marks its unstarted Ashby invites `Cancelled` too.

> **Note.** Removing a stage rule, or disconnecting Ashby, only stops new invites. Invites already sent stay valid.
