# Greenhouse on boxd

> Applicant tracking and recruiting software to optimize your entire recruiting process.

- Page: https://boxd.sh/integrations/greenhouse/
- CLI: `run greenhouse` (134 commands, 1 marked common)
- SDK: `import { greenhouse } from "@boxd/run"`; every parameter and response type is at `@boxd/run/greenhouse`
- Triggers: none
- Connect: `run auth greenhouse` (Sign in with Greenhouse), or https://app.boxd.sh/integrations/detail/greenhouse
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth greenhouse      # once: prints a link to connect your account
run greenhouse           # list its commands
run greenhouse get-current-user
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, greenhouse } from "@boxd/run";

every("1 hour", async () => {
  const result = await greenhouse.getCurrentUser();
  console.log(result);
});
```

Run it with `run greenhouse.run.ts`. Greenhouse has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run greenhouse <command> --help` lists the optional ones. "common" marks what `run greenhouse` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `activate-user` | `greenhouse.activateUser()` | `--id` | 0 | Reactivate a previously deactivated Greenhouse user via the Harvest v3 API so they can sign in again |
| `anonymize-candidate` | `greenhouse.anonymizeCandidate()` | `--fields` `--id` | 0 | Anonymize selected categories of personally identifiable data on a Greenhouse candidate via the Harvest v3 API, for GDPR or right-to-be-forgotten requests |
| `apply-candidate-tag` | `greenhouse.applyCandidateTag()` | `--candidate-id` `--candidate-tag-id` | 0 | Apply an existing candidate tag to a candidate via the Greenhouse Harvest v3 API |
| `bulk-create-blocked-spam-sources` | `greenhouse.bulkCreateBlockedSpamSources()` | `--data` | 2 | Add multiple blocked spam sources to Greenhouse in a single request via the Harvest v3 API |
| `bulk-create-custom-field-options` | `greenhouse.bulkCreateCustomFieldOptions()` | `--data` | 0 | Add many custom field options at once to select-type custom fields via the Greenhouse Harvest v3 API |
| `bulk-create-openings` | `greenhouse.bulkCreateOpenings()` | `--data` | 1 | Asynchronously create many Greenhouse openings across one or more jobs in a single Harvest v3 call |
| `bulk-deactivate-users` | `greenhouse.bulkDeactivateUsers()` | `--data` | 1 | Asynchronously deactivate many Greenhouse users in a single Harvest v3 call, up to the bulk-endpoint cap per request |
| `bulk-delete-custom-field-options` | `greenhouse.bulkDeleteCustomFieldOptions()` | `--data` | 0 | Archive many custom field options at once by id via the Greenhouse Harvest v3 API |
| `bulk-update-blocked-spam-sources` | `greenhouse.bulkUpdateBlockedSpamSources()` | `--data` | 1 | Asynchronously update the note on many Greenhouse blocked spam sources in a single Harvest v3 call |
| `bulk-update-custom-field-options` | `greenhouse.bulkUpdateCustomFieldOptions()` | `--data` | 1 | Asynchronously edit many Greenhouse custom field options in a single Harvest v3 call |
| `bulk-update-departments` | `greenhouse.bulkUpdateDepartments()` | `--data` | 2 | Asynchronously update many Greenhouse departments in a single call via the Harvest v3 API |
| `bulk-update-offices` | `greenhouse.bulkUpdateOffices()` | `--data` | 1 | Asynchronously update many Greenhouse offices in a single Harvest v3 call |
| `bulk-update-openings` | `greenhouse.bulkUpdateOpenings()` | `--data` | 2 | Asynchronously update many Greenhouse openings in a single call via the Harvest v3 API |
| `bulk-update-users` | `greenhouse.bulkUpdateUsers()` | `--data` | 2 | Asynchronously update many Greenhouse users in a single call via the Harvest v3 API |
| `create-application` | `greenhouse.createApplication()` | `--candidate-id` | 15 | Create a new application for an existing Greenhouse candidate via the Harvest v3 API |
| `create-approval-flow` | `greenhouse.createApprovalFlow()` | `--approval-type` `--approver-groups` `--job-id` `--sequential` | 1 | Create a multi-step approval flow on a Greenhouse job via the Harvest v3 API |
| `create-attachment` | `greenhouse.createAttachment()` | `--application-id` `--filename` `--type` | 3 | Attach a file to an existing Greenhouse application via the Harvest v3 API |
| `create-blocked-spam-source` | `greenhouse.createBlockedSpamSource()` | `--source-type` `--value` | 1 | Add a new IP address, CIDR range, email address, or email domain to the organization's spam blocklist via the Greenhouse Harvest v3 API |
| `create-candidate` | `greenhouse.createCandidate()` | `--first-name` `--last-name` | 14 | Create a new candidate profile in Greenhouse via the Harvest v3 API |
| `create-candidate-education` | `greenhouse.createCandidateEducation()` | `--candidate-id` | 9 | Add a new education entry to a Greenhouse candidate's profile via the Harvest v3 API |
| `create-candidate-employment` | `greenhouse.createCandidateEmployment()` | `--candidate-id` `--company-name` `--start-date` `--title` | 1 | Add a new work-history (employment) entry to a Greenhouse candidate's profile via the Harvest v3 API |
| `create-candidate-tag` | `greenhouse.createCandidateTag()` | `--name` | 0 | Add a new tag to the organization's candidate-tag dictionary via the Greenhouse Harvest v3 API |
| `create-custom-field` | `greenhouse.createCustomField()` | `--field-type` `--name` `--value-type` | 11 | Add a new custom field to your organization's dictionary via the Greenhouse Harvest v3 API |
| `create-custom-field-department` | `greenhouse.createCustomFieldDepartment()` | `--custom-field-id` `--department-id` | 0 | Restrict a custom field's visibility to one additional department via the Greenhouse Harvest v3 API |
| `create-custom-field-office` | `greenhouse.createCustomFieldOffice()` | `--custom-field-id` `--office-id` | 0 | Restrict a custom field's visibility to one additional office via the Greenhouse Harvest v3 API |
| `create-custom-field-option` | `greenhouse.createCustomFieldOption()` | `--custom-field-id` `--name` `--sort-order` | 1 | Add a new selectable value to a single_select or multi_select custom field via the Greenhouse Harvest v3 API |
| `create-department` | `greenhouse.createDepartment()` | `--name` | 3 | Create a new department for the organization via the Greenhouse Harvest v3 API |
| `create-interview` | `greenhouse.createInterview()` | `--application-id` `--ends-at` `--external-event-id` `--interviewers` `--job-interview-id` `--starts-at` | 2 | Create a scheduled interview against a candidate application in Greenhouse Harvest |
| `create-job` | `greenhouse.createJob()` | `--number-of-openings` `--template-job-id` | 10 | Create a new Greenhouse job from an existing template via the Harvest v3 API |
| `create-job-hiring-manager` | `greenhouse.createJobHiringManager()` | `--job-id` `--user-id` | 0 | Assign a user as a hiring manager on a Greenhouse job via the Harvest v3 API |
| `create-job-note` | `greenhouse.createJobNote()` | `--body` `--job-id` `--user-id` `--visibility` | 0 | Create a free-form note attached to a Greenhouse job via the Harvest v3 API |
| `create-job-owner` | `greenhouse.createJobOwner()` | `--job-id` `--type` `--user-id` | 0 | Add a Greenhouse user to a job's hiring team as a recruiter, sourcer, or coordinator via the Harvest v3 API |
| `create-note` | `greenhouse.createNote()` | `--body` `--candidate-id` `--note-type` `--visibility` | 6 | Create a candidate note, log an email, or record an activity-feed entry on a Greenhouse candidate via the Harvest v3 API |
| `create-offer` | `greenhouse.createOffer()` | `--application-id` | 2 | Create a new offer on an existing Greenhouse application via the Harvest v3 API |
| `create-office` | `greenhouse.createOffice()` | `--name` | 4 | Create a new office for the organization via the Greenhouse Harvest v3 API |
| `create-opening` | `greenhouse.createOpening()` | `--job-id` | 2 | Add a new opening (headcount slot) to an existing Greenhouse job via the Harvest v3 API |
| `create-user` | `greenhouse.createUser()` | `--first-name` `--last-name` `--primary-email` | 7 | Create a new user in your Greenhouse Recruiting organization via the Harvest v3 API |
| `create-user-email` | `greenhouse.createUserEmail()` | `--email` `--user-id` | 1 | Attach an additional email address to an existing Greenhouse user via the Harvest v3 API |
| `create-user-job-permission` | `greenhouse.createUserJobPermission()` | `--job-id` `--role-id` `--user-id` | 0 | Grant a Greenhouse user a Job Admin role on a single job via the Harvest v3 API |
| `deactivate-user` | `greenhouse.deactivateUser()` | `--id` | 0 | Deactivate a Greenhouse user via the Harvest v3 API, preventing that user from signing in while preserving their historical data |
| `delete-application` | `greenhouse.deleteApplication()` | `--id` | 0 | Permanently delete a single Greenhouse application via the Harvest v3 API, along with its interview stages, scorecards, rejection details, and prospect details |
| `delete-applied-candidate-tag` | `greenhouse.deleteAppliedCandidateTag()` | `--id` | 0 | Detach a single tag from a candidate in Greenhouse via the Harvest v3 API, identified by its applied candidate tag id |
| `delete-attachment` | `greenhouse.deleteAttachment()` | `--id` | 1 | Permanently remove an attachment from its Greenhouse application via the Harvest v3 API, identified by its attachment id |
| `delete-blocked-spam-source` | `greenhouse.deleteBlockedSpamSource()` | `--id` | 1 | Permanently remove a single blocked spam source from Greenhouse via the Harvest v3 API |
| `delete-candidate` | `greenhouse.deleteCandidate()` | `--id` | 0 | Permanently delete a candidate from Greenhouse via the Harvest v3 API |
| `delete-candidate-education` | `greenhouse.deleteCandidateEducation()` | `--id` | 0 | Remove a single education entry from a Greenhouse candidate's profile via the Harvest v3 API |
| `delete-candidate-employment` | `greenhouse.deleteCandidateEmployment()` | `--id` | 0 | Permanently delete a single employment entry from a candidate's profile in Greenhouse via the Harvest v3 API |
| `delete-candidate-tag` | `greenhouse.deleteCandidateTag()` | `--id` | 0 | Delete a tag from your organization's candidate-tag dictionary in Greenhouse via the Harvest v3 API, identified by its candidate tag id |
| `delete-custom-field-office` | `greenhouse.deleteCustomFieldOffice()` | `--id` | 0 | Remove an office from a custom field's visibility scope via the Greenhouse Harvest v3 API |
| `delete-custom-field-option` | `greenhouse.deleteCustomFieldOption()` | `--id` | 0 | Archive a single custom field option via the Greenhouse Harvest v3 API so it can no longer be selected on new records |
| `delete-interview` | `greenhouse.deleteInterview()` | `--id` | 1 | Cancel and permanently delete a scheduled interview in Greenhouse via the Harvest v3 API, identified by its interview id |
| `delete-job-hiring-manager` | `greenhouse.deleteJobHiringManager()` | `--id` | 0 | Unassign a hiring manager from a Greenhouse job by deleting the job hiring manager join row, identified by its id, via the Harvest v3 API |
| `delete-job-note` | `greenhouse.deleteJobNote()` | `--id` | 0 | Permanently delete a Greenhouse job note, identified by its id, via the Harvest v3 API |
| `delete-job-owner` | `greenhouse.deleteJobOwner()` | `--id` | 0 | Remove a Greenhouse user from a job's hiring team in a single role by deleting the job owner join row, identified by its id, via the Harvest v3 API |
| `delete-user-job-permission` | `greenhouse.deleteUserJobPermission()` | `--id` | 0 | Revoke a single Greenhouse user job permission by its id via the Harvest v3 API, removing that user's Job Admin role on the associated job |
| `get-current-user` ·common | `greenhouse.getCurrentUser()` | — | 0 | Get the Greenhouse user represented by the connected Harvest OAuth token |
| `hire-application` | `greenhouse.hireApplication()` | `--id` | 3 | Mark a Greenhouse application as hired and close out the matching opening on the job via the Harvest v3 API |
| `list-application-stages` | `greenhouse.listApplicationStages()` | — | 11 | List the application stage history rows in your Greenhouse organization, one row per interview stage an application has occupied, with entered_at and exited_at timestamps |
| `list-applications` | `greenhouse.listApplications()` | — | 21 | List the applications in your Greenhouse organization, which associate candidates with jobs (candidate applications attach to exactly one job; prospect applications attach to zero or more) |
| `list-approval-flows` | `greenhouse.listApprovalFlows()` | — | 9 | List the approval flows in a Greenhouse organization via the Harvest v3 API |
| `list-approver-groups` | `greenhouse.listApproverGroups()` | — | 7 | List the approver groups in a Greenhouse organization via the Harvest v3 API |
| `list-approvers` | `greenhouse.listApprovers()` | — | 9 | List approver records in a Greenhouse organization via the Harvest v3 API |
| `list-attachments` | `greenhouse.listAttachments()` | — | 11 | List the attachments in your Greenhouse organization, which are files associated with applications such as resumes, cover letters, take-home tests, offer documents, and e-signed agreements |
| `list-bulk-requests` | `greenhouse.listBulkRequests()` | — | 2 | List the asynchronous bulk requests submitted to Greenhouse Harvest v3, each tracking a batch operation with its record, success, and failure counts and current status |
| `list-candidate-educations` | `greenhouse.listCandidateEducations()` | — | 7 | List candidate educations in a Greenhouse organization via the Harvest v3 API |
| `list-candidate-employments` | `greenhouse.listCandidateEmployments()` | — | 7 | List candidate employments in a Greenhouse organization via the Harvest v3 API |
| `list-candidate-tags` | `greenhouse.listCandidateTags()` | — | 3 | List the candidate tags configured in a Greenhouse organization via the Harvest v3 API |
| `list-candidates` | `greenhouse.listCandidates()` | — | 20 | List the candidates (active applicants and prospects) in your Greenhouse organization, returning each candidate's profile: names, contact methods, tags, custom fields, and timestamps |
| `list-close-reasons` | `greenhouse.listCloseReasons()` | — | 6 | List the close reasons configured in a Greenhouse organization via the Harvest v3 API |
| `list-custom-field-departments` | `greenhouse.listCustomFieldDepartments()` | — | 8 | List the custom field department associations configured in a Greenhouse organization via the Harvest v3 API |
| `list-custom-field-offices` | `greenhouse.listCustomFieldOffices()` | — | 8 | List the custom_field_office associations in a Greenhouse organization via the Harvest v3 API |
| `list-custom-field-options` | `greenhouse.listCustomFieldOptions()` | — | 9 | List the custom field options configured in a Greenhouse organization via the Harvest v3 API |
| `list-custom-fields` | `greenhouse.listCustomFields()` | — | 10 | List the custom field definitions configured in a Greenhouse organization via the Harvest v3 API |
| `list-default-interviewers` | `greenhouse.listDefaultInterviewers()` | — | 8 | List the default interviewers configured in a Greenhouse organization via the Harvest v3 API |
| `list-demographic-answer-options` | `greenhouse.listDemographicAnswerOptions()` | — | 2 | List all of a Greenhouse organization's demographic answer options via the Harvest v3 API |
| `list-demographic-answers` | `greenhouse.listDemographicAnswers()` | — | 6 | List all of a Greenhouse organization's demographic answers via the Harvest v3 API |
| `list-demographic-question-sets` | `greenhouse.listDemographicQuestionSets()` | — | 2 | List all of a Greenhouse organization's demographic question sets via the Harvest v3 API |
| `list-demographic-questions` | `greenhouse.listDemographicQuestions()` | — | 2 | List the demographic questions configured in a Greenhouse organization via the Harvest v3 API |
| `list-departments` | `greenhouse.listDepartments()` | — | 8 | List the departments configured in a Greenhouse organization via the Harvest v3 API |
| `list-eeoc` | `greenhouse.listEeoc()` | — | 3 | List EEOC self-identification responses in a Greenhouse organization via the Harvest v3 API |
| `list-email-templates` | `greenhouse.listEmailTemplates()` | — | 5 | List the email templates configured in a Greenhouse organization via the Harvest v3 API |
| `list-focus-candidate-attributes` | `greenhouse.listFocusCandidateAttributes()` | — | 10 | List the focus candidate attributes in your Greenhouse organization, the subset of a job's job_candidate_attributes that an interview kit elevates as focus areas at the top of the interviewer's… |
| `list-interview-kits` | `greenhouse.listInterviewKits()` | — | 8 | List the interview kits (per-job, per-slot evaluation packets interviewers see when conducting an interview) in a Greenhouse organization via the Harvest v3 API |
| `list-interviewer-tags` | `greenhouse.listInterviewerTags()` | — | 12 | List the interviewer tags in your Greenhouse organization: the organization-defined labels that can be assigned to interviewer users (for example "Phone Screener" or "Culture Add Interviewer") |
| `list-interviews` | `greenhouse.listInterviews()` | — | 8 | List scheduled interview events in a Greenhouse organization via the Harvest v3 API |
| `list-job-board-custom-locations` | `greenhouse.listJobBoardCustomLocations()` | — | 8 | List a Greenhouse organization's job board custom locations via the Harvest v3 API |
| `list-job-boards` | `greenhouse.listJobBoards()` | — | 8 | List the job boards configured in a Greenhouse organization via the Harvest v3 API |
| `list-job-candidate-attributes` | `greenhouse.listJobCandidateAttributes()` | — | 9 | List the job candidate attributes (the per-job instances of a job's candidate_attribute_types) in a Greenhouse organization via the Harvest v3 API |
| `list-job-hiring-managers` | `greenhouse.listJobHiringManagers()` | — | 8 | List the job hiring managers configured in a Greenhouse organization via the Harvest v3 API |
| `list-job-interview-stages` | `greenhouse.listJobInterviewStages()` | — | 10 | List the job interview stages in your Greenhouse organization, the steps that make up each job's interview plan (e.g |
| `list-job-interviews` | `greenhouse.listJobInterviews()` | — | 9 | List the interview slot template definitions configured on jobs' interview plans in a Greenhouse organization via the Harvest v3 API |
| `list-job-notes` | `greenhouse.listJobNotes()` | — | 9 | List the free-form, organization-internal notes attached to jobs across your Greenhouse organization |
| `list-job-owners` | `greenhouse.listJobOwners()` | — | 10 | List the job owners across your Greenhouse organization |
| `list-job-post-searchable-locations` | `greenhouse.listJobPostSearchableLocations()` | — | 9 | List the searchable geographic locations attached to job posts in your Greenhouse organization |
| `list-job-posts` | `greenhouse.listJobPosts()` | — | 14 | List the candidate-facing job posts in your Greenhouse organization |
| `list-jobs` | `greenhouse.listJobs()` | — | 9 | List the jobs (hiring plans) in your Greenhouse organization |
| `list-notes` | `greenhouse.listNotes()` | — | 5 | List the notes (free-form activity-feed entries) across a Greenhouse organization via the Harvest v3 API |
| `list-offers` | `greenhouse.listOffers()` | — | 16 | List the offers in a Greenhouse organization via the Harvest v3 API |
| `list-offices` | `greenhouse.listOffices()` | — | 8 | List the offices configured in a Greenhouse organization via the Harvest v3 API |
| `list-openings` | `greenhouse.listOpenings()` | — | 17 | List the openings (individual headcount slots beneath jobs) in your Greenhouse organization |
| `list-pay-input-ranges` | `greenhouse.listPayInputRanges()` | — | 8 | List the pay input ranges configured in a Greenhouse organization via the Harvest v3 API |
| `list-pay-inputs` | `greenhouse.listPayInputs()` | — | 7 | List the pay inputs in a Greenhouse organization via the Harvest v3 API |
| `list-prospect-pool-stages` | `greenhouse.listProspectPoolStages()` | — | 7 | List the prospect pool stages configured in a Greenhouse organization via the Harvest v3 API |
| `list-prospect-pools` | `greenhouse.listProspectPools()` | — | 10 | List the prospect pools configured in a Greenhouse organization via the Harvest v3 API |
| `list-referrers` | `greenhouse.listReferrers()` | — | 9 | List the referrers in your Greenhouse organization |
| `list-rejection-details` | `greenhouse.listRejectionDetails()` | — | 11 | List the per-application rejection records in a Greenhouse organization via the Harvest v3 API |
| `list-rejection-reasons` | `greenhouse.listRejectionReasons()` | — | 3 | List the rejection reasons configured in a Greenhouse organization via the Harvest v3 API |
| `list-scorecard-question-options` | `greenhouse.listScorecardQuestionOptions()` | — | 8 | List scorecard question options - the multiple-choice values shown to interviewers for single_select and multi_select scorecard questions - in a Greenhouse organization via the Harvest v3 API |
| `list-scorecards` | `greenhouse.listScorecards()` | — | 13 | List the scorecards (per-interview evaluations) in a Greenhouse organization via the Harvest v3 API |
| `list-sources` | `greenhouse.listSources()` | — | 6 | List the sources configured in a Greenhouse organization via the Harvest v3 API |
| `list-tracking-links` | `greenhouse.listTrackingLinks()` | — | 14 | List the tracking links configured in a Greenhouse organization via the Harvest v3 API |
| `list-user-job-permissions` | `greenhouse.listUserJobPermissions()` | — | 2 | List the per-user, per-job access grants in your Greenhouse organization, each pairing a user with a Job Admin role on a specific job |
| `list-users` | `greenhouse.listUsers()` | — | 16 | List the user accounts (recruiters, hiring managers, interviewers, coordinators, and site admins) in your Greenhouse organization |
| `merge-candidates` | `greenhouse.mergeCandidates()` | `--id` `--secondary-candidate-id` | 0 | Merge two candidate profiles in Greenhouse via the Harvest v3 API, collapsing a secondary (duplicate) candidate into a primary one |
| `move-application` | `greenhouse.moveApplication()` | `--from-stage-id` `--id` | 3 | Move a Greenhouse application to a different interview stage via the Harvest v3 API |
| `reject-application` | `greenhouse.rejectApplication()` | `--id` `--rejection-reason-id` | 2 | Reject an existing Greenhouse application via the Harvest v3 API, recording the rejection reason and optionally notifying the candidate |
| `replace-approver` | `greenhouse.replaceApprover()` | `--add-user-id` `--id` `--remove-user-id` | 1 | Swap one approver in a Greenhouse approver group for another user via the Harvest v3 API, without rebuilding the rest of the approval flow |
| `request-approvals` | `greenhouse.requestApprovals()` | `--id` | 0 | Start an existing pending Greenhouse approval flow by emailing its initial approver(s) via the Harvest v3 API |
| `revoke-user-permissions` | `greenhouse.revokeUserPermissions()` | `--id` | 0 | Revoke a Greenhouse user's site admin permissions via the Harvest v3 API, reverting them to a Basic user |
| `search-applications` | `greenhouse.searchApplications()` | — | 21 | Search applications through Greenhouse's full-text candidate search index with richer pipeline filters than the plain list endpoint |
| `update-application` | `greenhouse.updateApplication()` | `--id` | 9 | Update attribution and metadata on an existing Greenhouse application via the Harvest v3 API |
| `update-approval-flow` | `greenhouse.updateApprovalFlow()` | `--id` `--sequential` | 0 | Toggle whether a Greenhouse approval flow resolves sequentially or in parallel, via the Harvest v3 API |
| `update-blocked-spam-source` | `greenhouse.updateBlockedSpamSource()` | `--id` `--note` | 0 | Update the note on an existing entry in the organization's spam blocklist via the Greenhouse Harvest v3 API |
| `update-candidate` | `greenhouse.updateCandidate()` | `--id` | 16 | Update an existing candidate's profile in Greenhouse via the Harvest v3 API |
| `update-custom-field` | `greenhouse.updateCustomField()` | `--id` | 8 | Edit the definition of an existing Greenhouse custom field via the Harvest v3 API |
| `update-custom-field-option` | `greenhouse.updateCustomFieldOption()` | `--id` | 3 | Edit the display label, sort order, or external id of an existing custom field option via the Greenhouse Harvest v3 API |
| `update-department` | `greenhouse.updateDepartment()` | `--id` `--name` | 2 | Update an existing Greenhouse department via the Harvest v3 API |
| `update-interview` | `greenhouse.updateInterview()` | `--id` | 6 | Update a scheduled Greenhouse interview via the Harvest v3 API |
| `update-job` | `greenhouse.updateJob()` | `--id` | 11 | Update an existing Greenhouse job's editable fields via the Harvest v3 API |
| `update-job-note` | `greenhouse.updateJobNote()` | `--id` | 2 | Update an existing Greenhouse job note, identified by its id, via the Harvest v3 API |
| `update-office` | `greenhouse.updateOffice()` | `--id` `--name` | 6 | Update an existing office for the organization via the Greenhouse Harvest v3 API |
| `update-opening` | `greenhouse.updateOpening()` | `--id` | 5 | Edit an existing opening (headcount slot) on a Greenhouse job via the Harvest v3 API, or close/reopen it |
| `update-rejection-detail` | `greenhouse.updateRejectionDetail()` | `--id` | 2 | Patch the rejection reason and/or rejection-question custom field answers on a rejected application's rejection detail record via the Greenhouse Harvest v3 API |
| `update-user` | `greenhouse.updateUser()` | `--id` | 8 | Update an existing user's profile in Greenhouse via the Harvest v3 API |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
