Search and filter applications records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Id of the note created when the candidate was submitted by an agency, or null if the application did not come through an agency.
answers
array
Free-text answers the candidate provided on the job post application form. Each entry pairs the question text with the candidate's answer.
candidate_id
integer
Id of the candidate (person) this application belongs to.
coordinator_id
integer
Id of the user assigned as coordinator on the application's job, or null when unassigned.
created_at
string
Created at from the Greenhouse v3 applications record.
custom_fields
object
Org-defined custom fields keyed by the field's name_key. Each value carries the field's display name, its type, and its value.
id
integer
Id from the Greenhouse v3 applications record.
job_id
integer
Id of the job this application is on. null for jobless prospect applications.
job_interview_stage_id
integer
Id of the job interview stage definition (see GET /v3/job_interview_stages) the candidate is currently in for this application. null for prospect applications and applications in a terminal state.
job_post_id
integer
Id of the job post the candidate applied through, or null if the application was created internally rather than from a posted role.
last_activity_at
string
Timestamp of the most recent activity on this application (notes, emails, stage changes, etc.), in ISO 8601.
location_address
string
Free-form location string captured on the application (typically from the job post's location question).
needs_decision
boolean
true when the application is waiting on a hiring-team decision (scorecard completion, advance/reject, etc.) in its current stage.
prospect
boolean
true for prospect applications (sourced candidates not yet attached to a single job), false for candidate applications on a specific job.
prospective_job_ids
array
For prospect applications, the ids of jobs the prospect is being considered for. Empty for non-prospect applications and for jobless prospects.
recruiter_id
integer
Id of the user assigned as recruiter on the application's job, or null when unassigned.
referrer_id
integer
Id of the referrer who credited this application, or null if there was no referral. References a referrer, not a Greenhouse user.
rejected_at
string
Timestamp the application was rejected, in ISO 8601. null for applications that have not been rejected.
rejection_reason_id
integer
Id of the rejection reason selected for the application. References a /v3/rejection_reasons row scoped to the organization. null when the application was rejected without a reason, or has not been rejected.
source_id
integer
Id of the source the application is attributed to (e.g. a job board, an event, an employee referral source). null if no source is set.
stage_id
integer
Id of the interview stage the candidate is currently in for this application. null for prospect applications and applications in a terminal state.
stage_name
string
Display name of the candidate's current interview stage on this application.
status
string
Lifecycle status of the application. in_process for active candidates, rejected for rejected applications, hired once an offer is closed and the hire endpoint has fired, and converted for prospect applications that have been promoted to a candidate application via convert_to_candidate.
updated_at
string
Updated at from the Greenhouse v3 applications record.
Response Schema
Field Name
Type
Description
data
array
List of matching records
meta
object
Pagination metadata
meta.has_more
boolean
Whether additional pages are available
meta.cursor
string | null
Cursor for next page of results
meta.took_ms
number | null
Query execution time in milliseconds
data[].agency_note_id
integer
Id of the note created when the candidate was submitted by an agency, or null if the application did not come through an agency.
data[].answers
array
Free-text answers the candidate provided on the job post application form. Each entry pairs the question text with the candidate's answer.
data[].candidate_id
integer
Id of the candidate (person) this application belongs to.
data[].coordinator_id
integer
Id of the user assigned as coordinator on the application's job, or null when unassigned.
data[].created_at
string
Created at from the Greenhouse v3 applications record.
data[].custom_fields
object
Org-defined custom fields keyed by the field's name_key. Each value carries the field's display name, its type, and its value.
data[].id
integer
Id from the Greenhouse v3 applications record.
data[].job_id
integer
Id of the job this application is on. null for jobless prospect applications.
data[].job_interview_stage_id
integer
Id of the job interview stage definition (see GET /v3/job_interview_stages) the candidate is currently in for this application. null for prospect applications and applications in a terminal state.
data[].job_post_id
integer
Id of the job post the candidate applied through, or null if the application was created internally rather than from a posted role.
data[].last_activity_at
string
Timestamp of the most recent activity on this application (notes, emails, stage changes, etc.), in ISO 8601.
data[].location_address
string
Free-form location string captured on the application (typically from the job post's location question).
data[].needs_decision
boolean
true when the application is waiting on a hiring-team decision (scorecard completion, advance/reject, etc.) in its current stage.
data[].prospect
boolean
true for prospect applications (sourced candidates not yet attached to a single job), false for candidate applications on a specific job.
data[].prospective_job_ids
array
For prospect applications, the ids of jobs the prospect is being considered for. Empty for non-prospect applications and for jobless prospects.
data[].recruiter_id
integer
Id of the user assigned as recruiter on the application's job, or null when unassigned.
data[].referrer_id
integer
Id of the referrer who credited this application, or null if there was no referral. References a referrer, not a Greenhouse user.
data[].rejected_at
string
Timestamp the application was rejected, in ISO 8601. null for applications that have not been rejected.
data[].rejection_reason_id
integer
Id of the rejection reason selected for the application. References a /v3/rejection_reasons row scoped to the organization. null when the application was rejected without a reason, or has not been rejected.
data[].source_id
integer
Id of the source the application is attributed to (e.g. a job board, an event, an employee referral source). null if no source is set.
data[].stage_id
integer
Id of the interview stage the candidate is currently in for this application. null for prospect applications and applications in a terminal state.
data[].stage_name
string
Display name of the candidate's current interview stage on this application.
data[].status
string
Lifecycle status of the application. in_process for active candidates, rejected for rejected applications, hired once an offer is closed and the hire endpoint has fired, and converted for prospect applications that have been promoted to a candidate application via convert_to_candidate.
data[].updated_at
string
Updated at from the Greenhouse v3 applications record.
Search and filter candidates records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Postal addresses on the candidate's profile. Each entry pairs the value with a type such as home, work, or other.
can_email
boolean
Whether this candidate has consented to receive email communication from your organization.
company
string
Candidate's current company, as entered on their profile.
created_at
string
Created at from the Greenhouse v3 candidates record.
custom_fields
object
Org-defined custom fields keyed by the field's name_key. Each value carries the field's display name, its type, and its value.
email_addresses
array
Email addresses on the candidate's profile. Each entry pairs the value with a type such as personal, work, or other.
first_name
string
First name from the Greenhouse v3 candidates record.
id
integer
Id from the Greenhouse v3 candidates record.
last_activity_at
string
Timestamp of the most recent activity on any of the candidate's applications (notes, emails, stage changes, etc.), in ISO 8601.
last_name
string
Last name from the Greenhouse v3 candidates record.
linked_user_ids
array
Ids of Greenhouse users linked to this candidate (employees represented by both a user record and a candidate record).
phone_numbers
array
Phone numbers on the candidate's profile. Each entry pairs the value with a type such as mobile, home, work, skype, or other.
preferred_name
string
Preferred or chosen name the candidate goes by, when different from their legal first name.
private
boolean
If true, the candidate is restricted to users with View Private Candidates access. Defaults to false.
social_media_addresses
array
Social media handles or URLs on the candidate's profile. Social entries are untyped — only the value is returned.
tags
array
Candidate tag names applied to this candidate within your organization.
time_zone
string
Candidate's time zone as a Rails-style identifier (for example Eastern Time (US & Canada)).
title
string
Candidate's current job title, as entered on their profile.
updated_at
string
Updated at from the Greenhouse v3 candidates record.
website_addresses
array
Personal websites or portfolio URLs on the candidate's profile. Each entry pairs the value with a type such as personal, company, portfolio, blog, or other.
Response Schema
Field Name
Type
Description
data
array
List of matching records
meta
object
Pagination metadata
meta.has_more
boolean
Whether additional pages are available
meta.cursor
string | null
Cursor for next page of results
meta.took_ms
number | null
Query execution time in milliseconds
data[].addresses
array
Postal addresses on the candidate's profile. Each entry pairs the value with a type such as home, work, or other.
data[].can_email
boolean
Whether this candidate has consented to receive email communication from your organization.
data[].company
string
Candidate's current company, as entered on their profile.
data[].created_at
string
Created at from the Greenhouse v3 candidates record.
data[].custom_fields
object
Org-defined custom fields keyed by the field's name_key. Each value carries the field's display name, its type, and its value.
data[].email_addresses
array
Email addresses on the candidate's profile. Each entry pairs the value with a type such as personal, work, or other.
data[].first_name
string
First name from the Greenhouse v3 candidates record.
data[].id
integer
Id from the Greenhouse v3 candidates record.
data[].last_activity_at
string
Timestamp of the most recent activity on any of the candidate's applications (notes, emails, stage changes, etc.), in ISO 8601.
data[].last_name
string
Last name from the Greenhouse v3 candidates record.
data[].linked_user_ids
array
Ids of Greenhouse users linked to this candidate (employees represented by both a user record and a candidate record).
data[].phone_numbers
array
Phone numbers on the candidate's profile. Each entry pairs the value with a type such as mobile, home, work, skype, or other.
data[].preferred_name
string
Preferred or chosen name the candidate goes by, when different from their legal first name.
data[].private
boolean
If true, the candidate is restricted to users with View Private Candidates access. Defaults to false.
data[].social_media_addresses
array
Social media handles or URLs on the candidate's profile. Social entries are untyped — only the value is returned.
data[].tags
array
Candidate tag names applied to this candidate within your organization.
data[].time_zone
string
Candidate's time zone as a Rails-style identifier (for example Eastern Time (US & Canada)).
data[].title
string
Candidate's current job title, as entered on their profile.
data[].updated_at
string
Updated at from the Greenhouse v3 candidates record.
data[].website_addresses
array
Personal websites or portfolio URLs on the candidate's profile. Each entry pairs the value with a type such as personal, company, portfolio, blog, or other.
Search and filter departments records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Created at from the Greenhouse v3 departments record.
external_id
string
Partner-supplied identifier for the department, typically the matching id from an HRIS or other external system. Free-form string and null when no external id has been set.
id
integer
Id from the Greenhouse v3 departments record.
name
string
Display name of the department (e.g. Engineering, Marketing).
parent_id
integer
Id of the parent department in the organization's department tree. null for top-level departments. References another /v3/departments row.
updated_at
string
Updated at from the Greenhouse v3 departments record.
Response Schema
Field Name
Type
Description
data
array
List of matching records
meta
object
Pagination metadata
meta.has_more
boolean
Whether additional pages are available
meta.cursor
string | null
Cursor for next page of results
meta.took_ms
number | null
Query execution time in milliseconds
data[].created_at
string
Created at from the Greenhouse v3 departments record.
data[].external_id
string
Partner-supplied identifier for the department, typically the matching id from an HRIS or other external system. Free-form string and null when no external id has been set.
data[].id
integer
Id from the Greenhouse v3 departments record.
data[].name
string
Display name of the department (e.g. Engineering, Marketing).
data[].parent_id
integer
Id of the parent department in the organization's department tree. null for top-level departments. References another /v3/departments row.
data[].updated_at
string
Updated at from the Greenhouse v3 departments record.
Search and filter job posts records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
If true, the post has not been deleted. Deleted posts are excluded by default; pass active=false on the list endpoint to retrieve them.
content
string
HTML body of the post shown to candidates on the job board. For internal posts this returns the internal_content instead. Sanitized server-side — only a limited element/attribute allowlist (including iframe, video, source) survives. null while the post is still being scaffolded.
created_at
string
Created at from the Greenhouse v3 job posts record.
demographic_question_set_id
integer
Id of the demographic question set surfaced to candidates on this post for diversity, equity, and inclusion (DE&I) reporting. null when the post does not collect demographic data.
featured
boolean
If true, the post is currently featured on the organization's internal job board and surfaces in the weekly internal-jobs email. Only internal posts can be featured, and at most three can be featured at a time.
first_published_at
string
Timestamp the post first transitioned to live, in ISO 8601. null for posts that have never been published.
id
integer
Id from the Greenhouse v3 job posts record.
internal
boolean
If true, the post lives on an internal job board and is visible only to existing employees signed in to the internal board. If false, the post is external and lives on a public-facing job_board. Set by the board the post is associated with at create time.
internal_content
string
HTML body shown on the internal job board when the post is also configured as internal. null for external-only posts. Same sanitization rules as content.
job_board_id
integer
Id of the job_board this post is published to. Resolves to either an external (careers site, syndicated board) or internal job board depending on internal. Each post belongs to exactly one board at a time.
job_id
integer
Id of the parent job (requisition) this post belongs to. A single job can have multiple posts; the job is the source of truth for the hiring team, openings, and interview plan.
language
string
ISO 639-1 locale of the post, used to render the candidate-facing application form in the matching language (e.g. en, fr, ja). null when no locale has been chosen.
live
boolean
If true, the post is published (job_application_status is live) and its job board is also live. A post on an unpublished board is notlive — its public_url returns a 404 until the board is enabled.
public_url
string
Canonical public URL of the post on its job board, including the gh_jid tracking parameter. null when the post has no associated job board or the board has no public URL configured.
questions
array
Application form questions presented to candidates on this post, including default questions (resume, cover letter, basic info) and any custom questions configured by the hiring team. Ordered as they appear on the form.
title
string
Public-facing title shown to candidates on the job board (e.g. Senior Backend Engineer, Remote). Distinct from the internal job.name — a single job can have several posts with different titles, one per board, language, or geography.
updated_at
string
Updated at from the Greenhouse v3 job posts record.
Response Schema
Field Name
Type
Description
data
array
List of matching records
meta
object
Pagination metadata
meta.has_more
boolean
Whether additional pages are available
meta.cursor
string | null
Cursor for next page of results
meta.took_ms
number | null
Query execution time in milliseconds
data[].active
boolean
If true, the post has not been deleted. Deleted posts are excluded by default; pass active=false on the list endpoint to retrieve them.
data[].content
string
HTML body of the post shown to candidates on the job board. For internal posts this returns the internal_content instead. Sanitized server-side — only a limited element/attribute allowlist (including iframe, video, source) survives. null while the post is still being scaffolded.
data[].created_at
string
Created at from the Greenhouse v3 job posts record.
data[].demographic_question_set_id
integer
Id of the demographic question set surfaced to candidates on this post for diversity, equity, and inclusion (DE&I) reporting. null when the post does not collect demographic data.
data[].featured
boolean
If true, the post is currently featured on the organization's internal job board and surfaces in the weekly internal-jobs email. Only internal posts can be featured, and at most three can be featured at a time.
data[].first_published_at
string
Timestamp the post first transitioned to live, in ISO 8601. null for posts that have never been published.
data[].id
integer
Id from the Greenhouse v3 job posts record.
data[].internal
boolean
If true, the post lives on an internal job board and is visible only to existing employees signed in to the internal board. If false, the post is external and lives on a public-facing job_board. Set by the board the post is associated with at create time.
data[].internal_content
string
HTML body shown on the internal job board when the post is also configured as internal. null for external-only posts. Same sanitization rules as content.
data[].job_board_id
integer
Id of the job_board this post is published to. Resolves to either an external (careers site, syndicated board) or internal job board depending on internal. Each post belongs to exactly one board at a time.
data[].job_id
integer
Id of the parent job (requisition) this post belongs to. A single job can have multiple posts; the job is the source of truth for the hiring team, openings, and interview plan.
data[].language
string
ISO 639-1 locale of the post, used to render the candidate-facing application form in the matching language (e.g. en, fr, ja). null when no locale has been chosen.
data[].live
boolean
If true, the post is published (job_application_status is live) and its job board is also live. A post on an unpublished board is notlive — its public_url returns a 404 until the board is enabled.
data[].public_url
string
Canonical public URL of the post on its job board, including the gh_jid tracking parameter. null when the post has no associated job board or the board has no public URL configured.
data[].questions
array
Application form questions presented to candidates on this post, including default questions (resume, cover letter, basic info) and any custom questions configured by the hiring team. Ordered as they appear on the form.
data[].title
string
Public-facing title shown to candidates on the job board (e.g. Senior Backend Engineer, Remote). Distinct from the internal job.name — a single job can have several posts with different titles, one per board, language, or geography.
data[].updated_at
string
Updated at from the Greenhouse v3 job posts record.
Search job posts records by meaning rather than by exact or fuzzy field values. Semantic search embeds a natural-language prompt and returns the most similar passages, ranked by relevance. Pass semantic={field, prompt, filter?, context_size?, min_similarity?, dedup?} to context_store_search instead of query. Only available in hosted mode.
Field to search semantically. Mutually exclusive with query.
semantic.prompt
string
Yes
Natural-language query that is embedded and compared against stored passages.
semantic.filter
object
No
Filter conditions (same shape/operators as query.filter). sort is not supported — results are ranked by similarity.
semantic.context_size
integer
No
Characters of surrounding context to return per hit, up to the field's configured window. Omit to return the full configured window.
semantic.min_similarity
number
No
Minimum similarity score in [-1.0, 1.0]. Omit for 0.25; scores below the threshold are discarded before deduplication and top-k selection. Use -1.0 to disable the cutoff.
semantic.dedup
string
No
max (default) returns the single best-scoring passage per record; none returns multiple passages per record, still ranked by similarity and capped by limit.
fields
array
No
Field paths to include in results (dot notation for nested fields). Applied to each hit's entity.
limit
integer
No
Maximum results to return (default 10, maximum 100).
HTML body of the post shown to candidates on the job board. For internal posts this returns the internal_content instead. Sanitized server-side — only a limited element/attribute allowlist (including iframe, video, source) survives. null while the post is still being scaffolded.
internal_content
2048
HTML body shown on the internal job board when the post is also configured as internal. null for external-only posts. Same sanitization rules as content.
Search and filter jobs records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Timestamp the job most recently transitioned to closed, in ISO 8601. null for jobs that are still open or draft.
confidential
boolean
If true, the job is restricted to users explicitly granted access on the Hiring Team. The legacy Confidential Jobs feature has been sunset — this flag cannot be set on new jobs and is preserved for jobs that already had it enabled.
copied_from_id
integer
Id of the job (typically a template) this job was copied from on creation. null when the job was not created from another job.
created_at
string
Created at from the Greenhouse v3 jobs record.
custom_fields
object
Org-defined custom fields keyed by the field's name_key. Each value carries the field's display name, its type, and its value.
department_id
integer
Id of the department this job is assigned to. null when no department is set.
id
integer
Id from the Greenhouse v3 jobs record.
is_template
boolean
If true, this job is a template used as the source for new jobs rather than a real requisition. Templates do not accept applications; reference them via template_job_id on POST /v3/jobs.
name
string
Internal job title shown to the hiring team in Greenhouse (e.g. Senior Backend Engineer). Distinct from the external-facing title on each job_post.
notes
string
Internal HTML notes about the job, surfaced to the hiring team in the Greenhouse UI. Not exposed on public job posts.
office_ids
array
Ids of the offices this job is assigned to. A job can span multiple offices; empty array or null when no offices are set.
opened_at
string
Timestamp the job first transitioned to open, in ISO 8601. null while the job is still in draft.
requisition_id
string
Partner-supplied external identifier for the requisition (e.g. an HRIS or ATS code). Free-form string, not unique across the organization, and null when no external id has been set.
status
string
Lifecycle status of the job. draft while it is being scaffolded, open once it has at least one open opening, and closed after every opening is closed. A job moves to closed automatically when its last open opening is closed via PATCH /v3/openings/\{id\}.
updated_at
string
Updated at from the Greenhouse v3 jobs record.
Response Schema
Field Name
Type
Description
data
array
List of matching records
meta
object
Pagination metadata
meta.has_more
boolean
Whether additional pages are available
meta.cursor
string | null
Cursor for next page of results
meta.took_ms
number | null
Query execution time in milliseconds
data[].closed_at
string
Timestamp the job most recently transitioned to closed, in ISO 8601. null for jobs that are still open or draft.
data[].confidential
boolean
If true, the job is restricted to users explicitly granted access on the Hiring Team. The legacy Confidential Jobs feature has been sunset — this flag cannot be set on new jobs and is preserved for jobs that already had it enabled.
data[].copied_from_id
integer
Id of the job (typically a template) this job was copied from on creation. null when the job was not created from another job.
data[].created_at
string
Created at from the Greenhouse v3 jobs record.
data[].custom_fields
object
Org-defined custom fields keyed by the field's name_key. Each value carries the field's display name, its type, and its value.
data[].department_id
integer
Id of the department this job is assigned to. null when no department is set.
data[].id
integer
Id from the Greenhouse v3 jobs record.
data[].is_template
boolean
If true, this job is a template used as the source for new jobs rather than a real requisition. Templates do not accept applications; reference them via template_job_id on POST /v3/jobs.
data[].name
string
Internal job title shown to the hiring team in Greenhouse (e.g. Senior Backend Engineer). Distinct from the external-facing title on each job_post.
data[].notes
string
Internal HTML notes about the job, surfaced to the hiring team in the Greenhouse UI. Not exposed on public job posts.
data[].office_ids
array
Ids of the offices this job is assigned to. A job can span multiple offices; empty array or null when no offices are set.
data[].opened_at
string
Timestamp the job first transitioned to open, in ISO 8601. null while the job is still in draft.
data[].requisition_id
string
Partner-supplied external identifier for the requisition (e.g. an HRIS or ATS code). Free-form string, not unique across the organization, and null when no external id has been set.
data[].status
string
Lifecycle status of the job. draft while it is being scaffolded, open once it has at least one open opening, and closed after every opening is closed. A job moves to closed automatically when its last open opening is closed via PATCH /v3/openings/\{id\}.
Search jobs records by meaning rather than by exact or fuzzy field values. Semantic search embeds a natural-language prompt and returns the most similar passages, ranked by relevance. Pass semantic={field, prompt, filter?, context_size?, min_similarity?, dedup?} to context_store_search instead of query. Only available in hosted mode.
Field to search semantically. Mutually exclusive with query.
semantic.prompt
string
Yes
Natural-language query that is embedded and compared against stored passages.
semantic.filter
object
No
Filter conditions (same shape/operators as query.filter). sort is not supported — results are ranked by similarity.
semantic.context_size
integer
No
Characters of surrounding context to return per hit, up to the field's configured window. Omit to return the full configured window.
semantic.min_similarity
number
No
Minimum similarity score in [-1.0, 1.0]. Omit for 0.25; scores below the threshold are discarded before deduplication and top-k selection. Use -1.0 to disable the cutoff.
semantic.dedup
string
No
max (default) returns the single best-scoring passage per record; none returns multiple passages per record, still ranked by similarity and capped by limit.
fields
array
No
Field paths to include in results (dot notation for nested fields). Applied to each hit's entity.
limit
integer
No
Maximum results to return (default 10, maximum 100).
Search and filter offers records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Id of the application this offer is extended on. Every offer belongs to exactly one application; the offer is voided if the application is rejected or deleted.
candidate_id
integer
Id of the candidate (person) receiving this offer. Resolved through the offer's application.
created_at
string
Created at from the Greenhouse v3 offers record.
custom_fields
object
Org-defined custom fields keyed by the field's name_key. Each value carries the field's display name, its type, and its value.
id
integer
Id from the Greenhouse v3 offers record.
job_id
integer
Id of the job this offer's application is on.
opening_id
integer
Id of the specific opening this offer is being extended for. null when the offer has not yet been linked to an opening.
resolved_at
string
Timestamp the offer was resolved (Accepted or Rejected), in ISO 8601. Date updates submitted through PATCH /v3/offers/\{id\} are normalized to noon UTC on the supplied date. null while the offer is still Created or has been superseded as Deprecated without a resolution.
sent_on
string
Date the offer was sent to the candidate, in ISO 8601 (YYYY-MM-DD). null until the offer has been sent.
starts_on
string
Candidate's proposed start date, in ISO 8601 (YYYY-MM-DD). null when no start date has been set on the offer.
status
string
Lifecycle status of the offer. Created for offers still being drafted or pending approval, Accepted once the candidate accepts, Rejected if declined or withdrawn, and Deprecated for superseded prior versions (a new offer version replaces an earlier one with this status).
updated_at
string
Updated at from the Greenhouse v3 offers record.
version
integer
Revision number of this offer within its application. Greenhouse creates a new offer row (incrementing version) whenever a tracked field on an existing offer changes — typically starts_on, opening_id, or a custom field configured to trigger a new version. Pair with current_only=true to filter the list endpoint down to the latest version per application.
Response Schema
Field Name
Type
Description
data
array
List of matching records
meta
object
Pagination metadata
meta.has_more
boolean
Whether additional pages are available
meta.cursor
string | null
Cursor for next page of results
meta.took_ms
number | null
Query execution time in milliseconds
data[].application_id
integer
Id of the application this offer is extended on. Every offer belongs to exactly one application; the offer is voided if the application is rejected or deleted.
data[].candidate_id
integer
Id of the candidate (person) receiving this offer. Resolved through the offer's application.
data[].created_at
string
Created at from the Greenhouse v3 offers record.
data[].custom_fields
object
Org-defined custom fields keyed by the field's name_key. Each value carries the field's display name, its type, and its value.
data[].id
integer
Id from the Greenhouse v3 offers record.
data[].job_id
integer
Id of the job this offer's application is on.
data[].opening_id
integer
Id of the specific opening this offer is being extended for. null when the offer has not yet been linked to an opening.
data[].resolved_at
string
Timestamp the offer was resolved (Accepted or Rejected), in ISO 8601. Date updates submitted through PATCH /v3/offers/\{id\} are normalized to noon UTC on the supplied date. null while the offer is still Created or has been superseded as Deprecated without a resolution.
data[].sent_on
string
Date the offer was sent to the candidate, in ISO 8601 (YYYY-MM-DD). null until the offer has been sent.
data[].starts_on
string
Candidate's proposed start date, in ISO 8601 (YYYY-MM-DD). null when no start date has been set on the offer.
data[].status
string
Lifecycle status of the offer. Created for offers still being drafted or pending approval, Accepted once the candidate accepts, Rejected if declined or withdrawn, and Deprecated for superseded prior versions (a new offer version replaces an earlier one with this status).
data[].updated_at
string
Updated at from the Greenhouse v3 offers record.
data[].version
integer
Revision number of this offer within its application. Greenhouse creates a new offer row (incrementing version) whenever a tracked field on an existing offer changes — typically starts_on, opening_id, or a custom field configured to trigger a new version. Pair with current_only=true to filter the list endpoint down to the latest version per application.
Search and filter offices records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Stable identifier supplied by the customer or HRIS for cross-system reconciliation. null when no external id has been set. Available when the org_structure_external_id product flag is enabled.
id
integer
Id from the Greenhouse v3 offices record.
location
string
Free-form physical location string for the office (e.g. New York, NY, USA). null for offices that have no location set, including most remote offices.
name
string
Display name of the office (e.g. San Francisco, Remote (US)). Unique among active offices in the same organization.
parent_id
integer
Id of the parent office when offices are organized hierarchically. null for top-level offices. References another /v3/offices row in the same organization.
primary_in_house_contact_user_id
integer
Id of the Greenhouse user designated as the office's primary internal contact, typically the local recruiting lead. References a /v3/users row. null when no contact has been assigned.
updated_at
string
Updated at from the Greenhouse v3 offices record.
Response Schema
Field Name
Type
Description
data
array
List of matching records
meta
object
Pagination metadata
meta.has_more
boolean
Whether additional pages are available
meta.cursor
string | null
Cursor for next page of results
meta.took_ms
number | null
Query execution time in milliseconds
data[].created_at
string
Created at from the Greenhouse v3 offices record.
data[].external_id
string
Stable identifier supplied by the customer or HRIS for cross-system reconciliation. null when no external id has been set. Available when the org_structure_external_id product flag is enabled.
data[].id
integer
Id from the Greenhouse v3 offices record.
data[].location
string
Free-form physical location string for the office (e.g. New York, NY, USA). null for offices that have no location set, including most remote offices.
data[].name
string
Display name of the office (e.g. San Francisco, Remote (US)). Unique among active offices in the same organization.
data[].parent_id
integer
Id of the parent office when offices are organized hierarchically. null for top-level offices. References another /v3/offices row in the same organization.
data[].primary_in_house_contact_user_id
integer
Id of the Greenhouse user designated as the office's primary internal contact, typically the local recruiting lead. References a /v3/users row. null when no contact has been assigned.
Search and filter sources records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Display name of the source as recruiters see it in Greenhouse (e.g. LinkedIn (Prospecting), Indeed, Referral, Internal Applicant, or a custom agency name). For organization-specific sources this is the label the org configured; for global Greenhouse sources it is the standard public name.
type
object
The sourcing strategy this source rolls up to — the broader category used for reporting. Sources are grouped under sourcing strategies such as Agencies, Referral, Third-party boards, Prospecting, Social media, Company marketing, In person event, MyGreenhouse, and Other. Use the strategy when aggregating candidate volume by channel; use the source itself when reporting on a specific channel within that category.
updated_at
string
Updated at from the Greenhouse v3 sources record.
Response Schema
Field Name
Type
Description
data
array
List of matching records
meta
object
Pagination metadata
meta.has_more
boolean
Whether additional pages are available
meta.cursor
string | null
Cursor for next page of results
meta.took_ms
number | null
Query execution time in milliseconds
data[].created_at
string
Created at from the Greenhouse v3 sources record.
data[].id
integer
Id from the Greenhouse v3 sources record.
data[].name
string
Display name of the source as recruiters see it in Greenhouse (e.g. LinkedIn (Prospecting), Indeed, Referral, Internal Applicant, or a custom agency name). For organization-specific sources this is the label the org configured; for global Greenhouse sources it is the standard public name.
data[].type
object
The sourcing strategy this source rolls up to — the broader category used for reporting. Sources are grouped under sourcing strategies such as Agencies, Referral, Third-party boards, Prospecting, Social media, Company marketing, In person event, MyGreenhouse, and Other. Use the strategy when aggregating candidate volume by channel; use the source itself when reporting on a specific channel within that category.
Search and filter users records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
Id of the staffing agency this user belongs to, when the user is an external agency recruiter rather than an employee of your organization. null for in-house users.
created_at
string
Created at from the Greenhouse v3 users record.
custom_fields
object
Org-defined custom fields keyed by the field's name_key. Each value carries the field's display name, its type, and its value.
deactivated
boolean
Whether the user has been deactivated. Deactivated users cannot sign in or be assigned to new jobs, but their historical activity (notes, scorecards, emails) is preserved. Toggle via POST /v3/users/\{id\}/deactivate and POST /v3/users/\{id\}/activate.
department_ids
array
Ids of the departments this user is assigned to. Used to scope future job permissions and to filter the user list by department. Empty when the user is not pinned to any department.
emails
array
All email addresses on the user's account, including the primary address and any additional verified addresses.
employee_id
string
Partner-supplied external employee identifier, typically the user's HRIS or payroll id. Free-form string; not unique across organizations and null when no employee id has been set.
first_name
string
First name from the Greenhouse v3 users record.
id
integer
Id from the Greenhouse v3 users record.
interviewer_tags
array
Interviewer tags applied to this user — the labeled skill or panel groupings (e.g. Senior Engineer, Bar Raiser) used to suggest qualified interviewers when building an interview plan. Each entry pairs the tag's id with its name.
job_title
string
Free-form job title set on the user's Greenhouse profile (e.g. Senior Recruiter). Not synchronized with any HRIS title.
last_name
string
Last name from the Greenhouse v3 users record.
linked_candidate_ids
array
Ids of candidate records linked to this user. Populated when an employee is represented by both a user record (for Greenhouse access) and a candidate record (for past or internal applications).
name
string
Concatenation of first_name and last_name rendered as a single display string. Provided for convenience; partners that need either component should read first_name/last_name directly.
office_ids
array
Ids of the offices this user is assigned to. Used to scope future job permissions and to filter the user list by office. Empty when the user is not pinned to any office.
primary_email
string
Primary email address on the user's account. Sign-in identifier and the address Greenhouse uses for outbound mail; additional verified addresses are not surfaced here. Service accounts (integration/ISU users) have no email and are excluded from this endpoint by default; when included via show_service_accounts=true, their primary_email is an empty string.
site_admin
boolean
Whether the user holds the Site Admin role. Site admins have unrestricted access to every non-confidential job and to organization-level settings. Demote a site admin to a Basic user with POST /v3/users/\{id\}/revoke_permissions.
updated_at
string
Updated at from the Greenhouse v3 users record.
Response Schema
Field Name
Type
Description
data
array
List of matching records
meta
object
Pagination metadata
meta.has_more
boolean
Whether additional pages are available
meta.cursor
string | null
Cursor for next page of results
meta.took_ms
number | null
Query execution time in milliseconds
data[].agency_id
integer
Id of the staffing agency this user belongs to, when the user is an external agency recruiter rather than an employee of your organization. null for in-house users.
data[].created_at
string
Created at from the Greenhouse v3 users record.
data[].custom_fields
object
Org-defined custom fields keyed by the field's name_key. Each value carries the field's display name, its type, and its value.
data[].deactivated
boolean
Whether the user has been deactivated. Deactivated users cannot sign in or be assigned to new jobs, but their historical activity (notes, scorecards, emails) is preserved. Toggle via POST /v3/users/\{id\}/deactivate and POST /v3/users/\{id\}/activate.
data[].department_ids
array
Ids of the departments this user is assigned to. Used to scope future job permissions and to filter the user list by department. Empty when the user is not pinned to any department.
data[].emails
array
All email addresses on the user's account, including the primary address and any additional verified addresses.
data[].employee_id
string
Partner-supplied external employee identifier, typically the user's HRIS or payroll id. Free-form string; not unique across organizations and null when no employee id has been set.
data[].first_name
string
First name from the Greenhouse v3 users record.
data[].id
integer
Id from the Greenhouse v3 users record.
data[].interviewer_tags
array
Interviewer tags applied to this user — the labeled skill or panel groupings (e.g. Senior Engineer, Bar Raiser) used to suggest qualified interviewers when building an interview plan. Each entry pairs the tag's id with its name.
data[].job_title
string
Free-form job title set on the user's Greenhouse profile (e.g. Senior Recruiter). Not synchronized with any HRIS title.
data[].last_name
string
Last name from the Greenhouse v3 users record.
data[].linked_candidate_ids
array
Ids of candidate records linked to this user. Populated when an employee is represented by both a user record (for Greenhouse access) and a candidate record (for past or internal applications).
data[].name
string
Concatenation of first_name and last_name rendered as a single display string. Provided for convenience; partners that need either component should read first_name/last_name directly.
data[].office_ids
array
Ids of the offices this user is assigned to. Used to scope future job permissions and to filter the user list by office. Empty when the user is not pinned to any office.
data[].primary_email
string
Primary email address on the user's account. Sign-in identifier and the address Greenhouse uses for outbound mail; additional verified addresses are not surfaced here. Service accounts (integration/ISU users) have no email and are excluded from this endpoint by default; when included via show_service_accounts=true, their primary_email is an empty string.
data[].site_admin
boolean
Whether the user holds the Site Admin role. Site admins have unrestricted access to every non-confidential job and to organization-level settings. Demote a site admin to a Basic user with POST /v3/users/\{id\}/revoke_permissions.