Donut is a people-platform that runs inside Slack. It helps companies onboard new hires, build connections across teams, and recognize great work — through automated onboarding journeys, intros (peer matching), and shoutouts. Donut is used by HR, People Ops, and onboarding teams to give every new employee a warm, consistent start without manual coordination.

Donut's integration with Greenhouse Recruiting allows users to automatically import new hires from Greenhouse into Donut and enroll them into the right onboarding journeys. When a candidate accepts an offer in Greenhouse, Donut imports the new hire's details (name, email, start date), their job's department, office, and hiring team, and uses that data to auto-enroll them into onboarding programs and assign onboarding roles — so onboarding kicks off the moment a hire is finalized, with no manual data entry.

Configure the Greenhouse integration

Donut connects to Greenhouse using the Greenhouse Harvest v3 API with the OAuth 2.0 authorization-code flow. The person who connects the integration authorizes Donut from within Greenhouse, so no API key needs to be created or copied. The authorizing user must be a Greenhouse Site Admin with access to all of the organization's data (because Donut requests org-wide list permissions during authorization).

Prerequisites

  • A Donut account on a plan that includes the ATS / onboarding feature, with the Greenhouse integration enabled for your workspace.
  • A Greenhouse user with the Site Admin permission level and access to all data.

In Donut, navigate to the HRIS & ATS page and press the Connect HRIS or ATS button.

Donut HRIS and ATS page with Connect HRIS or ATS button

Click Connect Greenhouse. Donut redirects you to Greenhouse's authorization screen.

Connect Greenhouse button in Donut

On the Greenhouse authorization screen, review the permissions Donut is requesting and confirm you are signed in as a Site Admin. Click Authorize (or Allow) to grant access.

Greenhouse authorization screen for Donut

Greenhouse redirects you back to Donut. Donut validates the connection and begins the initial import. The Greenhouse connection card shows a status of ValidatedProcessing Greenhouse connection…Connected. Everything looks good once the first sync completes.

Donut Greenhouse connection card showing Connected status

Data Donut accesses (read-only)

Donut does not add, edit, or delete any data in your Greenhouse account. The integration is read-only and requests only list permissions on the following Harvest v3 resources:

Greenhouse resource Permission(s) requested Used by Donut for
Applications List applications Linking a new hire to their job and tracking offer/application status
Candidates List candidates New hire's name, email address(es), and title
Custom Fields List custom fields Reading the job's Employment Type field definition
Custom Field Options List custom field options Resolving Employment Type option values for auto-enroll rules
Departments List departments Auto-enrolling hires by department
Job Hiring Managers List job hiring managers Identifying the hiring manager on a job's hiring team
Job Owners List job owners Identifying recruiters, coordinators, and sourcers on a job's hiring team
Job Posts List job posts Job post information used alongside hiring team data for enrollment
Jobs List jobs Job name/status, hiring team, office and department associations
Offers List offers Detecting accepted offers and the hire's start date
Offices List offices Auto-enrolling hires by office/location
Sources List sources Where the candidate was sourced from
User Emails List user emails Resolving hiring-team member email addresses
Users List users Email addresses for hiring-team members so they can be assigned onboarding roles

Field mapping (Greenhouse → Donut)

Greenhouse field Donut field
Candidate first_name First name
Candidate last_name Last name
Candidate email_addresses Email
Candidate title Title
Offer starts_on Start date
Offer status (e.g., Accepted) Used to determine that a candidate is a confirmed new hire
Application status (in_process, hired, rejected, converted) Onboarding eligibility / status
Application source_id → Source name Source
Job name Job / role name
Job department_id → Department name Department (auto-enroll dimension)
Job office_ids → Office name Office / location (auto-enroll dimension)
Job custom field employment_type Employment type (auto-enroll dimension)
Job owners (recruiter, coordinator, sourcer) Recruiter, Coordinator, Sourcer onboarding roles
Job hiring managers Manager relationship in onboarding journeys (assigned via manager role settings, not via greenhouse_role)
User first_name / last_name / primary_email Hiring-team member identity used to assign onboarding roles
User email addresses (from User Emails endpoint) Resolving hiring-team member email addresses for onboarding role assignment

Use the Greenhouse integration

Once connected, the integration runs automatically — Donut keeps employee data up to date as new hires move through Greenhouse. The two most common workflows are below.

Auto-enroll new hires into onboarding journeys

After the integration is connected, Donut continuously imports candidates who have an accepted offer in Greenhouse and treats them as new hires. Admins set up auto-enroll rules in Donut that map Greenhouse attributes — department, office, employment type, and role — to specific onboarding journeys, so each hire is automatically enrolled into the right program when they're added in Greenhouse.

Donut auto-enroll rules configuration

Donut onboarding journey enrollment settings

Assign onboarding roles from the Greenhouse hiring team

Donut imports each job's hiring team from Greenhouse and can automatically assign onboarding roles based on the job posting's hiring manager. In an onboarding journey's role-selection settings, choose "Automatically assigned to this Greenhouse Role" and pick the Greenhouse role to map.

Donut onboarding journey role-selection settings showing Greenhouse role mapping

Additional resources

For additional information not covered here, reach out to Donut support at support@donut.ai or visit the Donut Help Center.

Frequently asked questions

"The Connect button sends me to Greenhouse but authorization fails." — The authorizing user must be a Greenhouse Site Admin with access to all data. If a non-Site Admin authorizes, the integration will enter an Error state.

"The connection shows an error after authorizing." — Donut validates all requested permissions after connecting. If any permission is missing, the integration enters an Error state indicating which permissions need to be granted. Re-connect with the correct Site Admin account to resolve.

"How often does Donut sync?" — Donut syncs with Greenhouse every 4 hours. New hires with accepted offers are also pushed in near real time, so onboarding enrollment typically begins within minutes of a hire.

"What happens if we disconnect Greenhouse?" — Disconnecting removes the integration and all auto-enrollment rules. No future hires will be auto-enrolled from Greenhouse. Any onboarding sessions and memberships that were already created remain active — people already enrolled stay enrolled. If you need data deleted, contact support@donut.ai.

"Can I reconnect after disconnecting?" — Yes. You can reconnect at any time by following the setup steps above. A new authorization is required.

"What happens if the connection expires?" — Donut automatically refreshes the connection using a refresh token. If the refresh token expires (after 24 hours of inactivity), you'll need to re-authorize by clicking Connect Greenhouse again.