Generated docs can be found at src/docs, but they're not super-readable in GitHub markdown. Below is a summary of how to manage some resource types.
Note: this is not necessary if you're using the pipeline to run Terraform.
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
| harvest_token | String | yes | - | Token for the Harvest API |
| jobs_token | String | yes | - | Token for the Job Board API |
| on_behalf_of | String | yes | - | User ID on whose behalf requests are made |
| harvest_url | String | no | Harvest API URL | |
| jobs_url | String | no | Job Board API URL |
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
| name | String | yes | - | The department's name |
| parent_id | Integer | no | - | The ID of this department's parent department |
Example:
resource "greenhouse_department" "mydepartment" {
name = "My department"
parent_id = greenhouse_department.myparentdepartment.id
}
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
| name | String | yes | - | The office's name |
| location_name | String | no | - | A free-text field for the office's location |
| parent_id | Integer | no | - | The ID of this office's parent office |
| primary_contact_user_id | Integer | no | - | The ID of this office's primary contact user |
Example:
resource "greenhouse_office" "myoffice" {
name = "My office"
location_name = "Right here"
parent_id = greenhouse_office.myparentoffice.id
primary_contact_user_id = greenhouse_user.bigbossperson.id
}
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
| first_name | String | yes | - | The user's first name |
| last_name | String | yes | - | The user's last name |
| primary_email_address | String | yes | - | The user's email address |
| disable_user | Boolean | no | false | If true, disable this user |
| employee_id | String | no | - | Free-text for an internal employee ID |
| send_email | Boolean | no | false | Send this user a notification email |
Example:
resource "greenhouse_user" "bigbossperson" {
first_name = "Boss"
last_name = "Person"
primary_email_address = "[email protected]"
disable_user = false
employee_id = "001"
send_email = false
}
| Attribute | Type | Required | Default | Description |
|---|---|---|---|---|
| number_of_openings | Integer | yes | - | Number of openings for this job |
| template_job_id | Integer | yes | - | The ID of the template job to use |
| anywhere | Boolean | no | - | This job can be done from anywhere |
| confidential | Boolean | no | - | This job is confidential |
| custom_fields | Map of string | no | - | Custom fields to attach |
| department_id | integer | no | - | The ID of the job with which this job is associated |
| hiring_team | Block set (see below) | no | - | The hiring team for this job |
| how_to_sell_this_job | String | no | - | Entry for the "How to sell this job" field |
| job_name | String | no | If not specified, it becomes "Copy of <template job name>" | The name for this job |
| job_post_name | String | no | - | The name to be used for the job post |
| notes | String | no | - | Notes about this job |
| office_ids | Set of Integer | no | - | A list of office ids to associate with this job |
| opening_ids | Set of Integer | no | - | A list of job opening IDs to associate with this job |
| requisition_id | String | no | - | Requisition ID to use for this job |
| team_and_responsibilities | String | no | - | Fills in the "Team and Responsibilities" field |
| Hiring team block set: | ||||
| Attribute | Type | Required | Default | Description |
| --------- | ---- | -------- | ------- | ----------- |
| name | String | yes | - | The hiring team's name |
| members | Block set (see below) | yes | - | A list of hiring team members |
| Hiring team member block set: | ||||
| Attribute | Type | Required | Default | Description |
| --------- | ---- | -------- | ------- | ----------- |
| user_id | Integer | yes | - | The user's ID number |
| responsible_for_active_candidates | Boolean | no | false | The user is responsible for active candidates |
| responsible_for_future_candidates | Boolean | no | false | The user is responsible for future candidates |
| responsible_for_inactive_candidates | Boolean | no | false | The user is responsible for inactive candidates |
Example:
resource "greenhouse_job" "mynewjob" {
number_openings = 1
template_job_id = greenhouse_job.mytemplate.id
anywhere = false
confidential = false
custom_fields = {
field1 = "value1",
field2 = "value2",
}
department_id = greenhouse_department.mydepartment.id
hiring_team {
name = "recruiters"
members {
user_id = greenhouse_user.recruiter1.id
responsible_for_active_candidates = true
responsible_for_future_candidates = true
responsible_for_inactive_candidates = false
}
members {
user_id = greenhouse_user.recruiter2.id
responsible_for_inactive_candidates = true
}
}
hiring_team {
name = "hiring_managers"
members {
user_id = greenhouse_user.bigbossperson.id
responsible_for_active_candidates = true
responsible_for_future_candidates = true
responsible_for_inactive_candidates = true
}
}
how_to_sell_this_job = "Say cool things.\nSay nice things.\n"
job_name = "My cool job"
job_post_name = "My cool job"
notes = "Notes go here."
office_ids =
greenhouse_office.office1.id,
greenhouse_office.office2.id,
opening_ids = [
greenhouse_opening.myjobopening.id,
]
requisition_id = "abc123"
team_and_responsibilities = "You work with a team of cool people doing cool things.\nYou are expected to create 500 widgets each day."
}