Use case: Recruiting

Candidate threads and interviews, right in your ATS.

Recruiters email candidates from Gmail and Outlook and juggle interviewer calendars by hand. workwae brings those threads into your ATS and books interviews on real calendars, with the meeting link already on the invite.

interview.ts
// Find a slot every interviewer has free
const tz = "America/Chicago";
const { suggestions } = await workwae.availability.find({
  accountId: recruiter.accountId,
  attendees: ["maya@example.com", "devon@example.com"],
  start: "2026-11-02T00:00:00Z",
  end: "2026-11-07T00:00:00Z",
  durationMinutes: 45,
  timeZone: tz,
  workingHours: { start: "09:00", end: "17:00" },
});
// Book the slot the candidate picked, with a Zoom link
await workwae.calendarEvents.create({
  accountId: recruiter.accountId,
  calendarId,
  subject: "Interview: Sam Rivera",
  start: { dateTime: "2026-11-03T10:00:00", timeZone: tz },
  end: { dateTime: "2026-11-03T10:45:00", timeZone: tz },
  attendees: [
    { address: "sam@example.com" },
    { address: "maya@example.com" },
  ],
  onlineMeetingService: "zoom",
});
What you get

Everything a recruiter does in the inbox

Mail and calendar from the recruiter's own Google, Microsoft 365 or IMAP account, behind one API.

Candidate threads

List and read conversations as threads, oldest message first, and find a candidate's history with full-text search over subjects, addresses and stored bodies.

Mail in the product overview

The recruiter's own mailbox

Outreach and follow-ups go out from the recruiter's Gmail, Microsoft 365 or IMAP account, so replies land where they already work. Schedule sends for the candidate's morning.

Mail in the product overview

Templates with candidate fields

Keep outreach, scheduling and offer templates in Handlebars, shared by the team or bound to one recruiter. Content is rendered when a send is queued, so editing a template never changes scheduled mail.

Mail in the product overview

Free/busy across interviewers

One call returns each interviewer's busy times and the common free slots, within the working hours, slot length and time zone you choose.

Calendar in the product overview

Interviews with meeting links

Create the interview with a Teams or Meet link, or a Zoom or Webex meeting workwae creates. Moving the event moves the meeting; cancelling it deletes the meeting.

Meetings in the product overview

Responses and reschedules

Attendee responses and changes to the interview arrive as calendar_event webhooks that name the fields that changed, so the candidate's stage stays current.

Webhooks in the product overview
How it fits

From first email to booked interview

  1. Recruiters connect

    Each recruiter connects their mailbox and calendar from your ATS, or an administrator connects the team through Google Workspace or Microsoft 365.

  2. workwae keeps it current

    Candidate mail and calendars are synced and kept current with provider push, and every change reaches you as a webhook.

  3. Your ATS does the rest

    Attach threads to candidates by address, send from the recruiter's mailbox, and book interviews on the time everyone has free.

Early access

Give recruiters back the hours spent on email and calendars.

We are onboarding a small number of teams. Tell us what you are building.