Connect your tools

Integrations

Everything lives in Settings → Integrations. Each card shows its status (On, Connected, Ready to Connect, Needs Setup or Coming Later) and one next step.

Google Calendar and Outlook Calendar

Calendars are personal: each interviewer connects their own from the account menu → My Calendar, picks Google or Outlook and approves access. That's it.

  • Interviews you're on are added to your calendar, and moved or removed when they're rescheduled or cancelled.
  • The calendar never invites anyone. Candidates still get Otter's invite email with a calendar file.
  • Otter reads only when you're busy (free/busy), never your other events' details.
  • Disconnect any time from My Calendar.

Job Boards and Google for Jobs

Open Settings → Integrations → Job Boards. Your feed is already live; copy the XML feed URL and send it once to each board.

  • Google for Jobs is automatic: public job pages carry JobPosting structured data and are in the sitemap.
  • XML feed: /careers/<workspace>/jobs.xml (Indeed format, read by Indeed, Glassdoor and LinkedIn Limited Listings). JSON: /careers/<workspace>/jobs.json.
  • Only open jobs are included (never an Internal job); changes appear within about a minute. Boards decide whether and when to list a job.
  • LinkedIn Limited Listings needs LinkedIn to approve your feed for your Company Page.

Slack and Microsoft Teams Alerts

Open Settings → Integrations → Slack (or Microsoft Teams). Create an incoming webhook in Slack (or a Teams workflow “Post to a channel when a webhook request is received”), paste the link, pick events and click Connect channel.

  • Events: new application, interview scheduled, candidate hired, and optionally stage changes.
  • Messages include the candidate's name, the job and an Open in Otter button. Never email addresses or phone numbers.
  • Send test posts one message so you can check the channel. Pause or remove a channel any time.

Webhooks for Zapier and Make

Open Settings → Integrations → Webhooks, paste a Zapier Catch Hook or Make Custom webhook URL, pick events and save. Click Send test so Zapier or Make can read a sample.

  • Events: application.created, application.stage_changed, interview.scheduled, interview.rescheduled, interview.cancelled, candidate.hired, candidate.rejected, referral.created, message.sent, message.received, approval.requested, approval.approved, approval.rejected.
  • Every request is signed: Otter-Signature: t=<unix>,v1=<hex> is HMAC-SHA256 of t.rawBody with the endpoint's signing secret (shown once when you add it).
  • interview.scheduled includes data.interview.kit (id, name, url) when the interview has an interview kit. The kit's questions stay in Otter (the link needs sign-in); fetch them with GET /api/v1/jobs/{id}/interview-kits.
  • interview.rescheduled adds data.interview.previous_starts_at and previous_ends_at; both interview events include status, starts_at and ends_at.
  • approval.* events include data.approval (kind job or offer, status, the steps with who decided and their comments). See Approvals.
  • Failed deliveries retry with backoff for about 9 hours. The Delivery Log shows each attempt and the response code.