Superhuman Docs is an AI-native collaborative workspace where teams write, track projects, and build interactive workflows together.

Superhuman's integration with Greenhouse Recruiting allows users to streamline their pipeline with job status, prospect and candidate information, and offer tracking in a single doc. Any changes made to the doc automatically sync to Greenhouse.

Configure the Superhuman Docs Greenhouse Pack integration

Before you begin

  • The Greenhouse user who authorizes the connection must be a Site Admin. Every table in the Pack reads from a Harvest v3 list endpoint, and list endpoints only return data to Site Admin users, so a connection authorized by anyone else will produce empty tables and permission errors.
  • You need edit access to the Superhuman doc you want to connect.

Step 1 — Add the Greenhouse Pack to your doc

To use the Greenhouse Pack, you'll first have to add it to your doc. Just follow the steps below to do so:

  • Within your doc, click Insert in the upper right corner.
  • Type "Greenhouse" in the search bar, and choose Greenhouse from the results.
  • A window will open with more info about the Pack. Click Add to doc in the upper right.

Greenhouse Pack details window with Add to doc button

Step 2 — Connect your Greenhouse account

The Pack uses the OAuth 2.0 authorization code flow. You are never asked for an API key, and no credential is stored in your doc.

In the Pack panel, click Connect account (you are also prompted for this the first time you insert a table or formula).

A Greenhouse window opens at auth.greenhouse.io and shows the permissions the Pack is requesting. Review them, then sign in with your Greenhouse Recruiting credentials.

Greenhouse shows the requested permissions again, together with a checkbox for how to authorize the integration. Choose one:

Authorize using a service account — Greenhouse creates an organization-level service account that owns the connection. It has no username or password, it persists until a permissioned user disconnects it, and Greenhouse attributes the Pack's actions to it. This option is only offered when the person authorizing is a Site Admin. We recommend it, because the connection then survives any change to an individual's Greenhouse account.

Authorize without a service account — the connection is tied to your own Greenhouse user, and the Pack's actions appear in Greenhouse as performed by you.

For more on the two methods, see Greenhouse's Connect to Harvest v3 partner integrations.

Click Authorize.

You are returned to your doc, and the account appears in the Pack panel.

Pack panel showing the connected Greenhouse account

Pack panel with connected account details

Connected Greenhouse account confirmation screen

Step 3 — Confirm the connection

The connection is named after your Greenhouse job board company name, so you can tell several Greenhouse accounts apart at a glance in the same doc. If the Pack cannot read your job boards, the connection is still created and simply appears as "Greenhouse".

Step 4 — Browse the building blocks

Now that you've added the Greenhouse Pack to your doc, you can browse the available building blocks by following these steps:

  • Click on Insert in the upper right corner of your doc.
  • Select Packs.
  • Under Installed Packs, select Greenhouse.
  • Scroll through the Building blocks tab to see all the ways you can start using the Pack.

Building blocks tab showing available Greenhouse Pack components

Greenhouse Pack building blocks list

Greenhouse Pack building blocks detail view

Reconnecting

If a connection stops working — for example, tables that used to sync now return an error — reopen the Pack panel and click Reconnect on the Greenhouse account. Re-authorizing as a Site Admin restores access without changing anything in your doc; existing tables and columns are preserved.

What syncs into your doc

Eight tables. Each one is added separately, has its own filters, and refreshes on its own schedule.

Custom fields arrive as columns. Whatever you have configured on your hiring plan appears automatically — there is nothing to map.

Table What it contains Filters
Jobs Status, department, office, openings, and the hiring team — managers, recruiters, coordinators, sourcers Created date, updated date, status, office, department, confidential
Job openings Each opening on a job, with its open/closed state and close reason Job list (required), status
Candidates Contact details, company and title, source, referrer, tags, attachments, and the candidate's applications Created date, updated date, job, job list, application status, Greenhouse URL
Applications Current stage, status, source, referrer, recruiter, coordinator, and your application question answers Created date, status, job, job list, Greenhouse URL
Interviews Scheduled interviews with the interview kit and the full panel, including each interviewer's RSVP Start date, end date, created date, updated date
Offers Start date, status, opening, and your compensation custom fields Created date, status
Approval flows Approval groups and approvers for job openings and candidate offers Job list, offer list, approval type, approval status
Tags Every candidate tag in your organization

The Candidates and Applications tables also take an optional Greenhouse URL — set it to your own Greenhouse address (for example https://acme.greenhouse.io/) so the links in synced rows open in your instance. Leave it blank and links point at https://app.greenhouse.io.

A few filter values differ from the wording you see elsewhere in Greenhouse, so the Pack accepts the names your doc formulas are most likely to use:

  • Application status is active, converted, hired or rejected. An application that Greenhouse reports as in_process syncs as active.
  • Offer status is unresolved, accepted, rejected or deprecated. An offer that Greenhouse reports as Created syncs as unresolved.
  • The Offers table syncs only the current version of each offer, not its full version history.
  • Job openings are stored with an open boolean; the Pack also fills a status column with open or closed so both styles of filter work.

Filter list showing application and offer status options

Use the Superhuman Docs Greenhouse Pack integration

Once the Pack is connected, three kinds of building block are available from Insert > Packs > Greenhouse.

Column formats turn a pasted Greenhouse link into a live row of data:

Format Paste this
Candidate https://app.greenhouse.io/people/[id]
Application https://app.greenhouse.io/people/[id]?application_id=[id]
Job https://app.greenhouse.io/sdash/[id]

Formulas pull live data into a single cell, without adding a whole table:

Formula What it returns
Candidate(id, [greenhouseUrl]) One candidate, looked up by email address, profile URL or candidate ID
Application(url) One application, by URL or application ID
Applications() Applications in your account
Job(url) One job, by URL or job ID
Jobs() Jobs in your account
ScheduledInterviews(applicationId) The scheduled interviews on an application, with the panel and each interviewer's RSVP
ScoreCards(applicationId) The scorecards submitted on an application, with the interview, stage, overall recommendation and notes

Actions write back to Greenhouse. Attach them to a button in your doc, or to an automation so they run on a schedule or when a row changes.

Scenario 1 — Build a hiring pipeline doc

  • Insert the Jobs table and filter it to status = open.
  • Insert the Applications table. In the Job filter, paste the URL of the job you are tracking, or use Job list to track several at once.
  • Insert the Candidates table with the same job filter, so every applicant's contact details, attachments and tags sit next to their application.
  • Add the Interviews and Offers tables if you want the schedule and offer status in the same doc.

The tables refresh on their own schedule, and you can refresh any of them on demand from the table's sync settings.

Hiring pipeline doc showing Jobs, Applications, and Candidates tables

Scenario 2 — Add a sourced person as a prospect

  • Add a button to your doc and set its action to CreateProspect.
  • Map the button's inputs to your columns: first name and last name are required; email, company, title and referring user are optional.
  • Click the button. The prospect is created in Greenhouse and appears the next time the Candidates table syncs.

Use CreateCandidate instead when the person is applying to a specific job — it takes the job URL or job ID as an extra input.

Button configured with the CreateProspect action

Scenario 3 — Credit a referral

Both CreateCandidate and CreateProspect accept an optional referring user, given either as a Greenhouse user email address or a Greenhouse user ID. That person must already exist as a referrer in Greenhouse. If they don't, the action fails with a message saying so — ask a Greenhouse Site Admin to add them as a referrer, or leave the field blank.

Scenario 4 — Tag candidates from your doc

  • Insert the Tags table to see every candidate tag in your organization along with its ID.
  • To create a new tag, run CreateTag with the tag name. Tag names must be unique.
  • To apply a tag, run AddTagToCandidate with the candidate ID and the tag ID.

Tags table with CreateTag and AddTagToCandidate actions

Scenario 5 — Move an application to the next stage

  • Add a button to your Applications table and set its action to PushApplicationForward.
  • Map the application ID and the ID of the job the application belongs to.
  • Click the button. The application advances to the next interview stage of that job, in the order the stages are arranged on the job's interview plan.

The action tells you when it can't move an application: when the application isn't currently on an interview stage, when it isn't on a stage of the job you named, or when it is already on the last stage.

PushApplicationForward action configured on a button

Common questions

My tables are empty, but the connection was created successfully. Harvest v3 only returns list data to Site Admin users. Reconnect the Pack and complete the authorization signed in as a Greenhouse user with the Site Admin role.

A sync failed with a permissions error. This means the account that owns the connection can't read that resource. Permissions are fixed at the moment you authorize, so widening a user's Greenhouse role only takes effect after you reconnect the Pack.

My custom fields aren't showing up as columns. Custom field columns are added when the table's schema is built. Reopen the table's sync settings so the schema is rebuilt, and confirm the fields exist on the hiring plan for the object type in question (job, opening, application, candidate or offer).

The links in my rows point at the wrong Greenhouse instance. Set the optional Greenhouse URL filter on the Candidates and Applications tables to your own Greenhouse address, for example https://acme.greenhouse.io/.

Who shows up as the actor in Greenhouse when an action runs? It depends on the authorization method you chose in Step 2. If you authorized using a service account, actions appear as performed by that service account. If you authorized without one, they appear as performed by your own Greenhouse user. Harvest v3 removed the per-call "on behalf of" user, so this can't be set per action.

Additional resources

For additional information not covered here, reach out to care@superhuman.com.

Contact Superhuman Support, or reach out to your Superhuman contact. If your tables are empty, include three things and we can usually resolve it in one reply: the Greenhouse account name, which tables are empty, and whether the Greenhouse user who authorized the connection is a Site Admin.