Connecting JobCannon to Greenhouse
Setup guide for the JobCannon Greenhouse assessment partner integration: credentials, the four endpoints, sandbox testing, and the errors worth knowing in advance.
JobCannon is a Greenhouse assessment partner. Greenhouse calls JobCannon to order an assessment; JobCannon emails the candidate, hosts and scores the assessment, then notifies Greenhouse and serves the result when Greenhouse asks for it.
Quick reference
| Property | Value |
|---|---|
| Auth method | HTTP Basic (credentials JobCannon issues to your org) |
| Base URL | https://jobcannon.io/api/integrations/greenhouse |
| Vendor spec | Greenhouse Assessment Partner API |
| Result delivery | JobCannon PATCHes the callback_url Greenhouse supplied; Greenhouse then GETs test_status |
| Sandbox | Yes — a separate credential flagged sandbox |
| Retry on failed callback | 5 attempts, backoff 10 min → 30 min → 2 h → 6 h |
Use the apex host. https://www.jobcannon.io/... returns 401 even with a correct credential: the www host answers with a 308 to the apex, and a client drops the Authorization header across an origin-changing redirect. The credential is fine; the host is not.
Endpoints
| Endpoint | Method | Purpose |
|---|---|---|
/api/integrations/greenhouse/assessment/list_tests | GET | The assessments your org can order |
/api/integrations/greenhouse/assessment/send_test | POST | Order one for a candidate |
/api/integrations/greenhouse/assessment/test_status | GET | Fetch status and result |
/api/integrations/greenhouse/assessment/response_error | POST | Report an error back to us |
Prerequisites
- Greenhouse admin access — Settings → Integrations
- Credentials from JobCannon (below)
- Greenhouse's own spec: https://developers.greenhouse.io/assessment-partner-api.html
Step 1: Request credentials
Email partners@jobcannon.io with your organisation name, the admin address to send credentials to, and whether you want to start in sandbox. We issue a Basic Auth username and password scoped to one organisation.
Credentials are per-organisation, not per-user. Store them wherever you keep your other integration secrets — they are not recoverable from the JobCannon dashboard, they are reissued.
Step 2: Register JobCannon in Greenhouse
In Greenhouse, Settings → Integrations → Assessment Partners, add a partner with:
- Partner name: JobCannon
- API endpoint:
https://jobcannon.io/api/integrations/greenhouse - Basic Auth username / password: as issued
- Sandbox: on, if you were issued sandbox credentials
Greenhouse verifies the connection by calling list_tests. A successful response returns the 42 hire-eligible assessments; if you see zero, the credential authenticated against an org with no catalogue access — tell us rather than re-registering.
Step 3: Attach an assessment to a stage
Open a job, pick the stage, add an Assessment step, choose JobCannon, choose a test. Delivery can be automatic on stage entry or triggered by a recruiter.
Step 4: Run it in sandbox
- Create a test candidate on the job, with an address you control.
- Advance them into the stage. Greenhouse calls
send_test. - JobCannon emails that address a link.
- Complete the assessment.
- JobCannon scores it, then PATCHes the
callback_urlGreenhouse passed in step 2 — with no body, per Greenhouse's spec. - Greenhouse calls
test_status. JobCannon answers with the result.
Steps 5 and 6 are driven by an hourly flush, so a completed assessment can take up to an hour to appear in Greenhouse. That is expected, not a fault.
Step 5: Go live
Ask partners@jobcannon.io for production credentials, swap them in Greenhouse, turn sandbox off. Send one real assessment and confirm the scorecard populates before you point a live pipeline at it.
Common errors
**401 on every call** — copy-paste error, a trailing newline, or the www host. Check the host first; it is the more common of the two and the least obvious.
Scorecard stays empty after the candidate finishes — the candidate's email in Greenhouse must match the address the assessment was completed under. JobCannon links a result to a session by email plus test slug; a candidate who completed it under a personal address will not link. Fix the email in Greenhouse and re-send.
Callback PATCH failing — retried five times with backoff (10 min → 30 min → 2 h → 6 h). After that the session stays complete and stops retrying; the result is not lost and we can re-enqueue it. Email support@jobcannon.io with the candidate and test name.
**send_test rejected as missing partner_test_id** — the stage was configured with a free-text field rather than a test picked from the JobCannon list. Re-create the assessment step on the stage.
Verification checklist
- ☐Credentials saved in Greenhouse, apex host, no trailing whitespace
- ☐
list_testsreturned a non-empty catalogue - ☐Sandbox toggle matches the credentials you were issued
- ☐One assessment configured on a job stage
- ☐A sandbox candidate received the email and completed it
- ☐The result appeared on the Greenhouse scorecard
Next
Read the score mapping guide before you build anything on the result — in particular the part explaining why there is no overall score, which is the single most common wrong assumption about this payload.
Vendor docs: https://developers.greenhouse.io/assessment-partner-api.html Support: partners@jobcannon.io