back to blog

connect aperture with greenhouse

greenhouse stays your system of record. aperture attaches to a stage you already have, evaluates everyone who reaches it, and writes the rank back as a note and a filterable custom field.

harsh shroff 5 min read
the full setup on a greenhouse sandbox. the steps below follow the same order.

you will need permission to authorize an integration in greenhouse, and one active job with candidates actually in the pipeline.

set this up with an ai assistant

1

open integrations in aperture

in aperture, go to settings → integrations and pick greenhouse.

app.aperturehq.ai/settings/integrations

integrations

connect the system your pipeline already lives in. aperture reads the pipeline and writes its results back.

Greenhouse

Greenhouse

oauth service account

connected
Ashby

Ashby

two-way api key and webhook

connect
Lever

Lever

oauth

connect
Workday

Workday

enterprise, on request

connect
greenhouse connects over oauth, so there are no keys to copy by hand.
2

review the scopes and authorize

aperture shows every permission it requests before you leave the page. in greenhouse, choose authorize as a service account and click authorize.

app.greenhouse.io/oauth/authorize

aperture is requesting access

read jobs and departments

which role a candidate is in

read applications and candidates

the pool aperture ranks

read stages

so the trigger stage can be configured

write notes on candidates

where the result lands

write custom fields

so rank is filterable

authorizecancel
the read scopes let aperture see the pool. the write scopes let it send the answer back.

a service account belongs to the organisation rather than to one recruiter's login, so the connection survives that person changing roles or leaving.

3

wait for the sync

authorizing starts the sync. confirm it landed by opening team → departments in aperture and checking the counts against greenhouse.

app.aperturehq.ai/settings/integrations/greenhouse

initial sync

departments

4

active jobs

1

stages

6

applicants in pipeline

2
counts from the sandbox in the walkthrough. yours will be larger.
4

add the trigger stage

add an aperture stage to the job's pipeline in greenhouse, or attach aperture to a stage you already run. anyone moved into it is picked up automatically.

app.greenhouse.io/jobs/front-end-engineer/stages

interview plan

application review

recruiter screen

aperture

aperture

assessment typehiring intelligence suite

hiring manager

onsite

offer

most teams place it right after application review, where the volume is highest.
5

move candidates in

your normal workflow from here:

  • move the candidate into the aperture stage
  • confirm the send when greenhouse asks
  • aperture invites the candidate directly
  • repeat for everyone you want evaluated
6

read the results

aperture writes back in two places. a note carries the rank, score and a link to the full report, and the aperture rank custom field you can sort a large pipeline by.

app.greenhouse.io/people/priya

priya

note · aperture

aperture ranked this candidate 1 of the applicants in the pool with a score of 88. view the full report

application · custom fields

aperture rank1 of 3
the note carries the reasoning. the custom field carries the position.
app.greenhouse.io/jobs/front-end-engineer/candidates

candidate pool

1 of 4

priya

scored · note written

88
2 of 4

marcus

scored · note written

87
3 of 4

daniel

scored · note written

79
4 of 4

amara

scored · note written

71

scores never change retroactively. positions do, because a position is a comparison and the pool grew.

every new score re-sorts the pool and updates the notes already written.

ranks are pool-relative, a statement about this pool, for this role. how ranking works.

7

if something looks wrong

  • no data after authorizing: check it was a service account and every scope was granted.
  • a job is missing: the sync had not finished. re-check, then re-run it.
  • no link sent: confirm the candidate reached the aperture stage and the send was confirmed.
  • score in aperture, nothing in greenhouse: the write scopes were not granted. re-authorize.

building the greenhouse integration yourself? share this with your developers

the harvest api reference: the integration system user, api key handling, the webhook url, and exactly which endpoints aperture reads and writes.

read the technical docs

common questions

how long does the greenhouse integration take to set up?
a few minutes plus the initial sync. there are no keys to copy by hand, because greenhouse connects over oauth.
do i need to move my pipeline out of greenhouse?
no. greenhouse stays the system of record. aperture attaches to a stage you already have and writes its results back onto the candidate, so recruiters never leave greenhouse.
should i authorize aperture as a service account?
yes. a service account belongs to the organisation rather than to one recruiter's login, so the connection survives that person changing roles or leaving. greenhouse offers the choice during the authorization flow, and site admins can select it.
what permissions does aperture request in greenhouse?
read access to jobs, departments, applications, candidates and stages so it can see the pool, and write access to candidate notes and application custom fields so the rank and score can be sent back. without the write scopes aperture can evaluate the pool but has nowhere to publish the answer.
where does the result appear in greenhouse?
in two places. a note on the candidate carries the rank, the score and a link through to the full report, and the aperture rank custom field on the application carries the position on its own so a large pipeline can be sorted and filtered by it.
why did a candidate's rank change when their score did not?
ranks are pool-relative. a rank is a comparison against everyone else scored for that role, so adding a stronger candidate moves everyone below them down. scores never change retroactively; positions do.

greenhouse documentation

the official pages for the steps above. where they disagree with this guide, trust them. they are the source of truth for greenhouse's own screens.

that is the whole setup

every candidate who reaches the aperture stage is now evaluated automatically, and the rank comes back to greenhouse as a note and as a field you can sort the whole pipeline by. nothing else changes about how your team runs the pipeline.

stuck on a step?

email [email protected] with your workspace and the step you are on, and we will walk through it with you.