Skip to content
← Back to documentation
Technical Reference

Greenhouse

Recruiting and onboarding software

CategoryHuman Resources
AuthenticationOAuth 2.0
Version0.1.0
Published scopes9 published scopes
Last updatedSeptember 19, 2026

Overview

Connect Greenhouse with Flows360

Recruiting and onboarding software

Use the Greenhouse connector to include its declared actions and events in Flows360 workflows without duplicating the integration logic inside each consuming system. This pinned connector version currently exposes 8 actions and 6 triggers.

Available actions

  • Create Candidate
  • Create Candidate Note
  • Create Prospect
  • Update Candidate
  • Find Candidate
  • Find or Create Candidate
  • Find Due Scorecard
  • Custom API Call

Available triggers

  • New Candidate Application
  • Candidate Hired
  • New Job Post
  • Job Updated
  • New Scheduled Interview
  • New Scorecard Due

The capability list above is generated from the exact reviewed connector package so the public description stays aligned with the version Flows360 operates.

Technical guide

Technical reference

Package identity

  • Connector: Greenhouse
  • Package: @activepieces/piece-greenhouse@0.1.0
  • Exact artifact digest: sha256:5bba283123c2696999259639df655bd1e0cfe160213b1bb64413b1c6d3974cab
  • Runtime: Activepieces-compatible deterministic worker
  • Source: the exact reviewed Activepieces source

Authentication

OAUTH2. Connection values are tenant-specific and remain in the consuming Studio instance; CDK stores definitions and field metadata, not customer credential values.

Action contracts

  • Create Candidate (create_candidate), Creates a new candidate profile in Greenhouse. Classification: read.
  • Create Candidate Note (create_candidate_note), Adds a note to an existing candidate profile in Greenhouse. Classification: read.
  • Create Prospect (create_prospect), Creates a new prospect in Greenhouse, a person who has not yet applied to a specific job. Classification: read.
  • Update Candidate (update_candidate), Updates an existing candidate profile in Greenhouse. Only fields you provide will be changed. Classification: read.
  • Find Candidate (find_candidate), Searches for a candidate in Greenhouse by email address. Returns the first match. Classification: read.
  • Find or Create Candidate (find_or_create_candidate), Searches for a candidate by email address. If no match is found, creates a new candidate profile instead. Classification: read.
  • Find Due Scorecard (find_due_scorecard), Retrieves the full details of a scorecard by its ID. Use with the New Scorecard Due trigger to look up the scorecard that fired the flow. Classification: read.
  • Custom API Call (custom_api_call), Make a custom API call to a specific endpoint Classification: read.

Trigger contracts

  • New Candidate Application, polling.
  • Candidate Hired, polling.
  • New Job Post, polling.
  • Job Updated, polling.
  • New Scheduled Interview, polling.
  • New Scorecard Due, polling.

Verification

Deterministic execution evidence is recorded for the pinned artifact, including 1 exercised action entrypoint and 0 exercised trigger entrypoints.

Capability summary

AuthenticationOAuth 2.0
Supported objects14
Supported actions8
Triggers6

Authentication

Authentication method: OAuth 2.0

Required scopes

harvest:candidates:listharvest:candidates:createharvest:candidates:updateharvest:applications:listharvest:jobs:listharvest:job_posts:listharvest:interviews:listharvest:scorecards:listharvest:notes:create

Authentication profiles

connection · oauth2

OAuth scopes: harvest:candidates:list, harvest:candidates:create, harvest:candidates:update, harvest:applications:list, harvest:jobs:list, harvest:job_posts:list, harvest:interviews:list, harvest:scorecards:list, harvest:notes:create

Supported objects

ObjectReadWriteNotes
Create Candidate Yes No Creates a new candidate profile in Greenhouse.
Create Candidate Note Yes No Adds a note to an existing candidate profile in Greenhouse.
Create Prospect Yes No Creates a new prospect in Greenhouse u2014 a person who has not yet applied to a specific job.
Update Candidate Yes No Updates an existing candidate profile in Greenhouse. Only fields you provide will be changed.
Find Candidate Yes No Searches for a candidate in Greenhouse by email address. Returns the first match.
Find or Create Candidate Yes No Searches for a candidate by email address. If no match is found, creates a new candidate profile instead.
Find Due Scorecard Yes No Retrieves the full details of a scorecard by its ID. Use with the New Scorecard Due trigger to look up the scorecard that fired the flow.
Custom API Call Yes No Make a custom API call to a specific endpoint
New Candidate Application Yes No polling trigger declared by the pinned package.
Candidate Hired Yes No polling trigger declared by the pinned package.
New Job Post Yes No polling trigger declared by the pinned package.
Job Updated Yes No polling trigger declared by the pinned package.
New Scheduled Interview Yes No polling trigger declared by the pinned package.
New Scorecard Due Yes No polling trigger declared by the pinned package.

Supported actions

Create Candidate · Read

Creates a new candidate profile in Greenhouse.

create_candidate · Risk: low · Retry: safe

Inputs

  • first_name · string · Required, The candidate's first name.
  • last_name · string · Required, The candidate's last name.
  • email · string · Optional, The candidate's email address.
  • email_type · string · Optional, The type of email address provided.
  • phone · string · Optional, The candidate's phone number.
  • phone_type · string · Optional, The type of phone number provided.
  • company · string · Optional, The candidate's current employer.
  • title · string · Optional, The candidate's current job title.
  • linkedin_url · string · Optional, URL to the candidate's LinkedIn profile (e.g. `https://linkedin.com/in/johndoe`).
  • website_url · string · Optional, URL to the candidate's personal website or portfolio.
  • tags · array · Optional, Labels to attach to this candidate (e.g. `referral`, `engineering`). Each item in the list becomes one tag.
Create Candidate Note · Read

Adds a note to an existing candidate profile in Greenhouse.

create_candidate_note · Risk: low · Retry: safe

Inputs

  • candidate_id · string · Required, The numeric ID of the candidate to add the note to. Found in the candidate URL in Greenhouse (e.g. `https://app.greenhouse.io/people/**123456**`), or mapped from a previous **Create Candidate** step.
  • note_type · string · Required, The type of note to create.
  • body · string · Required, The content of the note.
  • visibility · string · Required, Who can see this note. **Admin Only** u2014 only admins; **Private** u2014 only the author; **Public** u2014 all Greenhouse users.
  • user_id · string · Optional, Optional. The Greenhouse user ID to attribute this note to. To find it: go to **Configure u2192 Users**, click a user, and copy the number from the URL (e.g. `https://app.greenhouse.io/people/**12345**`).
Create Prospect · Read

Creates a new prospect in Greenhouse u2014 a person who has not yet applied to a specific job.

create_prospect · Risk: low · Retry: safe

Inputs

  • first_name · string · Required, The prospect's first name.
  • last_name · string · Required, The prospect's last name.
  • email · string · Optional, The prospect's email address.
  • email_type · string · Optional, The type of email address provided.
  • phone · string · Optional, The prospect's phone number.
  • phone_type · string · Optional, The type of phone number provided.
  • company · string · Optional, The prospect's current employer.
  • title · string · Optional, The prospect's current job title.
  • linkedin_url · string · Optional, URL to the prospect's LinkedIn profile (e.g. `https://linkedin.com/in/johndoe`).
  • website_url · string · Optional, URL to the prospect's personal website or portfolio.
  • tags · array · Optional, Labels to attach to this prospect (e.g. `referral`, `engineering`). Each item in the list becomes one tag.
Update Candidate · Read

Updates an existing candidate profile in Greenhouse. Only fields you provide will be changed.

update_candidate · Risk: low · Retry: safe

Inputs

  • candidate_id · string · Required, The numeric ID of the candidate to update. Found in the candidate URL in Greenhouse (e.g. `https://app.greenhouse.io/people/**123456**`), or mapped from a previous **Create Candidate** step.
  • first_name · string · Optional, Updated first name for the candidate.
  • last_name · string · Optional, Updated last name for the candidate.
  • email · string · Optional, Updated email address. This replaces the candidate's primary email.
  • email_type · string · Optional, The type of the updated email address.
  • phone · string · Optional, Updated phone number. This replaces the candidate's primary phone.
  • phone_type · string · Optional, The type of the updated phone number.
  • company · string · Optional, Updated current employer.
  • title · string · Optional, Updated current job title.
  • linkedin_url · string · Optional, Updated LinkedIn profile URL (e.g. `https://linkedin.com/in/johndoe`).
  • website_url · string · Optional, Updated personal website or portfolio URL.
  • tags · array · Optional, Replaces all existing tags on the candidate with this list. Leave blank to keep existing tags unchanged.
Find Candidate · Read

Searches for a candidate in Greenhouse by email address. Returns the first match.

find_candidate · Risk: low · Retry: safe

Inputs

  • email · string · Required, The email address to search for. Returns the first candidate whose profile contains this address.
Find or Create Candidate · Read

Searches for a candidate by email address. If no match is found, creates a new candidate profile instead.

find_or_create_candidate · Risk: low · Retry: safe

Inputs

  • email · string · Required, The email address to search for. If a candidate with this address already exists, they will be returned as-is.
  • first_name · string · Required, Required when creating a new candidate. Ignored if a match is found.
  • last_name · string · Required, Required when creating a new candidate. Ignored if a match is found.
  • email_type · string · Optional, The type of email address. Used only when creating a new candidate.
  • phone · string · Optional, Phone number to set on the new candidate. Ignored if a match is found.
  • phone_type · string · Optional, The type of phone number. Used only when creating a new candidate.
  • company · string · Optional, Current employer to set on the new candidate. Ignored if a match is found.
  • title · string · Optional, Current job title to set on the new candidate. Ignored if a match is found.
  • linkedin_url · string · Optional, LinkedIn profile URL to set on the new candidate (e.g. `https://linkedin.com/in/johndoe`). Ignored if a match is found.
  • website_url · string · Optional, Personal website or portfolio URL to set on the new candidate. Ignored if a match is found.
  • tags · array · Optional, Tags to attach to the new candidate. Ignored if a match is found.
Find Due Scorecard · Read

Retrieves the full details of a scorecard by its ID. Use with the New Scorecard Due trigger to look up the scorecard that fired the flow.

find_due_scorecard · Risk: low · Retry: safe

Inputs

  • scorecard_id · string · Required, The numeric ID of the scorecard to retrieve. Typically mapped from a **New Scorecard Due** trigger step.
Custom API Call · Read

Make a custom API call to a specific endpoint

custom_api_call · Risk: low · Retry: safe

Inputs

  • url · object · Required
  • method · string · Required
  • headers · object · Optional, Authorization headers are injected automatically from your connection.
  • queryParams · object · Optional, Appended to the URL as ?key=value.
  • body_type · string · Optional
  • body · object · Optional
  • response_is_binary · boolean · Optional, Enable for files like PDFs, images, etc.
  • failsafe · boolean · Optional, On a failed request, output the error instead of failing the step.
  • timeout · number · Optional, Seconds to wait for a response. Empty: up to the flow limit (10 min).
  • followRedirects · boolean · Optional, Follow 3xx redirects instead of returning them as the response.

Triggers

New Candidate Application · Poll

Triggers when a new application is submitted by a candidate.

Candidate Hired · Poll

Triggers when a candidate is hired.

New Job Post · Poll

Triggers when a new job post is created.

Job Updated · Poll

Triggers when an existing job is updated.

New Scheduled Interview · Poll

Triggers when a new scheduled interview is created within the configured time window.

Inputs

  • days_ahead · number
New Scorecard Due · Poll

Triggers when a new scorecard is due u2014 i.e. created but not yet submitted by the interviewer.

Setup

Setup

  1. Add the Greenhouse connector to the workflow in the target Flows360 Studio instance.
  2. Create or select the tenant-specific connection required by the connector. Connection secrets remain in the Studio connection boundary and are not copied into CDK documentation.
  3. Provide the connection fields declared by the pinned package:
  • No provider credential fields are declared by the pinned package.

OAuth scopes

  • harvest:candidates:list
  • harvest:candidates:create
  • harvest:candidates:update
  • harvest:applications:list
  • harvest:jobs:list
  • harvest:job_posts:list
  • harvest:interviews:list
  • harvest:scorecards:list
  • harvest:notes:create
  1. Select the required action or trigger and complete its declared input fields. Required and optional inputs are defined by the exact package schema.
  2. Test the workflow in the appropriate environment before enabling production scheduling or event delivery.

Limitations

Limitations and operational notes

  • This content describes @activepieces/piece-greenhouse@0.1.0; provider behaviour can change independently and should be revalidated when the provider or connector version changes.
  • Only the 8 actions and 6 triggers declared by this pinned package are represented here.
  • Tenant credentials and connection values are not stored in the public connector record.
  • Provider-side permissions, account entitlements, quotas and rate limits remain subject to the connected provider account and are not inferred when the package does not declare them.
  • Deterministic execution evidence is recorded for the pinned artifact, including 1 exercised action entrypoint and 0 exercised trigger entrypoints.

Troubleshooting

Why canu2019t the connector authenticate?

Check the tenant connection in Studio and confirm every required Greenhouse connection field is present. Re-authorise OAuth-based connections if the provider token or consent has expired. Do not place credential values in CDK content or logs.

Why is an action or trigger unavailable?

Confirm that the workflow is using @activepieces/piece-greenhouse@0.1.0 and compare the requested capability with the declared action and trigger list for this version. A capability that is not declared by the pinned package should not be presented as supported.

What should I check after a provider-side change?

Revalidate authentication, required fields, action/trigger behaviour and provider documentation before publishing refreshed connector content or moving a new package version into production.