The moment it happens
Tell hiring managers when candidates move stage
Hiring managers see in Slack when a candidate reaches the stages they care about.
- Runs
- The moment it happens
- Apps
- Ashby
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: when an Ashby application moves to Onsite or Offer, post the candidate, job and new stage to #eng-hiring in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Hiring managers carry their own deadlines, and they spend most of the day in meetings. A candidate who passes the phone screen needs a technical interview scheduled within days, or they will accept another offer. But the manager only learns the candidate moved forward when the recruiter mentions it in a one-on-one or when they happen to open Ashby. Good candidates cool off while the information waits in a pipeline view.
When a candidate's interview stage changes in Ashby, Ashby pings ClickRuntime with the details, which checks which stage the candidate entered and, if it is one you care about, such as Onsite or Offer, posts a message to Slack naming the candidate, the job and the new stage so the right people can act.
Companies with several open roles and different managers for each can route messages to separate channels.
What you get out of it
Interviews get scheduled while interest is high
A message that says a candidate reached the onsite stage lets the manager reserve time on the spot. Candidates respond better to quick scheduling, and fewer drift away in the gap.
Managers act on their own candidates
Because the alert names the job, each manager sees the movement relevant to their team. They do not need to open Ashby and filter the pipeline just to find out what changed.
Bottlenecks in the process show up
If candidates keep appearing in the same stage day after day, someone is slow to respond. The visible stream of stage changes makes that pattern obvious to the whole hiring team.
Recruiters send fewer status messages
The channel replaces dozens of small updates that recruiters send by hand each week. That time goes back to talking with candidates and improving the process. Recruiters can spend that time on candidate conversations and sourcing instead.
Late stages receive proper attention
By filtering to later stages only, the channel stays quiet during busy sourcing weeks and lights up when a decision is near. People pay attention because every message matters. The channel stays calm until a decision is close.
How it works
What happens, step by step
When an application changes in Ashby, Ashby tells ClickRuntime straight away.
ClickRuntime checks whether the candidate has reached one of the stages you chose, such as Onsite or Offer.
If so, a message goes to your Slack hiring channel with the candidate, the new stage and the job.
Before it runs live
- Connect Ashby
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Ashby steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, notify
STAGES = {"Onsite", "Offer"}
@on_event
def handle(event):
payload = event.json or {}
if payload.get("action") != "applicationUpdate":
return {"posted": False}
app = payload["data"]["application"]
stage = (app.get("currentInterviewStage") or {}).get("title")
if stage not in STAGES:
return {"posted": False, "stage": stage}
notify.slack(f"{app['candidate']['name']} moved to {stage} for {app['job']['title']}", channel="#eng-hiring")
return {"posted": True, "stage": stage}FAQ
Common questions
Can I be told only when someone reaches a specific stage?
Does it say who moved the candidate?
Will moving a candidate backward also trigger a message?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
See new Ashby applications in Slack
Each submitted application shows up in Slack with the candidate and job straight away.
See how it worksGet an email when an offer is made or someone is hired
You're told as soon as an offer is created in Ashby or a candidate is marked hired.
See how it worksPost new orders and sign-ups to Slack
When something happens in your shop, app or form, the details land in the right channel straight away.
See how it worksKeep exploring
Set up “Tell hiring managers when candidates move stage” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
