# Greenhouse job board API: export job postings from Greenhouse

**Use case:** 

Pull live job postings from the public Greenhouse job board API for the companies you name, here Stripe, Airbnb, Databricks and Figma. Each row has the job title, function, seniority, location, country, remote flag, posted date and job link. No Greenhouse API key or login needed. Add any company that posts jobs on a public Greenhouse board by its board slug, a greenhouse: prefix or board link.

## Input

```json
{
  "companies": [
    "greenhouse:stripe",
    "greenhouse:airbnb",
    "greenhouse:databricks",
    "greenhouse:figma"
  ],
  "preset": "none",
  "remote": "include",
  "postedAfter": "7d",
  "deltaMode": false,
  "includeDescription": false,
  "maxItems": 200,
  "keywordsInDescription": false,
  "includeJobsWithoutDate": false,
  "maxDescriptionChars": 20000,
  "maxJobsPerCompany": 0,
  "outputSignalsOnly": false,
  "newRoleWindowDays": 7,
  "maxConcurrency": 5,
  "perHostDelayMs": 1000,
  "requestTimeoutSecs": 45,
  "maxRetries": 2
}
```

## Output

```json
{
  "companyName": {
    "label": "Company name",
    "format": "string"
  },
  "title": {
    "label": "Title",
    "format": "string"
  },
  "function": {
    "label": "Function",
    "format": "string"
  },
  "seniority": {
    "label": "Seniority",
    "format": "string"
  },
  "locationText": {
    "label": "Location text",
    "format": "string"
  },
  "country": {
    "label": "Country",
    "format": "string"
  },
  "remote": {
    "label": "Remote",
    "format": "boolean"
  },
  "postedAt": {
    "label": "Posted at",
    "format": "string"
  },
  "compensation": {
    "label": "Compensation",
    "format": "object"
  },
  "changeType": {
    "label": "Change type",
    "format": "string"
  },
  "source": {
    "label": "Source",
    "format": "string"
  },
  "jobUrl": {
    "label": "Job url",
    "format": "string"
  }
}
```

## How it works

### 1. Sign up on Apify or log in

The Greenhouse & Lever Job Postings API: New & Closed Actor is ready to run with the inputs already set for "Greenhouse job board API: export job postings from Greenhouse". [Sign up or log in](https://console.apify.com/create-task-from-example/Ohe2RRTNRN4xeuNgB) and you'll land in Apify Console with a copy of this exact task.

### 2. Start the "Greenhouse job board API: export job postings from Greenhouse" task

The Greenhouse & Lever Job Postings API: New & Closed Actor will start running based on the input automatically. You can also change all the input fields, like companies, preset company list, and more, to match your specific use case.

### 3. Receive the "Greenhouse job board API: export job postings from Greenhouse" output

Monitor the progress in real time. You will be notified as soon as your dataset is complete and ready for review. Each result includes data such as company name, title, function, and more.

### 4. Integrate into your workflow

The final output is delivered in JSON, CSV, or Excel format, ready to be plugged into your workflow. You can also [run the "Greenhouse job board API: export job postings from Greenhouse" task via API](https://apify.com/amyorkltd/ats-job-postings-api.md).

## FAQ

### What does the Greenhouse job board API task return?

Every row is one open job from the company's Greenhouse board: job title, company, job function, seniority, country, location, remote flag, a direct job link and the posted date. Export the rows as JSON, CSV or Excel.

### Do I need a Greenhouse API key?

No. The Greenhouse job board API task reads the public Greenhouse job board API that companies use for their own careers pages. It needs no Harvest API key, no login and no Greenhouse account.

### How do I add my own companies?

Replace the companies list in the Greenhouse job board API task with board slugs such as stripe, prefixed slugs such as greenhouse:stripe, or board links such as https://job-boards.greenhouse.io/stripe.

### What if a company is not on Greenhouse?

The Greenhouse job board API task writes a status row for every company you list, such as ok, empty, not_found or unsupported_ats, in the hiring_signals dataset, so a missing board never looks like a silent zero.

### Can I filter the Greenhouse jobs?

Yes. In the task input, set title keywords to include or exclude, countries, locations, a remote setting (only or exclude), seniority, job functions or a postedAfter date. The Greenhouse job scraper keeps only jobs that pass every filter set.

### Can I run it on a schedule or from the API?

The Greenhouse job board API task can run on an Apify schedule, for example daily, or start from the Apify API. Results export to JSON, CSV or Excel.

## About this Actor

This example demonstrates how to use [Greenhouse & Lever Job Postings API: New & Closed](https://apify.com/amyorkltd/ats-job-postings-api.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/amyorkltd/ats-job-postings-api.md) to learn more, explore other use cases, and run it yourself.


## How to integrate an Actor?

This Task's input is already configured above. Use it as-is rather than inventing a new one.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For full API examples (JavaScript, Python, CLI, MCP, OpenAPI), see this Task's Actor page: https://apify.com/amyorkltd/ats-job-postings-api.md

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).
