Permissions:

Product tier: Available to Expert subscription tier

Business Intelligence Connector delivers daily ETLs of your organization's Greenhouse Recruiting or Greenhouse Onboarding data. This article provides a guide to the tables you'll find in your data, with a brief description of each table and what each row represents, as well as anything to watch out for in the dataset.

Check out our Business Intelligence Connector ERD (Entity Relationship Diagram) for more information on how the tables relate to each other!

Tip: If you need to share this article with your development team, you can download a .pdf or .xlsx of this guide.

Application data

Table What does the table represent? What does each row represent? Anything to watch out for?
applications A snapshot of application data The latest status of a single application This table contains the latest data per application, so status and stage_name will represent the current status and current stage, and prospect will represent whether or not the application is a prospect application. If a prospect application is converted to an actual application, the status on the prospect application will change to converted. This table does not contain any historical records. You'll also find prospect_pool, prospect_pool_stage and prospect_owner_id on this table to manage prospect statuses on Greenhouse CRM.

This table contains several ID numbers that can be joined to other tables to get the names (e.g. source_id and referrer_id).
application_custom_fields Custom application fields associated with an application A single value of a single custom field for a single application

custom_field represents the name of the custom field, and display_value represents the value of the custom field.

 

Note: Application custom fields are only available to Expert subscription tier customers.

application_question_answers

Questions and answers that the candidate answered on the job post when submitting an application A single question and answer from a single application
application_stages Historical activity of all stages an application can be in A single stage that an application can be in, and the timestamp that the application entered and exited the stage This table contains a row for each stage that an application can be in, taken from the job that the application is on. There may be rows for stages that an application has yet to reach, or will never reach if the application was rejected.
applications_jobs Mapping of applications to jobs A mapping of one application to one job A candidate can have multiple applications, but a single application is only on one job.

referral_question_custom_fields

Custom referral questions associated with an application A single value of a single custom referral question for a single application custom_field represents the name of the custom rejection question, and display_value represents the value of the custom question.
rejection_question_custom_fields Custom rejection questions associated with an application's rejection A single value of a single custom rejection question for a single application

custom_field represents the name of the custom rejection question, and display_value represents the value of the custom question.

 

Note: Rejection reason custom fields are only available to Expert subscription tier customers.

agency_question_custom_fields Custom agency questions associated with an application. A single value of a single custom agency question from a single application

custom_field represents the name of the custom rejection question, and display_value represents the value of the custom question.

Candidate data

Table What does the table represent? What does each row represent? Anything to watch out for?
candidates A snapshot of relevant candidate data A single candidate A candidate is a person. A candidate may have multiple applications on multiple jobs.

The "recruiter" and "coordinator" that is assigned to a candidate may or may not be the same recruiter and coordinator that is assigned to the hiring team of a job that the candidate has an application on.
candidate_custom_fields Custom fields associated with a candidate A single value of a single custom field for a single candidate custom_field represents the name of the custom field, and display_value represents the value of the custom field.
candidate_tags All tags associated with a candidate A single tag on a single candidate This table only has tag_id and needs to be joined to the tags table to get the tag name.
educations All educations associated with a candidate A single structured education for a single candidate This data is only generated when education is added in a structured method in the candidate info section of the Candidate Details tab in Greenhouse Recruiting.
employments All employments associated with a candidate A single structured employment record for a single candidate This data is only generated when employment is added in a structured method in the candidate info section of the Candidate Details tab in Greenhouse Recruiting.

Candidate PII data

Note: These tables are opt-in only. Check out this article for information on enabling candidate PII tables.

Table What does the table represent? What does each row represent? Anything to watch out for?
candidate_email_addresses A list of email addresses by candidate A single email address and the associated candidate This table is opt-in only. Learn how to enable this table.
candidate_mailing_addresses A list of mailing addresses by candidate A single mailing address and the associated candidate This table is opt-in only. Learn how to enable this table.
candidate_phone_numbers A list of phone numbers by candidate A single phone number and the associated candidate This table is opt-in only. Learn how to enable this table.

Demographic data

Table What does the table represent? What does each row represent? Anything to watch out for?
demographic_answers Responses to U.S. standard or custom demographic questions A single application’s response to a custom demographic question Note: Custom demographic questions are only available to Expert subscription tier customers.
demographic_answer_options U.S. standard or custom demographic question answer options A single custom demographic question answer option If free_form = true, the custom demographic question answer option allows for free-text answers.
demographic_answer_option_translations Translated custom demographic question answer options A single translated custom demographic question answer option Translations have been deprecated; only en (English) is supported at this time.
demographic_free_form_answers Free-text responses to U.S. standard or custom demographic questions A single application’s free-text responses to custom demographic questions If your custom demographic question answer options allow for self-describe via free-text, applicant responses will show here.
demographic_questions U.S. standard or custom demographic questions A single custom demographic question

If active = false, the custom demographic question has been deleted.

If required = true, the custom demographic question is required for applicants. 

 

Note: Custom demographic questions are only available to Expert subscription tier customers.

demographic_question_set U.S. standard or custom demographic question sets from your organization A single group of custom demographic questions

demographic_question_translations Translated custom demographic questions A single translated custom demographic question Translations have been deprecated; only en (English) is supported at this time.
eeoc_responses Responses to EEOC questions A single application's responses to the EEOC questions Data is only generated in this table when an application responds to the EEOC questions, or a request is sent to an application to respond to the questions. Data is not generated for applications that did not respond to questions on the job post, and did not receive a request to respond to the questions afterwards.

Greenhouse Onboarding data

Note: Greenhouse Onboarding data is only available to organizations with Greenhouse Onboarding. These tables are opt-in only. Check out this article for information on enabling Greenhouse Onboarding tables.

Table What does the table represent? What does each row represent? Anything to watch out for?
gho_assigned_tasks

A list of assigned tasks from Greenhouse Onboarding

A single assigned task and the associated Greenhouse Onboarding employee

Due_date_relative_days shows when due date is relative to start date and displays the number for days before or after the employee's start date.

gho_custom_fields

A list of available values from your custom fields in Greenhouse Onboarding

A single Greenhouse Onboarding custom field value and the associated employee

Field type is one of text, long_text, multiple_choice, multiple_select, contact, team, date, employee, address, legal_name, preferred_name, image, country, masked.

gho_custom_field_values

A list of available custom fields from Greenhouse Onboarding

A single custom field from Greenhouse Onboarding

Field type is one of text, long_text, multiple_choice, multiple_select, contact, team, date, employee, address, legal_name, preferred_name, image, country, masked.

gho_employees

A list of available employee roles from Greenhouse Onboarding

A single Greenhouse Onboarding role and the associated Greenhouse Onboarding employee

role_ID is from the gho_roles table.

gho_employee_roles

A list of your employees from Greenhouse Onboarding

A single Greenhouse Onboarding employee

global_role is one of owner, coordinator, or employee.

gho_roles

A list of available roles from Greenhouse Onboarding

A single Greenhouse Onboarding role

This table provides the Greenhouse Onboarding role but does not show the permission required for the role.

gho_user_activities

A list of all user activities from Greenhouse Onboarding

A single activity from Greenhouse Onboarding and the associated employee

This table provides an hourly snapshot of user activity in Greenhouse Onboarding. If a user has interacted with GHO in a given hour, they will have an entry in this table for the hour.

Job data

Table What does the table represent? What does each row represent? Anything to watch out for?
jobs A snapshot of relevant job data The latest status of a single job Each job only has one set of opened_at and closed_at values. If a job is opened, closed, and re-opened again, the first pair of open/close dates are lost. This table does not contain any historical records. A history of job open / close dates can be found in the Change Log in Greenhouse Recruiting.
job_custom_fields Custom job fields associated with a job A single value of a single custom field for a single job custom_field represents the name of the custom field, and display_value represents the value of the custom field.
job_snapshots A daily snapshot of job-level activity Various job-level metrics for a single day
jobs_attributes A list of attributes on scorecards by job A single tag on a single job
jobs_departments A list of departments by job A single department on a single job
jobs_interviews A list of interviews by job A single interview on a single stage for a single job
jobs_offices A list of offices by job A single office on a single job
job_posts A list of job posts by job The details of a job post that are associated with a job The job_post_id in this table refers to job_posts.id.
job_post_questions A snapshot of your organization's job post questions A single job post question
jobs_stages A list of stages by job A single stage for a single job
hiring_team The hiring team for a job A single Greenhouse Recruiting user in a hiring team role on a single job Each row represents a single user on a single role, so if a hiring team has 2 or more members on the same role, those members will be represented in multiple rows.

This table only contains user_id and not user name, which can be identified by joining onto the users table.
openings The openings on a job A single opening for a single job
opening_custom_fields A snapshot of your organization's custom opening fields A single value of a single custom opening field for a single opening

Offer data

Table What does the table represent? What does each row represent? Anything to watch out for?
offers All offer details The details of a single version an offer for an application Each version of an offer generates a new row of data. The older versions are all marked with status = deprecated.
offer_custom_fields Custom offer fields associated with an offer A single value of a single custom field for a single offer custom_field represents the name of the custom field, and display_value represents the value of the custom field.

Organization data

Table What does the table represent? What does each row represent? Anything to watch out for?
organizations The name of your organization The name of your organization
attributes A list of all attributes ever used on a scorecard A single attribute This table can be joined to any other table that has an attribute ID to get the name of the attribute. The same attribute name may appear multiple times in this table, once for each hiring plan on which it appears.
departments A list of all departments A single department This table can be joined to any other table that has a department ID to get the name of a department.
events A list of all Events created by your organization A single event
interviews A list of all interviews A single interview This table can be joined to any other table that has an interview ID to get the name of an interview. The same interview name may appear multiple times in this table, once for each hiring plan on which it appears.
interviewer_tags A list of all interviewer tags associated with users A single interviewer tag for a single user
offices A list of all offices A single office This table can be joined to any other table that has an office ID to get the name of an office.
referrers A list of all referrers A single referrer This table can be joined to any other table that has a referrer_ID to get the name of a referrer.
rejection_reasons A list of all rejection reasons A single rejection reason This table can be joined to any other table that has a rejection_reason_ID to get the name of a rejection reason.
sources A list of all sources A single source This table can be joined to any other table that has a source_ID to get the name of a source.
stages A list of all stages A single stage This table can be joined to any other table that has a stage_ID to get the name of a stage. The same stage name may appear multiple times in this table, once for each hiring plan on which it appears.
tags A list of all tags A single tag This table can be joined to any other table that has a tag_ID to get the name of a tag.
users A list of all users A single user This table can be joined to any other table that has a user_ID to get the name of a user.
user_attribute_custom_fields Your organization's custom user fields A single value from a single custom user field for a single user
user_candidate_links Your organization's Greenhouse Recruiting user-candidate links A single Greenhouse Recruiting user's link to a single submitted candidate application

Process data

Table What does the table represent? What does each row represent? Anything to watch out for?
scheduled_interviews Data on scheduled interviews A scheduled interview Data is only generated when an interview is scheduled with Greenhouse (as evidenced the presence of a Greenhouse calendar on the scheduled interview's calendar invite). If an interview occurs or a scorecard is submitted when the interview was not scheduled with Greenhouse, it will not appear in this table. If interviews are rescheduled, this table does not capture the timestamp at which it was rescheduled; the scheduled_at table only represents the very first the interview was scheduled.
interviewers A list of interviewers per scheduled interview An interviewer for a scheduled interview

This table is joined to the scheduled_interviews

table on scheduled_interviews.id = interviewers.interview_id

scorecards Data on submitted scorecards A submitted scorecard Data is only generated when a scorecard is submitted in Greenhouse Recruiting. If a scorecard is not submitted, it will not appear in this table. If an interview has been scheduled, you can connect the scheduled_interviews table to the interviewers table, and then connect the scorecards table to the interviewers table.
scorecards_attributes Attribute-level data on a submitted scorecard An attribute rating on a submitted scorecard This table can be joined to the scorecards data to show attribute-level ratings, in addition to the overall recommendation.

scorecard_questions

A snapshot of your organization's scorecard questions A single scorecard question from a single job

scorecard_question_answers

Questions and answers that exist on a scorecard A single question and answer
stage_snapshots A daily snapshot of stage-level activity The number of active applications in a stage at 4am EST on a given date, only for jobs that were open at that time
candidate_surveys Candidate survey responses A single response to the candidate survey To protect candidate privacy, candidate survey responses are not associated with a candidate or to a job.

candidate_survey_questions

The list of candidate survey questions The text of the question asked on the candidate survey The ID numbers on the table correspond to question #1, question #2, and so on.

approvals

A list of all approvals A specific job or offer approval associated with each approver

This table includes all approvals, including offer approvals and both one-stage and two-stage job approvals. Some data may not be present depending on the approval type. Open job approvals will not have candidate or application details.

approver_id represents the approver's Greenhouse Recruiting user_id and can be joined to the users table.

gdpr_consent_requests

GDPR consent requests A timestamped GDPR request to a single candidate

gdpr_consent_decisions

A list of when candidates gave or denied GDPR consent A timestamped approval or denial of GDPR consent by a single candidate

 

gdpr_office_rules

A snapshot of your organization's GDPR rules by office A single office's GDPR retention period

GDPR office rules link to offices.id.

prospect_pools

A snapshot of your organization's prospect pools A single prospect pool

Prospect pools link to prospect_pool.id.

prospect_pool_stages

Your organization's prospect pool stages A single prospect pool stage from a single prospect pool

Prospect pool stages link to prospect_pool.id.

prospect_pool_transitions

Records when an application is moved from one prospect pool to another, or from one prospect pool stage to another A single prospect's movement from a single prospect pool to another prospect pool or stage

Usage data

Table What does the table represent? What does each row represent? Anything to watch out for?
greenhouse_usages A record of Greenhouse usages A record of a user using Greenhouse Recruiting on a single date
user_actions A record of user actions in Greenhouse Recruiting A single action from a user on a single job Not all actions are recorded in this table. In general, it's better to look for a specific timestamped activity in an associated table.