Skip to content

The moment it happens

Hear when a candidate reaches Offer in Lever

You get an email the moment a candidate moves into the stage you care about.

Runs
The moment it happens
Apps
Lever
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: email me whenever a Lever candidate moves to the Offer stage, with their name, the role and who moved them.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

In Lever, a candidate moving from phone screen to onsite, or from final interview to offer, triggers real work for other people. The interviewers need calendars cleared, the coordinator needs to book travel, the finance partner needs to approve compensation. If the recruiter has to remember to tell each of them, steps get missed and a candidate waits through silence for days.

When Lever reports that a candidate changed stage, ClickRuntime checks whether the new stage is one you care about, such as Offer or an Interview stage, and ignores every other move. For the stages you chose, it emails you the candidate, the role and the stage they entered, so the right person can react the same day.

Hiring managers and coordinators who cannot watch the Lever board all day find this useful.

What you get out of it

  • Offers go out before candidates lose interest

    A candidate who has cleared the final interview and then hears nothing for a week may accept another offer. An email when they reach the offer stage keeps the next step from stalling.

  • Interviews are scheduled promptly

    Coordinators need notice as soon as someone advances. An immediate email means invitations go out while the candidate is still thinking about the role and availability is open. The candidate experience is better for it.

  • Only meaningful moves reach you

    Candidates move between stages constantly, and most changes are routine. Filtering to the stages you care about prevents the inbox noise that would train you to ignore these messages. Fewer notifications means each one gets read.

  • Approvals are requested in time

    An offer needs sign-off from finance or leadership. When the stage change email reaches them early, the approval does not hold up the candidate. That record also helps when planning future roles.

  • The hiring timeline can be reconstructed

    Each email is timestamped, so later you can see how long a candidate took between stages. That is useful when you review where the process is slow. It keeps the final steps from becoming a bottleneck.

How it works

What happens, step by step

  1. When a candidate moves stage in Lever, Lever tells ClickRuntime straight away.

  2. ClickRuntime checks whether the new stage is the one you care about, such as Offer, and ignores the rest.

  3. If it is, you get an email saying who moved, for which role and who moved them.

Before it runs live

  • Connect Lever
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Hear when a candidate reaches Offer in Leverjust nowSucceeded
Email · Tomás Reyes moved to OfferTomás Reyes (Senior Data Engineer) was moved to Offer by Robin Hale.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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 Lever steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
stage_change_alert.pyexample
from clickruntime import on_event, credentials, http, notify

TARGET_STAGE = "Offer"

def lever(path, **params):
    resp = http.get(f"https://api.lever.co/v1/{path}",
                    auth=(credentials.secret("LEVER_API_KEY"), ""), params=params)
    resp.raise_for_status()
    return resp.json()["data"]

@on_event
def handle(event):
    payload = event.json or {}
    if payload.get("event") != "candidateStageChange":
        return {"sent": False}
    data = payload["data"]
    stage = lever(f"stages/{data['toStageId']}")["text"]
    if stage != TARGET_STAGE:
        return {"sent": False, "stage": stage}
    opp = lever(f"opportunities/{data['opportunityId']}", expand="applications")
    posting = next((a.get("posting") for a in opp.get("applications", []) if a.get("posting")), None)
    role = lever(f"postings/{posting}")["text"] if posting else "unknown role"
    mover = lever(f"users/{data['userId']}")["name"] if data.get("userId") else "an automation"
    notify.email_me(f"{opp['name']} moved to {stage}", f"{opp['name']} ({role}) was moved to {stage} by {mover}.\n{opp['urls']['show']}")
    return {"sent": True}

FAQ

Common questions

Which stages can I watch?
Any stage in your Lever pipeline. Most people choose offer and one or two interview stages, but you can name any combination, including a stage like Hired if you want to start onboarding as soon as someone is marked as hired.
What does the email say?
It names the candidate, the role they applied for, the stage they moved from and to, and who made the change if Lever provides it. A link back to the opportunity in Lever is included so the reader can open the profile directly.
Does it notify me if a candidate is rejected or archived?
Moving to a rejected or archived state is a different event from changing stage, and it is not covered by default. If you want to hear when candidates are archived, for example to send a rejection note, you can add it as a second alert.
What permissions does it need?
read. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run for each event the app sends.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Hear when a candidate reaches Offer in Lever” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.