# Greenhouse Jobs Scraper | Public Board Export (`micro-tool-factory/greenhouse-jobs`) Actor

Export public Greenhouse jobs with optional keyword, location and Remote-text filters. Public title, location and application links only; 50 first listings examined per board when filtering. JSON/CSV output.

- **URL**: https://apify.com/micro-tool-factory/greenhouse-jobs.md
- **Developed by:** [Micro Tool Factory](https://apify.com/micro-tool-factory) (community)
- **Categories:** Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.35 / 1,000 job extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

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 examples already wired to this Actor's own input schema, see the [API](#api) section below.

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`).

# README

## Greenhouse Jobs — Public Data to JSON

**Download lightweight public Greenhouse job listings with titles, locations and application URLs.** Use this lightweight Apify Actor when you need reliable JSON-shaped data from a known public source, without setting up an external scraper server.

**Designed for:** Recruiting intelligence developers and teams integrating Greenhouse jobs.

**Try a ready-made example:** [Open this Actor's public Example Task](https://apify.com/micro-tool-factory/greenhouse-jobs/examples/mtf-export-greenhouse-jobs) to start with a three-result input, without writing JSON. You can adjust the source and limits before running. Review the **Pricing** tab first; usage is not necessarily free.

### Quick preview: what you get

Extract public Greenhouse job listings, job titles, locations and application links from a known career board slug.

**Small example input (3 results):**

```json
{
  "sources": [
    "airbnb"
  ],
  "maxTotalItems": 3,
  "maxItemsPerSource": 3,
  "keywords": [
    "engineer"
  ],
  "locations": [],
  "remoteOnly": false
}
```

**Illustrative output, not a live result:**

```json
{
  "status": "ok",
  "company": "example",
  "id": 123,
  "title": "Sample Engineer",
  "location": "Remote",
  "url": "https://boards.greenhouse.io/example/jobs/123"
}
```

Run with the example in the **Input** tab, then inspect **Output**. If the public source is unavailable or blocks access, you will receive an error rather than fabricated data.

### What can you do with it?

Career-page analysis, job aggregation and recruiting-market research. Filter results by any of up to five keywords or locations; optionally restrict to 'remote' in a public title or location. Configure a recurring Apify schedule, integrate its dataset into existing automations, or fetch results via the Apify API. The Actor produces one structured dataset item per successful record, enabling easy import into spreadsheets or downstream services.

It uses public HTTPS requests and a lightweight Python parser — no browser, residential proxy, login, or external paid AI provider. Data is returned as the source provides it; the Actor does not fabricate missing fields.

### Quick start — no coding required

1. Open the **Input** tab and add the public source URL or identifier.
2. Set **Max results** to 3 for a small first test.
3. Click **Start** and inspect the **Output** tab.
4. Export the resulting dataset as JSON or CSV, or use the API and scheduling options in your Apify account.

#### Output fields

company, id, title, location, url, and optional description when present in the public listing. Optional filters change which records are returned, not the source data. Each row additionally contains `status` and `input`, so downstream automation can trace where a record came from.

### Optional ATS filters (also available on marketplace API)

- `keywords`: match any keyword in the public title, location or description (case-insensitive).
- `locations`: match any published location substring. No geolocation inference.
- `remoteOnly`: require 'remote' in the published title or location. This is a text heuristic.
- The filter examines up to the first 50 public records per source; it is not an exhaustive search. An empty match is possible. The existing public Example Task uses default unfiltered settings; change filters in the Input tab for a more targeted use case.

### Limits and source coverage

**Only public Greenhouse boards that expose the boards API. This lightweight listing export intentionally does not fetch full job descriptions, keeping large-company boards responsive. Filtering examines at most the first 50 public postings per source, not an exhaustive job search.** Supported requests use HTTPS only. Each run accepts up to 15 input sources, 40 upstream HTTP requests, 2 MB per upstream response and 250 successful output records. One source's error is reported as an error row rather than silently ignored.

This is a **public-data extractor**, not an account bypass, private-data service or full-site crawler. If a provider blocks, changes or rate-limits its public endpoint, its data may not be available. Follow the source's terms and applicable data-use requirements.

### How much does it cost?

The live **Pricing** tab shows the current charges for this Actor. Where Pay Per Event is enabled, the `result-item` event is for a **successful record**. Do not assume that attempted, blocked or missing results become paid records. Always consult the active Pricing tab before using this Actor at scale. For a safe pilot, start with 3 results and set a **maximum run charge** where available. If platform usage is charged separately, the Pricing tab will disclose it.

We do **not** claim a guaranteed 50% discount, unlimited results, 100% uptime, or that every source is accessible. If this Actor is not yet publicly listed, its price and features remain under review.

### Related tools on Apify

[Unified Greenhouse, Lever & Ashby Jobs](https://apify.com/micro-tool-factory/multi-ats-jobs) — one schema for public boards on three ATS providers.

These are separate Actors with separate pricing and source limitations. Check each Actor's Pricing and Input tabs.

### Troubleshooting and support

**Empty data or a source error?** Use the board slug from the Greenhouse careers URL. A company name is not always the board slug. Try the smallest possible input and verify the public endpoint independently.

**Can I schedule it?** Yes. Apify provides scheduling, datasets, monitoring and integration options for your Actor runs.

**Will I get results from private accounts?** No. There is no account login or credential input, and inaccessible sources cannot be bypassed.

**Need help or found a bug?** Use the **Issues** tab of this Actor with a public reproducible example. Do not post passwords, API tokens or private data. Issues help us improve parsing reliability and document provider-specific limitations.

***

*Micro Tool Factory — purpose-built public-data utilities. This description reflects implemented capabilities, not invented testimonials or guaranteed customer outcomes.*

# Actor input Schema

## `sources` (type: `array`):

A public Greenhouse board slug such as airbnb, or a supported boards.greenhouse.io URL. Up to 15 sources per run. Use public information only.

## `maxTotalItems` (type: `integer`):

Maximum number of successful records returned across all sources (1–250).

## `maxItemsPerSource` (type: `integer`):

Maximum number of successful records retrieved from each input. Some upstream APIs impose tighter limits.

## `keywords` (type: `array`):

Case-insensitive title, location or public description: match ANY keyword. Up to five, 70 characters each. Empty means no keyword filtering.

## `locations` (type: `array`):

Match ANY provided text in the published job location; case-insensitive. Not a geo lookup. Up to five.

## `remoteOnly` (type: `boolean`):

Include only jobs with 'remote' in their public title or location. This is not an inferred remote-work policy.

## Actor input object example

```json
{
  "sources": [
    "airbnb"
  ],
  "maxTotalItems": 100,
  "maxItemsPerSource": 30,
  "keywords": [],
  "locations": [],
  "remoteOnly": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "sources": [
        "airbnb"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("micro-tool-factory/greenhouse-jobs").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "sources": ["airbnb"] }

# Run the Actor and wait for it to finish
run = client.actor("micro-tool-factory/greenhouse-jobs").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "sources": [
    "airbnb"
  ]
}' |
apify call micro-tool-factory/greenhouse-jobs --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,micro-tool-factory/greenhouse-jobs"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/pd4kVaHuzYwMKOamM/builds/oAZDPgSVwJwFcFyM5/openapi.json
