This connector is optimized for AI agents. For the data replication connector, see Greenhouse .
This is the full reference documentation for the Greenhouse agent connector.
Supported entities and actions
The Greenhouse connector supports the following entities and actions.
Entity Actions Candidates List , Get , Search Applications List , Get , Search Jobs List , Get , Search Offers List , Get , Search Users List , Get , Search Departments List , Get , Search Offices List , Get , Search Job Posts List , Get , Search Sources List , Search Scheduled Interviews List , Get Application Attachment Download Candidate Attachment Download
Candidates
Candidates List
Returns a paginated list of all candidates in the organization
Python SDK
await greenhouse . candidates . list ( )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "candidates", "action": "list" }'
Parameters
Parameter Name Type Required Description per_pageintegerNo Number of items to return per page (max 500) pageintegerNo Page number for pagination
Response Schema Records Field Name Type Description idintegerfirst_namestringlast_namestringcompanystring | nulltitlestring | nullcreated_atstringupdated_atstringlast_activitystringis_privatebooleanphoto_urlstring | nullattachmentsarray<object>attachments[].filenamestringattachments[].urlstringattachments[].type"resume" | "cover_letter" | "admin_only" | "take_home_test" | "offer_packet" | "offer_letter" | "signed_offer_letter" | "other"attachments[].created_atstringapplication_idsarray<integer>phone_numbersarray<object>addressesarray<object>email_addressesarray<object>website_addressesarray<object>social_media_addressesarray<object>recruiterobject | nullcoordinatorobject | nullcan_emailbooleantagsarray<string>custom_fieldsobject
Candidates Get
Get a single candidate by ID
Python SDK
await greenhouse . candidates . get ( id = 0 )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "candidates", "action": "get", "params": { "id": 0 } }'
Parameters
Parameter Name Type Required Description idintegerYes Candidate ID
Response Schema Records Field Name Type Description idintegerfirst_namestringlast_namestringcompanystring | nulltitlestring | nullcreated_atstringupdated_atstringlast_activitystringis_privatebooleanphoto_urlstring | nullattachmentsarray<object>attachments[].filenamestringattachments[].urlstringattachments[].type"resume" | "cover_letter" | "admin_only" | "take_home_test" | "offer_packet" | "offer_letter" | "signed_offer_letter" | "other"attachments[].created_atstringapplication_idsarray<integer>phone_numbersarray<object>addressesarray<object>email_addressesarray<object>website_addressesarray<object>social_media_addressesarray<object>recruiterobject | nullcoordinatorobject | nullcan_emailbooleantagsarray<string>custom_fieldsobject
Candidates Search
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.
Python SDK
await greenhouse . candidates . search ( query = { "filter" : { "eq" : { "addresses" : [ ] } } } )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "candidates", "action": "search", "params": { "query": {"filter": {"eq": {"addresses": []}}} } }'
Parameters
Parameter Name Type Required Description queryobjectYes Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or query.filterobjectNo Filter conditions query.sortarrayNo Sort conditions limitintegerNo Maximum results to return (default 1000) cursorstringNo Pagination cursor from previous response's meta.cursor fieldsarrayNo Field paths to include in results
Searchable Fields
Field Name Type Description addressesarrayCandidate's addresses application_idsarrayList of application IDs applicationsarrayAn array of all applications made by candidates. attachmentsarrayAttachments related to the candidate can_emailbooleanIndicates if candidate can be emailed companystringCompany where the candidate is associated coordinatorstringCoordinator assigned to the candidate created_atstringDate and time of creation custom_fieldsobjectCustom fields associated with the candidate educationsarrayList of candidate's educations email_addressesarrayCandidate's email addresses employmentsarrayList of candidate's employments first_namestringCandidate's first name idintegerCandidate's ID is_privatebooleanIndicates if the candidate's data is private keyed_custom_fieldsobjectKeyed custom fields associated with the candidate last_activitystringDetails of the last activity related to the candidate last_namestringCandidate's last name phone_numbersarrayCandidate's phone numbers photo_urlstringURL of the candidate's profile photo recruiterstringRecruiter assigned to the candidate social_media_addressesarrayCandidate's social media addresses tagsarrayTags associated with the candidate titlestringCandidate's title (e.g., Mr., Mrs., Dr.) updated_atstringDate and time of last update website_addressesarrayList of candidate's website addresses
Response Schema Field Name Type Description dataarrayList of matching records metaobjectPagination metadata meta.has_morebooleanWhether additional pages are available meta.cursorstring | nullCursor for next page of results meta.took_msnumber | nullQuery execution time in milliseconds data[].addressesarrayCandidate's addresses data[].application_idsarrayList of application IDs data[].applicationsarrayAn array of all applications made by candidates. data[].attachmentsarrayAttachments related to the candidate data[].can_emailbooleanIndicates if candidate can be emailed data[].companystringCompany where the candidate is associated data[].coordinatorstringCoordinator assigned to the candidate data[].created_atstringDate and time of creation data[].custom_fieldsobjectCustom fields associated with the candidate data[].educationsarrayList of candidate's educations data[].email_addressesarrayCandidate's email addresses data[].employmentsarrayList of candidate's employments data[].first_namestringCandidate's first name data[].idintegerCandidate's ID data[].is_privatebooleanIndicates if the candidate's data is private data[].keyed_custom_fieldsobjectKeyed custom fields associated with the candidate data[].last_activitystringDetails of the last activity related to the candidate data[].last_namestringCandidate's last name data[].phone_numbersarrayCandidate's phone numbers data[].photo_urlstringURL of the candidate's profile photo data[].recruiterstringRecruiter assigned to the candidate data[].social_media_addressesarrayCandidate's social media addresses data[].tagsarrayTags associated with the candidate data[].titlestringCandidate's title (e.g., Mr., Mrs., Dr.) data[].updated_atstringDate and time of last update data[].website_addressesarrayList of candidate's website addresses
Applications
Applications List
Returns a paginated list of all applications
Python SDK
await greenhouse . applications . list ( )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "applications", "action": "list" }'
Parameters
Parameter Name Type Required Description per_pageintegerNo Number of items to return per page (max 500) pageintegerNo Page number for pagination created_beforestringNo Filter by applications created before this timestamp created_afterstringNo Filter by applications created after this timestamp last_activity_afterstringNo Filter by applications with activity after this timestamp job_idintegerNo Filter by job ID status"active" | "rejected" | "hired"No Filter by application status
Response Schema Records Field Name Type Description idintegercandidate_idintegerprospectbooleanapplied_atstringrejected_atstring | nulllast_activity_atstringlocationobject | nullsourceobjectcredited_toobjectrejection_reasonobject | nullrejection_detailsobject | nulljobsarray<object>job_post_idinteger | nullstatusstringcurrent_stageobject | nullanswersarray<object>prospective_officeobject | nullprospective_departmentobject | nullprospect_detailobjectattachmentsarray<object>attachments[].filenamestringattachments[].urlstringattachments[].type"resume" | "cover_letter" | "admin_only" | "take_home_test" | "offer_packet" | "offer_letter" | "signed_offer_letter" | "other"attachments[].created_atstringcustom_fieldsobject
Applications Get
Get a single application by ID
Python SDK
await greenhouse . applications . get ( id = 0 )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "applications", "action": "get", "params": { "id": 0 } }'
Parameters
Parameter Name Type Required Description idintegerYes Application ID
Response Schema Records Field Name Type Description idintegercandidate_idintegerprospectbooleanapplied_atstringrejected_atstring | nulllast_activity_atstringlocationobject | nullsourceobjectcredited_toobjectrejection_reasonobject | nullrejection_detailsobject | nulljobsarray<object>job_post_idinteger | nullstatusstringcurrent_stageobject | nullanswersarray<object>prospective_officeobject | nullprospective_departmentobject | nullprospect_detailobjectattachmentsarray<object>attachments[].filenamestringattachments[].urlstringattachments[].type"resume" | "cover_letter" | "admin_only" | "take_home_test" | "offer_packet" | "offer_letter" | "signed_offer_letter" | "other"attachments[].created_atstringcustom_fieldsobject
Applications Search
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.
Python SDK
await greenhouse . applications . search ( query = { "filter" : { "eq" : { "answers" : [ ] } } } )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "applications", "action": "search", "params": { "query": {"filter": {"eq": {"answers": []}}} } }'
Parameters
Parameter Name Type Required Description queryobjectYes Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or query.filterobjectNo Filter conditions query.sortarrayNo Sort conditions limitintegerNo Maximum results to return (default 1000) cursorstringNo Pagination cursor from previous response's meta.cursor fieldsarrayNo Field paths to include in results
Searchable Fields
Field Name Type Description answersarrayAnswers provided in the application. applied_atstringTimestamp when the candidate applied. attachmentsarrayAttachments uploaded with the application. candidate_idintegerUnique identifier for the candidate. credited_toobjectInformation about the employee who credited the application. current_stageobjectCurrent stage of the application process. idintegerUnique identifier for the application. job_post_idintegerjobsarrayJobs applied for by the candidate. last_activity_atstringTimestamp of the last activity on the application. locationstringLocation related to the application. prospectbooleanStatus of the application prospect. prospect_detailobjectDetails related to the application prospect. prospective_departmentstringProspective department for the candidate. prospective_officestringProspective office for the candidate. rejected_atstringTimestamp when the application was rejected. rejection_detailsobjectDetails related to the application rejection. rejection_reasonobjectReason for the application rejection. sourceobjectSource of the application. statusstringStatus of the application.
Response Schema Field Name Type Description dataarrayList of matching records metaobjectPagination metadata meta.has_morebooleanWhether additional pages are available meta.cursorstring | nullCursor for next page of results meta.took_msnumber | nullQuery execution time in milliseconds data[].answersarrayAnswers provided in the application. data[].applied_atstringTimestamp when the candidate applied. data[].attachmentsarrayAttachments uploaded with the application. data[].candidate_idintegerUnique identifier for the candidate. data[].credited_toobjectInformation about the employee who credited the application. data[].current_stageobjectCurrent stage of the application process. data[].idintegerUnique identifier for the application. data[].job_post_idintegerdata[].jobsarrayJobs applied for by the candidate. data[].last_activity_atstringTimestamp of the last activity on the application. data[].locationstringLocation related to the application. data[].prospectbooleanStatus of the application prospect. data[].prospect_detailobjectDetails related to the application prospect. data[].prospective_departmentstringProspective department for the candidate. data[].prospective_officestringProspective office for the candidate. data[].rejected_atstringTimestamp when the application was rejected. data[].rejection_detailsobjectDetails related to the application rejection. data[].rejection_reasonobjectReason for the application rejection. data[].sourceobjectSource of the application. data[].statusstringStatus of the application.
Jobs
Jobs List
Returns a paginated list of all jobs in the organization
Python SDK
await greenhouse . jobs . list ( )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "jobs", "action": "list" }'
Parameters
Parameter Name Type Required Description per_pageintegerNo Number of items to return per page (max 500) pageintegerNo Page number for pagination
Response Schema Records Field Name Type Description idintegernamestringrequisition_idstring | nullnotesstring | nullconfidentialbooleanstatusstringcreated_atstringopened_atstringclosed_atstring | nullupdated_atstringdepartmentsarray<object | null>officesarray<object>custom_fieldsobjecthiring_teamobjectopeningsarray<object>
Jobs Get
Get a single job by ID
Python SDK
await greenhouse . jobs . get ( id = 0 )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "jobs", "action": "get", "params": { "id": 0 } }'
Parameters
Parameter Name Type Required Description idintegerYes Job ID
Response Schema Records Field Name Type Description idintegernamestringrequisition_idstring | nullnotesstring | nullconfidentialbooleanstatusstringcreated_atstringopened_atstringclosed_atstring | nullupdated_atstringdepartmentsarray<object | null>officesarray<object>custom_fieldsobjecthiring_teamobjectopeningsarray<object>
Jobs Search
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.
Python SDK
await greenhouse . jobs . search ( query = { "filter" : { "eq" : { "closed_at" : "<str>" } } } )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "jobs", "action": "search", "params": { "query": {"filter": {"eq": {"closed_at": "<str>"}}} } }'
Parameters
Parameter Name Type Required Description queryobjectYes Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or query.filterobjectNo Filter conditions query.sortarrayNo Sort conditions limitintegerNo Maximum results to return (default 1000) cursorstringNo Pagination cursor from previous response's meta.cursor fieldsarrayNo Field paths to include in results
Searchable Fields
Field Name Type Description closed_atstringThe date and time the job was closed confidentialbooleanIndicates if the job details are confidential copied_from_idintegerThe ID of the job from which this job was copied created_atstringThe date and time the job was created custom_fieldsobjectCustom fields related to the job departmentsarrayDepartments associated with the job hiring_teamobjectMembers of the hiring team for the job idintegerUnique ID of the job is_templatebooleanIndicates if the job is a template keyed_custom_fieldsobjectKeyed custom fields related to the job namestringName of the job notesstringAdditional notes or comments about the job officesarrayOffices associated with the job opened_atstringThe date and time the job was opened openingsarrayOpenings associated with the job requisition_idstringID associated with the job requisition statusstringCurrent status of the job updated_atstringThe date and time the job was last updated
Response Schema Field Name Type Description dataarrayList of matching records metaobjectPagination metadata meta.has_morebooleanWhether additional pages are available meta.cursorstring | nullCursor for next page of results meta.took_msnumber | nullQuery execution time in milliseconds data[].closed_atstringThe date and time the job was closed data[].confidentialbooleanIndicates if the job details are confidential data[].copied_from_idintegerThe ID of the job from which this job was copied data[].created_atstringThe date and time the job was created data[].custom_fieldsobjectCustom fields related to the job data[].departmentsarrayDepartments associated with the job data[].hiring_teamobjectMembers of the hiring team for the job data[].idintegerUnique ID of the job data[].is_templatebooleanIndicates if the job is a template data[].keyed_custom_fieldsobjectKeyed custom fields related to the job data[].namestringName of the job data[].notesstringAdditional notes or comments about the job data[].officesarrayOffices associated with the job data[].opened_atstringThe date and time the job was opened data[].openingsarrayOpenings associated with the job data[].requisition_idstringID associated with the job requisition data[].statusstringCurrent status of the job data[].updated_atstringThe date and time the job was last updated
Offers
Offers List
Returns a paginated list of all offers
Python SDK
await greenhouse . offers . list ( )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "offers", "action": "list" }'
Parameters
Parameter Name Type Required Description per_pageintegerNo Number of items to return per page (max 500) pageintegerNo Page number for pagination created_beforestringNo Filter by offers created before this timestamp created_afterstringNo Filter by offers created after this timestamp resolved_afterstringNo Filter by offers resolved after this timestamp
Response Schema Records Field Name Type Description idintegerversionintegerapplication_idintegerjob_idintegercandidate_idintegeropeningobject | nullcreated_atstringupdated_atstringsent_atstring | nullresolved_atstring | nullstarts_atstring | nullstatusstringcustom_fieldsobject
Offers Get
Get a single offer by ID
Python SDK
await greenhouse . offers . get ( id = 0 )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "offers", "action": "get", "params": { "id": 0 } }'
Parameters
Parameter Name Type Required Description idintegerYes Offer ID
Response Schema Records Field Name Type Description idintegerversionintegerapplication_idintegerjob_idintegercandidate_idintegeropeningobject | nullcreated_atstringupdated_atstringsent_atstring | nullresolved_atstring | nullstarts_atstring | nullstatusstringcustom_fieldsobject
Offers Search
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.
Python SDK
await greenhouse . offers . search ( query = { "filter" : { "eq" : { "application_id" : 0 } } } )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "offers", "action": "search", "params": { "query": {"filter": {"eq": {"application_id": 0}}} } }'
Parameters
Parameter Name Type Required Description queryobjectYes Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or query.filterobjectNo Filter conditions query.sortarrayNo Sort conditions limitintegerNo Maximum results to return (default 1000) cursorstringNo Pagination cursor from previous response's meta.cursor fieldsarrayNo Field paths to include in results
Searchable Fields
Field Name Type Description application_idintegerUnique identifier for the application associated with the offer candidate_idintegerUnique identifier for the candidate associated with the offer created_atstringTimestamp indicating when the offer was created custom_fieldsobjectAdditional custom fields related to the offer idintegerUnique identifier for the offer job_idintegerUnique identifier for the job associated with the offer keyed_custom_fieldsobjectKeyed custom fields associated with the offer openingobjectDetails about the job opening resolved_atstringTimestamp indicating when the offer was resolved sent_atstringTimestamp indicating when the offer was sent starts_atstringTimestamp indicating when the offer starts statusstringStatus of the offer updated_atstringTimestamp indicating when the offer was last updated versionintegerVersion of the offer data
Response Schema Field Name Type Description dataarrayList of matching records metaobjectPagination metadata meta.has_morebooleanWhether additional pages are available meta.cursorstring | nullCursor for next page of results meta.took_msnumber | nullQuery execution time in milliseconds data[].application_idintegerUnique identifier for the application associated with the offer data[].candidate_idintegerUnique identifier for the candidate associated with the offer data[].created_atstringTimestamp indicating when the offer was created data[].custom_fieldsobjectAdditional custom fields related to the offer data[].idintegerUnique identifier for the offer data[].job_idintegerUnique identifier for the job associated with the offer data[].keyed_custom_fieldsobjectKeyed custom fields associated with the offer data[].openingobjectDetails about the job opening data[].resolved_atstringTimestamp indicating when the offer was resolved data[].sent_atstringTimestamp indicating when the offer was sent data[].starts_atstringTimestamp indicating when the offer starts data[].statusstringStatus of the offer data[].updated_atstringTimestamp indicating when the offer was last updated data[].versionintegerVersion of the offer data
Users
Users List
Returns a paginated list of all users
Python SDK
await greenhouse . users . list ( )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "users", "action": "list" }'
Parameters
Parameter Name Type Required Description per_pageintegerNo Number of items to return per page (max 500) pageintegerNo Page number for pagination created_beforestringNo Filter by users created before this timestamp created_afterstringNo Filter by users created after this timestamp updated_beforestringNo Filter by users updated before this timestamp updated_afterstringNo Filter by users updated after this timestamp
Response Schema Records Field Name Type Description idintegernamestringfirst_namestringlast_namestringprimary_email_addressstringupdated_atstringcreated_atstringdisabledbooleansite_adminbooleanemailsarray<string>employee_idstring | nulllinked_candidate_idsarray<integer>officesarray<object>departmentsarray<object>
Users Get
Get a single user by ID
Python SDK
await greenhouse . users . get ( id = 0 )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "users", "action": "get", "params": { "id": 0 } }'
Parameters
Parameter Name Type Required Description idintegerYes User ID
Response Schema Records Field Name Type Description idintegernamestringfirst_namestringlast_namestringprimary_email_addressstringupdated_atstringcreated_atstringdisabledbooleansite_adminbooleanemailsarray<string>employee_idstring | nulllinked_candidate_idsarray<integer>officesarray<object>departmentsarray<object>
Users Search
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.
Python SDK
await greenhouse . users . search ( query = { "filter" : { "eq" : { "created_at" : "<str>" } } } )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "users", "action": "search", "params": { "query": {"filter": {"eq": {"created_at": "<str>"}}} } }'
Parameters
Parameter Name Type Required Description queryobjectYes Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or query.filterobjectNo Filter conditions query.sortarrayNo Sort conditions limitintegerNo Maximum results to return (default 1000) cursorstringNo Pagination cursor from previous response's meta.cursor fieldsarrayNo Field paths to include in results
Searchable Fields
Field Name Type Description created_atstringThe date and time when the user account was created. departmentsarrayList of departments associated with users disabledbooleanIndicates whether the user account is disabled. emailsarrayEmail addresses of the users employee_idstringEmployee identifier for the user. first_namestringThe first name of the user. idintegerUnique identifier for the user. last_namestringThe last name of the user. linked_candidate_idsarrayIDs of candidates linked to the user. namestringThe full name of the user. officesarrayList of office locations where users are based primary_email_addressstringThe primary email address of the user. site_adminbooleanIndicates whether the user is a site administrator. updated_atstringThe date and time when the user account was last updated.
Response Schema Field Name Type Description dataarrayList of matching records metaobjectPagination metadata meta.has_morebooleanWhether additional pages are available meta.cursorstring | nullCursor for next page of results meta.took_msnumber | nullQuery execution time in milliseconds data[].created_atstringThe date and time when the user account was created. data[].departmentsarrayList of departments associated with users data[].disabledbooleanIndicates whether the user account is disabled. data[].emailsarrayEmail addresses of the users data[].employee_idstringEmployee identifier for the user. data[].first_namestringThe first name of the user. data[].idintegerUnique identifier for the user. data[].last_namestringThe last name of the user. data[].linked_candidate_idsarrayIDs of candidates linked to the user. data[].namestringThe full name of the user. data[].officesarrayList of office locations where users are based data[].primary_email_addressstringThe primary email address of the user. data[].site_adminbooleanIndicates whether the user is a site administrator. data[].updated_atstringThe date and time when the user account was last updated.
Departments
Departments List
Returns a paginated list of all departments
Python SDK
await greenhouse . departments . list ( )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "departments", "action": "list" }'
Parameters
Parameter Name Type Required Description per_pageintegerNo Number of items to return per page (max 500) pageintegerNo Page number for pagination
Response Schema Records Field Name Type Description idintegernamestringparent_idinteger | nullparent_department_external_idstring | nullchild_idsarray<integer>child_department_external_idsarray<string>external_idstring | null
Departments Get
Get a single department by ID
Python SDK
await greenhouse . departments . get ( id = 0 )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "departments", "action": "get", "params": { "id": 0 } }'
Parameters
Parameter Name Type Required Description idintegerYes Department ID
Response Schema Records Field Name Type Description idintegernamestringparent_idinteger | nullparent_department_external_idstring | nullchild_idsarray<integer>child_department_external_idsarray<string>external_idstring | null
Departments Search
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.
Python SDK
await greenhouse . departments . search ( query = { "filter" : { "eq" : { "child_department_external_ids" : [ ] } } } )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "departments", "action": "search", "params": { "query": {"filter": {"eq": {"child_department_external_ids": []}}} } }'
Parameters
Parameter Name Type Required Description queryobjectYes Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or query.filterobjectNo Filter conditions query.sortarrayNo Sort conditions limitintegerNo Maximum results to return (default 1000) cursorstringNo Pagination cursor from previous response's meta.cursor fieldsarrayNo Field paths to include in results
Searchable Fields
Field Name Type Description child_department_external_idsarrayExternal IDs of child departments associated with this department. child_idsarrayUnique IDs of child departments associated with this department. external_idstringExternal ID of this department. idintegerUnique ID of this department. namestringName of the department. parent_department_external_idstringExternal ID of the parent department of this department. parent_idintegerUnique ID of the parent department of this department.
Response Schema Field Name Type Description dataarrayList of matching records metaobjectPagination metadata meta.has_morebooleanWhether additional pages are available meta.cursorstring | nullCursor for next page of results meta.took_msnumber | nullQuery execution time in milliseconds data[].child_department_external_idsarrayExternal IDs of child departments associated with this department. data[].child_idsarrayUnique IDs of child departments associated with this department. data[].external_idstringExternal ID of this department. data[].idintegerUnique ID of this department. data[].namestringName of the department. data[].parent_department_external_idstringExternal ID of the parent department of this department. data[].parent_idintegerUnique ID of the parent department of this department.
Offices
Offices List
Returns a paginated list of all offices
Python SDK
await greenhouse . offices . list ( )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "offices", "action": "list" }'
Parameters
Parameter Name Type Required Description per_pageintegerNo Number of items to return per page (max 500) pageintegerNo Page number for pagination
Response Schema Records Field Name Type Description idintegernamestringlocationobject | nullprimary_contact_user_idinteger | nullparent_idinteger | nullparent_office_external_idstring | nullchild_idsarray<integer>child_office_external_idsarray<string>external_idstring | null
Offices Get
Get a single office by ID
Python SDK
await greenhouse . offices . get ( id = 0 )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "offices", "action": "get", "params": { "id": 0 } }'
Parameters
Parameter Name Type Required Description idintegerYes Office ID
Response Schema Records Field Name Type Description idintegernamestringlocationobject | nullprimary_contact_user_idinteger | nullparent_idinteger | nullparent_office_external_idstring | nullchild_idsarray<integer>child_office_external_idsarray<string>external_idstring | null
Offices Search
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.
Python SDK
await greenhouse . offices . search ( query = { "filter" : { "eq" : { "child_ids" : [ ] } } } )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "offices", "action": "search", "params": { "query": {"filter": {"eq": {"child_ids": []}}} } }'
Parameters
Parameter Name Type Required Description queryobjectYes Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or query.filterobjectNo Filter conditions query.sortarrayNo Sort conditions limitintegerNo Maximum results to return (default 1000) cursorstringNo Pagination cursor from previous response's meta.cursor fieldsarrayNo Field paths to include in results
Searchable Fields
Field Name Type Description child_idsarrayIDs of child offices associated with this office child_office_external_idsarrayExternal IDs of child offices associated with this office external_idstringUnique identifier for this office in the external system idintegerUnique identifier for this office in the API system locationobjectLocation details of this office namestringName of the office parent_idintegerID of the parent office, if this office is a branch office parent_office_external_idstringExternal ID of the parent office in the external system primary_contact_user_idintegerUser ID of the primary contact person for this office
Response Schema Field Name Type Description dataarrayList of matching records metaobjectPagination metadata meta.has_morebooleanWhether additional pages are available meta.cursorstring | nullCursor for next page of results meta.took_msnumber | nullQuery execution time in milliseconds data[].child_idsarrayIDs of child offices associated with this office data[].child_office_external_idsarrayExternal IDs of child offices associated with this office data[].external_idstringUnique identifier for this office in the external system data[].idintegerUnique identifier for this office in the API system data[].locationobjectLocation details of this office data[].namestringName of the office data[].parent_idintegerID of the parent office, if this office is a branch office data[].parent_office_external_idstringExternal ID of the parent office in the external system data[].primary_contact_user_idintegerUser ID of the primary contact person for this office
Job Posts
Job Posts List
Returns a paginated list of all job posts
Python SDK
await greenhouse . job_posts . list ( )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "job_posts", "action": "list" }'
Parameters
Parameter Name Type Required Description per_pageintegerNo Number of items to return per page (max 500) pageintegerNo Page number for pagination livebooleanNo Filter by live status activebooleanNo Filter by active status
Response Schema Records Field Name Type Description idintegertitlestringlocationobject | nullinternalbooleanexternalbooleanactivebooleanlivebooleanfirst_published_atstring | nulljob_idintegercontentstring | nullinternal_contentstring | nullupdated_atstringcreated_atstringdemographic_question_set_idinteger | nullquestionsarray<object>
Job Posts Get
Get a single job post by ID
Python SDK
await greenhouse . job_posts . get ( id = 0 )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "job_posts", "action": "get", "params": { "id": 0 } }'
Parameters
Parameter Name Type Required Description idintegerYes Job Post ID
Response Schema Records Field Name Type Description idintegertitlestringlocationobject | nullinternalbooleanexternalbooleanactivebooleanlivebooleanfirst_published_atstring | nulljob_idintegercontentstring | nullinternal_contentstring | nullupdated_atstringcreated_atstringdemographic_question_set_idinteger | nullquestionsarray<object>
Job Posts Search
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.
Python SDK
await greenhouse . job_posts . search ( query = { "filter" : { "eq" : { "active" : True } } } )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "job_posts", "action": "search", "params": { "query": {"filter": {"eq": {"active": True}}} } }'
Parameters
Parameter Name Type Required Description queryobjectYes Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or query.filterobjectNo Filter conditions query.sortarrayNo Sort conditions limitintegerNo Maximum results to return (default 1000) cursorstringNo Pagination cursor from previous response's meta.cursor fieldsarrayNo Field paths to include in results
Searchable Fields
Field Name Type Description activebooleanFlag indicating if the job post is active or not. contentstringContent or description of the job post. created_atstringDate and time when the job post was created. demographic_question_set_idintegerID of the demographic question set associated with the job post. externalbooleanFlag indicating if the job post is external or not. first_published_atstringDate and time when the job post was first published. idintegerUnique identifier of the job post. internalbooleanFlag indicating if the job post is internal or not. internal_contentstringInternal content or description of the job post. job_idintegerID of the job associated with the job post. livebooleanFlag indicating if the job post is live or not. locationobjectDetails about the job post location. questionsarrayList of questions related to the job post. titlestringTitle or headline of the job post. updated_atstringDate and time when the job post was last updated.
Response Schema Field Name Type Description dataarrayList of matching records metaobjectPagination metadata meta.has_morebooleanWhether additional pages are available meta.cursorstring | nullCursor for next page of results meta.took_msnumber | nullQuery execution time in milliseconds data[].activebooleanFlag indicating if the job post is active or not. data[].contentstringContent or description of the job post. data[].created_atstringDate and time when the job post was created. data[].demographic_question_set_idintegerID of the demographic question set associated with the job post. data[].externalbooleanFlag indicating if the job post is external or not. data[].first_published_atstringDate and time when the job post was first published. data[].idintegerUnique identifier of the job post. data[].internalbooleanFlag indicating if the job post is internal or not. data[].internal_contentstringInternal content or description of the job post. data[].job_idintegerID of the job associated with the job post. data[].livebooleanFlag indicating if the job post is live or not. data[].locationobjectDetails about the job post location. data[].questionsarrayList of questions related to the job post. data[].titlestringTitle or headline of the job post. data[].updated_atstringDate and time when the job post was last updated.
Sources
Sources List
Returns a paginated list of all sources
Python SDK
await greenhouse . sources . list ( )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "sources", "action": "list" }'
Parameters
Parameter Name Type Required Description per_pageintegerNo Number of items to return per page (max 500) pageintegerNo Page number for pagination
Response Schema Records Field Name Type Description idintegernamestringtypeobject | null
Sources Search
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.
Python SDK
await greenhouse . sources . search ( query = { "filter" : { "eq" : { "id" : 0 } } } )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "sources", "action": "search", "params": { "query": {"filter": {"eq": {"id": 0}}} } }'
Parameters
Parameter Name Type Required Description queryobjectYes Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or query.filterobjectNo Filter conditions query.sortarrayNo Sort conditions limitintegerNo Maximum results to return (default 1000) cursorstringNo Pagination cursor from previous response's meta.cursor fieldsarrayNo Field paths to include in results
Searchable Fields
Field Name Type Description idintegerThe unique identifier for the source. namestringThe name of the source. typeobjectType of the data source
Response Schema Field Name Type Description dataarrayList of matching records metaobjectPagination metadata meta.has_morebooleanWhether additional pages are available meta.cursorstring | nullCursor for next page of results meta.took_msnumber | nullQuery execution time in milliseconds data[].idintegerThe unique identifier for the source. data[].namestringThe name of the source. data[].typeobjectType of the data source
Scheduled Interviews
Scheduled Interviews List
Returns a paginated list of all scheduled interviews
Python SDK
await greenhouse . scheduled_interviews . list ( )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "scheduled_interviews", "action": "list" }'
Parameters
Parameter Name Type Required Description per_pageintegerNo Number of items to return per page (max 500) pageintegerNo Page number for pagination created_beforestringNo Filter by interviews created before this timestamp created_afterstringNo Filter by interviews created after this timestamp updated_beforestringNo Filter by interviews updated before this timestamp updated_afterstringNo Filter by interviews updated after this timestamp starts_afterstringNo Filter by interviews starting after this timestamp ends_beforestringNo Filter by interviews ending before this timestamp
Response Schema Records Field Name Type Description idintegerapplication_idintegerexternal_event_idstring | nullcreated_atstringupdated_atstringstartobject | nullendobject | nulllocationstring | nullvideo_conferencing_urlstring | nullstatusstringinterviewobject | nullorganizerobject | nullinterviewersarray<object>
Scheduled Interviews Get
Get a single scheduled interview by ID
Python SDK
await greenhouse . scheduled_interviews . get ( id = 0 )
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "scheduled_interviews", "action": "get", "params": { "id": 0 } }'
Parameters
Parameter Name Type Required Description idintegerYes Scheduled Interview ID
Response Schema Records Field Name Type Description idintegerapplication_idintegerexternal_event_idstring | nullcreated_atstringupdated_atstringstartobject | nullendobject | nulllocationstring | nullvideo_conferencing_urlstring | nullstatusstringinterviewobject | nullorganizerobject | nullinterviewersarray<object>
Application Attachment
Application Attachment Download
Downloads an attachment (resume, cover letter, etc.) for an application by index.
The attachment URL is a temporary signed AWS S3 URL that expires within 7 days.
Files should be downloaded immediately after retrieval.
Python SDK
async for chunk in greenhouse . application_attachment . download ( id = 0 , attachment_index = 0 ) : file . write ( chunk )
Note : Download operations return an async iterator of bytes chunks for memory-efficient streaming. Use async for to process chunks as they arrive.
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "application_attachment", "action": "download", "params": { "id": 0, "attachment_index": 0 } }'
Parameters
Parameter Name Type Required Description idintegerYes Application ID attachment_indexintegerYes Index of the attachment to download (0-based) range_headerstringNo Optional Range header for partial downloads (e.g., 'bytes=0-99')
Candidate Attachment
Candidate Attachment Download
Downloads an attachment (resume, cover letter, etc.) for a candidate by index.
The attachment URL is a temporary signed AWS S3 URL that expires within 7 days.
Files should be downloaded immediately after retrieval.
Python SDK
async for chunk in greenhouse . candidate_attachment . download ( id = 0 , attachment_index = 0 ) : file . write ( chunk )
Note : Download operations return an async iterator of bytes chunks for memory-efficient streaming. Use async for to process chunks as they arrive.
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "candidate_attachment", "action": "download", "params": { "id": 0, "attachment_index": 0 } }'
Parameters
Parameter Name Type Required Description idintegerYes Candidate ID attachment_indexintegerYes Index of the attachment to download (0-based) range_headerstringNo Optional Range header for partial downloads (e.g., 'bytes=0-99')