Skip to content
Skip to main content

Build an interview scheduling pipeline

Interview scheduling is a coordination nightmare. Recruiters cross-reference interviewer calendars by hand, candidates wait days for a confirmed slot, and when the call finally happens nobody records it consistently. The debrief devolves into “I think they said something about distributed systems” because the notes are incomplete or missing entirely.

This recipe builds a pipeline that removes all of that. Candidates pick their own slot from a scheduling page, Scheduler distributes the load across your panel with round-robin, every booking gets a conferencing link, and Notetaker joins each call. After the interview, a webhook delivers a structured transcript, summary, and action items mapped to your hiring scorecard.

candidate visits scheduling page ─▶ Scheduler picks interviewer (max-fairness or max-availability)
event created on interviewer's calendar with conferencing link
booking.created webhook ─▶ create record in ATS
interview happens, Notetaker joins
notetaker.media webhook ─▶ download transcript + summary + action items
attach to candidate's ATS record

By the end you’ll have a Configuration with round-robin distribution, automatic conferencing (Google Meet, Microsoft Teams, or Zoom), Notetaker on every call, a scheduling page (Nylas-hosted or embedded), and webhook handlers wired into your ATS.

Make sure you have the following before starting this tutorial:

  • A Nylas account with an active application
  • A valid API key from your Nylas Dashboard
  • At least one connected grant (an authenticated user account) for the provider you want to work with
  • Node.js 18+ or Python 3.8+ installed (depending on which code samples you follow)

You also need the following for this tutorial:

  • Connected grants for each interviewer on your hiring panel, each with calendar access
  • A conferencing provider configured for at least one grant (Google Meet, Microsoft Teams, or Zoom). See Adding conferencing to bookings for setup.
  • Notetaker enabled on your Nylas plan
  • A publicly accessible HTTPS endpoint to receive webhook notifications (use VS Code port forwarding or Hookdeck for local development)

Create a round-robin scheduling configuration

Section titled “Create a round-robin scheduling configuration”

Create a Configuration that defines your interview panel, meeting duration, and round-robin distribution method.

A few things to note:

  • availability_method: "max-fairness" distributes interviews evenly. Scheduler assigns candidates to whichever interviewer was booked least recently. If Sarah conducted the last two interviews, Marcus or Priya gets the next one.
  • {{invitee_name}} is a template variable. Scheduler replaces it with the candidate’s name from the booking form, so events show “Interview with Dana Chen” instead of a generic title.
  • Each participant needs both availability.calendar_ids (calendars to check for conflicts) and booking.calendar_id (calendar to create the event on).

Choose between max-fairness and max-availability

Section titled “Choose between max-fairness and max-availability”

Scheduler offers two round-robin strategies:

  • max-fairness keeps the interview count balanced. Good for teams where equal distribution matters. The tradeoff is fewer time slots shown to candidates, because Scheduler only offers times when the least-booked interviewer is free.
  • max-availability shows the most possible time slots by assigning the interview to whichever interviewer is free at the chosen time. High-volume recruiting teams tend to prefer this because candidates see more options and book faster.

To switch, change availability_method to "max-availability".

Update the Configuration to attach automatic conferencing and enable Notetaker.

The custom instructions make a real difference for hiring workflows. Generic summaries are too vague for interview debriefs. By telling Notetaker to focus on technical skills and follow-up items, you get output that maps directly to your hiring scorecard.

With the Configuration ready, give candidates a way to book. Nylas supports two approaches.

Add a slug to your Configuration and Nylas hosts the page at book.nylas.com/<slug>. No frontend work required.

Your scheduling page is now live at https://book.nylas.com/interview-engineering-team. Drop that link into recruiter emails, your careers page, or your ATS’s candidate communication templates.

Embed the scheduling UI directly in your careers site using the <nylas-scheduling> web component.

The component handles date selection, time slots, the booking form, and confirmation. Notetaker consent and round-robin settings apply automatically. For styling options, see Customize Scheduler.

Subscribe to booking.created, booking.cancelled, and notetaker.media so your system tracks the full interview lifecycle.

When a candidate books, Nylas sends a booking.created notification with the event details:

Build a handler that routes booking events to your ATS:

Retrieve interview recordings and transcripts

Section titled “Retrieve interview recordings and transcripts”

After each interview ends, Notetaker processes the recording and sends a notetaker.media webhook. The payload includes download URLs for the recording, transcript, summary, and action items.

Add a notetaker.media handler to the same webhook server:

  • Round-robin doesn’t guarantee strict alternation. Max-fairness counts bookings per Configuration — not across Configurations. If Sarah is on two interview panels, her total load can still skew. If one interviewer blocks every Friday, Friday candidates never get assigned to her. Calendar hygiene matters.
  • Notetaker times out at the lobby. The bot joins as a non-signed-in participant. If nobody admits it within 10 minutes, it gives up with failed_entry and you lose the recording. For automated pipelines, configure: Google Meet “Anyone with the link can join”; Teams “Anonymous users can join”; Zoom waiting room disabled.
  • Don’t ship without an automated media download. Nylas deletes media after 14 days. Hiring cycles often run longer. Build a download pipeline that triggers on notetaker.media and stores files in your own infrastructure — don’t rely on Nylas-hosted URLs for long-term access.
  • There’s no in-place reschedule. When a candidate cancels, Scheduler fires booking.cancelled and removes the event. The candidate has to rebook. Link ATS records by the candidate’s email address so cancel-then-rebook flows still tie back to the same person.
  • Recording consent is your problem. The show_ui_consent_message flag and the in-meeting chat message are informational, not legal consent mechanisms. Some jurisdictions require explicit opt-in before recording. Get this reviewed by counsel before you go live.
  • Zoom round-robin under a single grant has gotchas. Restrictive Zoom account settings can block participants from joining meetings created by a different account. See Zoom troubleshooting for workarounds.
  • Custom Notetaker instructions move the needle. Generic summaries are useless for hiring debriefs. Tell Notetaker exactly what to extract — technical skills demonstrated, areas to probe in the next round, references to check. The output then maps directly to your scorecard.