Skip to content

On a schedule

Get today's interview schedule each morning

Before your day starts, you have every Greenhouse interview scheduled for today in one email.

Runs
On a schedule
Apps
Greenhouse
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: every weekday at 8am, email me today's Greenhouse interviews with the time, candidate, job and interviewers, in time order.

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

On interview days, the schedule lives in several places at once: calendar invites, a Greenhouse interview plan, a Slack message from the coordinator. A hiring manager who has three candidates back to back wants one list showing who is coming, for which job, at what time and with which panel. Without it, people discover they have a 2 pm interview at 1:55 and open Greenhouse to find the candidate's resume while the candidate is already waiting.

Each morning, today's interviews are listed from Greenhouse and one email is sent with the candidate, the job, the time and the interviewers for each. It arrives before the day starts and is short enough to scan on a phone.

It is aimed at hiring managers, interviewers and coordinators, and anyone who needs to prepare the room, the panel or the questions.

What you get out of it

  • Interviewers arrive prepared

    With the candidate and job in front of them early, interviewers can read the resume and review the scorecard focus before the meeting rather than during the first minutes of it.

  • Fewer scheduling surprises

    The daily list exposes clashes and gaps, such as two panelists double-booked, in time to fix them instead of rescheduling a candidate at the last minute. Fixing a clash at 8 am is much easier than at 1:55 pm with the candidate in the lobby.

  • Coordinators get a single checklist

    The day's interviews become a checklist for rooms, video links and badges, which reduces the small errors that make candidates feel disorganized. Candidates who feel expected tend to speak more positively about the company afterward.

  • Better candidate experience

    Candidates notice when the panel knows who they are and what they applied for. That impression helps acceptance rates for strong candidates choosing between offers. Candidates who are comparing offers often decide on how organized the process felt, and a well-run panel is part of that impression.

  • No need to open Greenhouse first thing

    Managers who do not live in the recruiting tool get what they need delivered to their inbox, and the system is used less for lookups and more for decisions. That also saves those managers from remembering a password they use twice a month.

  • Calendars and Greenhouse stay consistent

    If an invite and the Greenhouse schedule disagree, the digest makes it visible early. A single dependable list drawn from the recruiting system is a good cross-check on what calendars say.

How it works

What happens, step by step

  1. Every weekday at 8am, ClickRuntime asks Greenhouse for today's scheduled interviews.

  2. You get one email listing each interview's time, the candidate, the role, the interview type and who is on the panel.

  3. If there are no interviews today, no email is sent.

Before it runs live

  • Connect Greenhouse

What you get

RunsOn a schedule
Get today's interview schedule each morningtoday, 9:00Succeeded
Email · Today's interviews (3)14:00 UTC Riya Shah - Senior Backend Engineer (System design) with Robin Hale, Dana Park

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

  • Run it at a different time, more or less often, or only on weekdays
  • 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.
today_s_interviews_digest.pyexample
from datetime import date, datetime, time, timezone
from clickruntime import on_trigger, credentials, http, notify

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):
    start = datetime.combine(date.today(), time.min, timezone.utc)
    end = datetime.combine(date.today(), time.max, timezone.utc)
    interviews = harvest("scheduled_interviews", starts_after=start.isoformat(), starts_before=end.isoformat(), per_page=500)
    lines = []
    for i in sorted(interviews, key=lambda i: i["start"]["date_time"]):
        app = harvest(f"applications/{i['application_id']}")
        cand = harvest(f"candidates/{app['candidate_id']}")
        who = ", ".join(p["name"] for p in i["interviewers"])
        lines.append(f"{i['start']['date_time'][11:16]} UTC  {cand['first_name']} {cand['last_name']} - "
                     f"{app['jobs'][0]['name']} ({i['interview']['name']}) with {who}")
    notify.email_me(f"Today's interviews ({len(lines)})", "\n".join(lines) or "No interviews today.")
    return {"interviews": len(lines)}

FAQ

Common questions

Does it include interviews that were cancelled?
Cancelled interviews are not listed. If an interview is rescheduled to another day, it appears on the digest for the new date, not the original. A candidate who reschedules simply moves to a different day's list.
Can each interviewer get only their own interviews?
Yes. Sending separate emails per interviewer is possible, so each person sees only their own schedule. It is a specific change that you can ask for and approve. Some teams send the whole list to coordinators and individual lists to panelists.
Is the time shown in my time zone?
Times follow the time zone set for the digest, so a distributed hiring team can receive the local times. State your preferred zone when setting it up. It is worth setting once, especially if panelists work in different cities.
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 runs (on a schedule). Checks that find nothing to do 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 “Get today's interview schedule each morning” from your assistant

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