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.
Candidate Scheduling Links
On a candidate profile, open Schedule → Let Candidate Pick, or use {{scheduling_link}} in an email. See Candidate self-scheduling.
- Only times inside every interviewer's working hours, clear of their Otter interviews, are shown.
- With calendar sync connected, their Google or Outlook busy times are skipped too. Without it, links still work.
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 oft.rawBodywith the endpoint's signing secret (shown once when you add it). interview.scheduledincludesdata.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 withGET /api/v1/jobs/{id}/interview-kits.interview.rescheduledaddsdata.interview.previous_starts_atandprevious_ends_at; both interview events includestatus,starts_atandends_at.approval.*events includedata.approval(kindjob or offer,status, thestepswith 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.