Skip to content

Hourly

Celebrate each new hire in Slack

When a candidate is marked hired in Greenhouse, the team hears about it in Slack within the hour.

Runs
Hourly
Apps
Greenhouse
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: every hour, check Greenhouse for candidates marked as hired and post a congratulations to #general with their name and the role they're joining.

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

A signed offer is the moment a recruiting team has been working toward for weeks, yet in many companies the news travels by whispers. The recruiter tells the hiring manager, the hiring manager mentions it in a one-to-one, and the people who will onboard the new hire, set up their laptop or plan their first week learn about it days late. Meanwhile the recruiters who closed the role get no visible credit.

Every hour, Greenhouse is asked for applications whose status changed to hired since the last check. Each one produces a Slack post naming the candidate, the job and the start date if it is recorded, so the announcement goes out on the same day the hire is marked.

It is especially useful for growing companies where IT, facilities and team leads depend on hearing about hires early, and for recruiting teams that like to celebrate wins publicly.

What you get out of it

  • Onboarding starts earlier

    IT, facilities and the hiring manager learn about the hire the same day, so equipment, accounts and a desk are ready before the first morning instead of being scrambled together on it.

  • Recruiters get visible credit

    A post in a shared channel shows who closed which role. That recognition costs nothing and keeps a recruiting team motivated through long searches with plenty of rejections along the way.

  • One source of truth for who is joining

    Instead of relying on hallway news, everyone reads the same message drawn directly from Greenhouse. Fewer mistakes about names, titles and start dates reach other teams. Mistakes in titles and spellings are caught once, in one place, instead of spreading.

  • Leaders see hiring momentum

    Executives and department heads watching the channel get a feel for how quickly roles are closing, without asking for a report or opening the recruiting dashboard. A single glance at the channel shows how many roles have closed this month.

  • No manual announcement to forget

    Recruiters are busy and the announcement is the first thing to slip after an offer is accepted. The check runs on its own, so a hire is never left unannounced.

How it works

What happens, step by step

  1. Every hour, ClickRuntime checks Greenhouse for candidates marked as hired since its last check.

  2. For each one, it posts a welcome message to your Slack channel with their name and the role they are joining in.

  3. Each hire is announced only once.

Before it runs live

  • Connect Greenhouse

What you get

RunsHourly
Celebrate each new hire in Slacktoday, 9:00Succeeded
Slack · #general🎉 Please welcome Riya Shah, who's joining as Senior Backend Engineer!

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 Greenhouse 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.
hires_announcement.pyexample
from datetime import datetime, timezone
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched

def harvest(path, **params):
    resp = http.get(f"https://harvest.greenhouse.io/v1/{path}",
                    auth=(credentials.secret("GREENHOUSE_API_KEY"), ""), params=params)
    resp.raise_for_status()
    return resp.json()

@on_trigger
def run(event):
    since = state.get("since") or datetime.now(timezone.utc).isoformat()
    started = datetime.now(timezone.utc).isoformat()
    announced = set(state.get("announced") or [])
    hired = [a for a in harvest("applications", status="hired", last_activity_after=since, per_page=100)
             if a["id"] not in announced]
    report_fetched(len(hired))
    if not hired:
        state.set("since", started)
        return {"summary": "Nothing new"}
    for a in hired:
        c = harvest(f"candidates/{a['candidate_id']}")
        notify.slack(f"🎉 Please welcome {c['first_name']} {c['last_name']}, who's joining as {a['jobs'][0]['name']}!",
                     channel="#general")
        announced.add(a["id"])
    state.set("announced", sorted(announced))
    state.set("since", started)
    return {"announced": len(hired)}

FAQ

Common questions

What counts as hired in Greenhouse?
An application is hired once it has been moved to the hired status after an accepted offer. Candidates who are only at the offer stage are not announced, which prevents posts about offers that might still fall through.
Will it post the same person twice?
The timestamp of the last check is saved, so each hire is reported once. Only applications that became hired since the previous run appear, and a person with two applications is announced only for the one marked hired.
Can I limit announcements to one department or office?
Yes. Filtering by job, department or office is a specific change, for instance engineering hires only to the engineering channel. Tell your AI assistant which jobs matter and approve the updated version. Narrower announcements also help companies with many offices.
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 each time it checks. Checks that find nothing new and stop right away aren't counted.
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 “Celebrate each new hire in Slack” from your assistant

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