> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Greenhouse

> Connect Greenhouse to your Atako agents — 12 read and 5 write actions.

Let your agents browse candidates, applications, jobs, scorecards and interviews in your Greenhouse ATS, create candidates, add notes, submit applications, and move or reject them through stages.

## Connection

* **Authentication**: API key (Harvest API key).

<Note>
  Greenhouse → Configure → Dev Center → API Credential Management → Create New API Key. Choose type "Harvest". Grant at minimum the Read-only permissions on Candidates, Applications, Jobs, Job Posts, Users, Departments, Offices, Offers and Scorecards; add Write permissions on Candidates, Applications, and Notes for write actions. Copy the key (starts with a long alphanumeric string).

  See [Greenhouse's documentation](https://developers.greenhouse.io/harvest.html).
</Note>

## Read actions (12)

| Action                      | Description                                                                                                                                                                                                                             |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `get_application`           | Fetch a single application by id. Returns application details, current stage, and candidate info.                                                                                                                                       |
| `get_candidate`             | Fetch a single candidate by id. Returns full candidate profile including applications, email addresses, phone numbers and social media profiles.                                                                                        |
| `get_job`                   | Fetch a single job by id. Returns id, title, department, office, hiring team, and custom fields.                                                                                                                                        |
| `list_applications`         | List applications. Optional filters: job\_id (integer), status (string: "active", "rejected", "hired", "pending", "sourced", "recruiter\_concluded"), last\_activity\_after (ISO 8601 datetime), per\_page (1-100), page (page number). |
| `list_candidates`           | List candidates. Optional filters: email (string, exact match), job\_id (integer, candidates who applied to this job), created\_after (ISO 8601 datetime), updated\_after (ISO 8601 datetime), per\_page (1-100), page (page number).   |
| `list_departments`          | List departments. Optional: per\_page (1-100), page (page number).                                                                                                                                                                      |
| `list_job_posts`            | List job posts. Optional: live (boolean, default true), active (boolean), per\_page (1-100), page (page number).                                                                                                                        |
| `list_jobs`                 | List jobs. Optional filters: status ("open", "closed", "draft", "all"), department\_id (integer), office\_id (integer), per\_page (1-100), page (page number).                                                                          |
| `list_offices`              | List offices. Optional: per\_page (1-100), page (page number).                                                                                                                                                                          |
| `list_scheduled_interviews` | List scheduled interviews. Optional filters: starts\_after (ISO 8601 datetime), ends\_before (ISO 8601 datetime), per\_page (1-100), page (page number).                                                                                |
| `list_scorecards`           | List scorecards submitted for a given application. Returns interviewer name, overall recommendation, and individual question scores.                                                                                                    |
| `list_users`                | List users in the Greenhouse account. Optional: per\_page (1-100, default 100), page (page number). Returns id, name, email, title, and enabled permissions.                                                                            |

## Write actions (5)

| Action               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `add_application`    | Add an application for an existing candidate on a job. Arguments: candidate\_id: integer (candidate id — see list\_candidates or get\_candidate); job\_id: integer (job id to apply to — see list\_jobs); on\_behalf\_of\_user\_id: string (Greenhouse user id, sent as the On-Behalf-Of header).                                                                                                                                                                                                                                                                                                                                                                                                          |
| `add_candidate_note` | Add a note to a candidate's activity feed. Arguments: candidate\_id: integer (candidate id — see list\_candidates or get\_candidate); body: string (note body, plain text or XHTML); visibility: optional string ("public" or "private", default "public"); on\_behalf\_of\_user\_id: string (Greenhouse user id of the note author, sent as the On-Behalf-Of header).                                                                                                                                                                                                                                                                                                                                     |
| `create_candidate`   | Create a new candidate. Arguments: first\_name: string (first name); last\_name: string (last name); email\_addresses: array of objects \{value: string, type: string ("home", "work", "other")} (candidate email addresses); phone\_numbers: optional array of objects \{value: string, type: string ("home", "work", "mobile", "other")} (candidate phone numbers); company: optional string (current company); title: optional string (current job title); applications: optional array of objects \{job\_id: integer} (jobs to apply the candidate to); on\_behalf\_of\_user\_id: string (Greenhouse user id of the person creating the candidate, sent as the On-Behalf-Of header — see list\_users). |
| `move_application`   | Move an application to a different stage. Arguments: application\_id: integer (application id — see list\_applications or get\_application); from\_stage\_id: integer (current stage id); to\_stage\_id: integer (target stage id); on\_behalf\_of\_user\_id: string (Greenhouse user id, sent as the On-Behalf-Of header).                                                                                                                                                                                                                                                                                                                                                                                |
| `reject_application` | Reject an application. Arguments: application\_id: integer (application id — see list\_applications or get\_application); rejection\_reason\_id: integer (optional rejection reason id); notes: optional string (rejection notes, plain text); on\_behalf\_of\_user\_id: string (Greenhouse user id, sent as the On-Behalf-Of header).                                                                                                                                                                                                                                                                                                                                                                     |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.
