# Greenhouse ATS Job Scraper Pro (`maverickpoint/greenhouse-ats-scraper`) Actor

Extract and enrich jobs from 7,500+ Greenhouse companies. Skills extraction, job classification, change detection, deduplication, salary estimation, and hiring analytics. 150+ company registry. No API key needed.

- **URL**: https://apify.com/maverickpoint/greenhouse-ats-scraper.md
- **Developed by:** [Rahul Sharma](https://apify.com/maverickpoint) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 5 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Greenhouse ATS Job Scraper Pro

The most intelligent Greenhouse job scraper on Apify. Don't just extract jobs — **understand them**.

Every competitor gives you raw API data. This scraper gives you **enriched, classified, deduplicated data** with change tracking, skills extraction, salary estimation, and hiring analytics. Built for recruiters, aggregators, and HR analytics teams who need structured intelligence, not raw JSON dumps.

**No API key needed.** Greenhouse job board data is publicly accessible via their REST API.

### What makes this different?

| Feature | Other Scrapers | This Scraper |
|---|---|---|
| Job extraction | Yes | Yes |
| Skills extraction (required vs preferred) | No | **500-term taxonomy** |
| Seniority classification | No | **intern to c-level** |
| Job category standardization | No | **13 categories** |
| Work mode detection | No | **remote/hybrid/onsite** |
| Change detection between runs | No | **new/updated/removed** |
| Cross-board deduplication | No | **fingerprint matching** |
| Salary estimation for missing data | No | **peer-based with confidence** |
| Per-company hiring analytics | No | **department/skill/salary breakdowns** |
| Company discovery by name/industry | No | **150+ company registry** |
| Output profiles (full/compact/minimal) | No | **3 profiles** |

### What data do you get?

#### Core fields (every job)

- **Job title, ID, internal job ID, requisition ID**
- **Company name and board token**
- **Location** (city, state, remote, etc.)
- **Departments** and **Offices**
- **Salary / pay ranges** (where companies publish pay transparency data)
- **Full job description** (HTML + clean text)
- **Application URL** (direct link to apply)
- **Application questions** (optional)
- **Last updated date**

#### Enrichment fields (opt-in)

- **`seniority`**: `intern`, `entry`, `mid`, `senior`, `staff`, `principal`, `lead`, `manager`, `director`, `vp`, `c-level`
- **`category`**: `engineering`, `design`, `product`, `marketing`, `sales`, `customer-success`, `operations`, `hr`, `finance`, `legal`, `data`, `devops`, `security`
- **`workMode`**: `remote`, `hybrid`, `onsite`, `unknown`
- **`skills`**: `{ required: ["Python", "AWS"], preferred: ["Kubernetes"], yearsExperience: "5+" }`
- **`changeStatus`**: `new`, `updated`, `removed`, `unchanged`
- **`estimatedSalary`**: `{ min, max, currency, confidence, basedOn, disclaimer }`
- **`isDuplicate`** / **`duplicateOf`**: Cross-board duplicate detection

### Who uses Greenhouse?

Over 7,500 companies including Airbnb, Stripe, Figma, Webflow, HubSpot, Datadog, Coinbase, Discord, Spotify, Pinterest, and thousands more. If a company's career page URL contains `greenhouse.io`, this scraper works.

### How to use

#### Option 1: Board tokens (you know the companies)

```json
{
  "boardTokens": ["webflow", "figma", "stripe", "airbnb"],
  "enableClassification": true,
  "enableSkillsExtraction": true
}
````

#### Option 2: Search by company name

```json
{
  "companySearch": "Stripe",
  "enableClassification": true
}
```

#### Option 3: Scrape an entire industry

```json
{
  "industryFilter": "fintech",
  "enableClassification": true,
  "enableSkillsExtraction": true,
  "includeAnalytics": true
}
```

#### Option 4: Monitor hiring changes (repeat runs)

```json
{
  "boardTokens": ["stripe", "figma", "airbnb"],
  "enableChangeDetection": true,
  "deltaOnly": true
}
```

Set this on a daily schedule. On repeat runs, only new, updated, and removed jobs are returned — saving 85-95% on costs.

### Output examples

#### Standard job record (with classification)

```json
{
  "jobId": 127817,
  "title": "Senior Backend Engineer",
  "company": "Webflow",
  "boardToken": "webflow",
  "location": "San Francisco, CA (Hybrid)",
  "departments": ["Engineering"],
  "offices": ["San Francisco"],
  "applyUrl": "https://boards.greenhouse.io/webflow/jobs/127817",
  "updatedAt": "2026-03-28T10:55:28-05:00",
  "seniority": "senior",
  "category": "engineering",
  "workMode": "hybrid",
  "payRanges": [
    {
      "title": "Base Salary",
      "minValue": "150000",
      "maxValue": "200000",
      "currency": "USD",
      "interval": "yearly"
    }
  ],
  "descriptionText": "We are looking for a Senior Backend Engineer...",
  "scrapedAt": "2026-04-01T12:00:00.000Z",
  "source": "greenhouse"
}
```

#### With skills extraction

```json
{
  "jobId": 127817,
  "title": "Senior Backend Engineer",
  "company": "Webflow",
  "skills": {
    "required": ["Python", "Node.js", "PostgreSQL", "AWS", "Docker", "REST API"],
    "preferred": ["Kubernetes", "GraphQL", "Terraform"],
    "allSkills": [
      { "name": "Python", "category": "language", "context": "required" },
      { "name": "Kubernetes", "category": "cloud", "context": "preferred" }
    ],
    "yearsExperience": "5+"
  }
}
```

#### Analytics summary (per company)

```json
{
  "type": "analytics",
  "company": "Stripe",
  "boardToken": "stripe",
  "totalJobs": 495,
  "departmentBreakdown": [
    { "name": "Engineering", "count": 180 },
    { "name": "Sales", "count": 95 }
  ],
  "seniorityBreakdown": [
    { "name": "senior", "count": 210 },
    { "name": "mid", "count": 150 }
  ],
  "workModeBreakdown": [
    { "name": "onsite", "count": 300 },
    { "name": "hybrid", "count": 120 },
    { "name": "remote", "count": 75 }
  ],
  "topSkills": [
    { "name": "Python", "count": 85 },
    { "name": "SQL", "count": 72 },
    { "name": "AWS", "count": 65 }
  ],
  "salaryStats": {
    "jobsWithSalary": 120,
    "jobsWithoutSalary": 375,
    "salaryCoveragePercent": 24
  }
}
```

### Input reference

#### Company Selection

| Field | Type | Default | Description |
|---|---|---|---|
| `boardTokens` | string\[] | `[]` | Greenhouse board tokens or full URLs |
| `companySearch` | string | `""` | Search 150+ company registry by name |
| `industryFilter` | string | `""` | Filter registry by industry (saas, fintech, ai, etc.) |

#### Data Options

| Field | Type | Default | Description |
|---|---|---|---|
| `includeDescription` | boolean | `true` | Include HTML + text job descriptions |
| `includeQuestions` | boolean | `false` | Include application form questions |
| `departmentFilter` | string | `""` | Filter by department (partial match) |
| `locationFilter` | string | `""` | Filter by location (partial match) |
| `maxJobsPerCompany` | integer | `0` | Limit per company (0 = unlimited) |

#### Enrichment

| Field | Type | Default | Description |
|---|---|---|---|
| `enableClassification` | boolean | `true` | Seniority, category, work mode |
| `enableSkillsExtraction` | boolean | `false` | Required/preferred skills + years |
| `enableSalaryEstimation` | boolean | `false` | Peer-based salary estimation |

#### Tracking

| Field | Type | Default | Description |
|---|---|---|---|
| `enableChangeDetection` | boolean | `false` | Track new/updated/removed between runs |
| `deltaOnly` | boolean | `false` | Only output changes (skip unchanged) |
| `deduplicateAcrossBoards` | boolean | `false` | Flag cross-board duplicates |

#### Output

| Field | Type | Default | Description |
|---|---|---|---|
| `includeAnalytics` | boolean | `false` | Per-company hiring analytics summary |
| `outputProfile` | enum | `"full"` | `full` / `compact` / `minimal` |

### Finding board tokens

Not sure what a company's board token is? Three options:

1. **Use company search**: Just type the company name in `companySearch` — we'll find it
2. **Check their careers page**: Look for URLs containing `greenhouse.io`. The token is the path after the domain: `https://boards.greenhouse.io/webflow` -> `webflow`
3. **Google it**: Search `site:boards.greenhouse.io [company name]`

### Use cases

- **Recruitment agencies**: Monitor job openings across target companies with change detection
- **Job aggregators**: Feed classified, deduplicated listings into your job board
- **Salary benchmarking**: Collect pay range data + peer-based estimates across industries
- **Competitive intelligence**: Track which roles competitors are hiring, what skills they need, and how fast they're growing
- **HR analytics**: Analyze hiring trends with per-company analytics summaries
- **AI/LLM data pipelines**: Feed structured, enriched job data into RAG systems

### Pricing

**Pay Per Result: $2 per 1,000 jobs** ($0.002 per job).

With the Apify Free plan ($5/month in credits), extract ~2,500 jobs/month free.

**Cost-saving tip**: Use `enableChangeDetection` + `deltaOnly` on scheduled runs. After the first full scrape, subsequent runs only return changes — cutting costs by 85-95%.

### API access

```bash
curl "https://api.apify.com/v2/acts/YOUR_USERNAME~greenhouse-ats-scraper/runs" \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
    "boardTokens": ["webflow", "stripe"],
    "enableClassification": true,
    "enableSkillsExtraction": true,
    "includeAnalytics": true
  }'
```

### Related scrapers

Looking for other ATS platforms? Check out our suite:

- **Lever Job Scraper** (coming soon)
- **Ashby Job Scraper** (coming soon)

### Feedback

Found a bug or have a feature request? Open an issue on the **Issues** tab.

# Actor input Schema

## `boardTokens` (type: `array`):

List of Greenhouse board tokens (the company slug from their careers URL). Example: 'webflow' from https://boards.greenhouse.io/webflow. You can also paste full URLs.

## `companySearch` (type: `string`):

Search the built-in registry of 200+ companies by name. If not found in the registry, auto-discovers the token by trying common patterns.

## `industryFilter` (type: `string`):

Load all companies from a specific industry. Options: saas, fintech, healthtech, ecommerce, cybersecurity, devtools, data, ai, enterprise, edtech, media, gaming, crypto, hr, logistics, biotech, etc.

## `includeDescription` (type: `boolean`):

Include the full HTML and plain-text job description. Increases data size but required for skills extraction.

## `includeQuestions` (type: `boolean`):

Include the application form questions for each job post (label, required, type).

## `departmentFilter` (type: `string`):

Only return jobs matching this department name (case-insensitive partial match). Leave empty for all.

## `locationFilter` (type: `string`):

Only return jobs matching this location string (case-insensitive partial match). Leave empty for all.

## `maxJobsPerCompany` (type: `integer`):

Maximum number of jobs to extract per company. Set to 0 for unlimited.

## `enableClassification` (type: `boolean`):

Add seniority level (intern→c-level), standardized category (engineering, design, sales, etc.), and work mode (remote/hybrid/onsite) to each job.

## `enableSkillsExtraction` (type: `boolean`):

Parse job descriptions to extract required vs. preferred skills, technologies, and years of experience. Uses a 500-term taxonomy covering languages, frameworks, tools, cloud, data/ML, and more.

## `enableSalaryEstimation` (type: `boolean`):

For jobs without pay data, estimate salary ranges based on similar roles in this scrape run. Clearly labeled with confidence level and disclaimer. Requires classification to be enabled.

## `enableChangeDetection` (type: `boolean`):

Compare with previous run to mark each job as new, updated, removed, or unchanged. Uses Apify KeyValueStore for persistence across runs.

## `deltaOnly` (type: `boolean`):

When change detection is enabled, only output new, updated, and removed jobs — skip unchanged ones. Saves 85-95% on repeat runs.

## `deduplicateAcrossBoards` (type: `boolean`):

Detect and flag duplicate jobs posted across multiple company boards (e.g., parent company + subsidiary). Uses Greenhouse internal job ID as fingerprint.

## `includeAnalytics` (type: `boolean`):

Add a per-company analytics summary: department/location/seniority/work-mode breakdowns, top skills, salary coverage stats, and change counts.

## `outputProfile` (type: `string`):

Control output detail level. Full: all fields including HTML descriptions. Compact: core fields + enrichments, no HTML. Minimal: ID, title, company, location, apply URL only.

## Actor input object example

```json
{
  "boardTokens": [
    "webflow",
    "figma",
    "notion"
  ],
  "companySearch": "",
  "industryFilter": "",
  "includeDescription": true,
  "includeQuestions": false,
  "departmentFilter": "",
  "locationFilter": "",
  "maxJobsPerCompany": 0,
  "enableClassification": true,
  "enableSkillsExtraction": false,
  "enableSalaryEstimation": false,
  "enableChangeDetection": false,
  "deltaOnly": false,
  "deduplicateAcrossBoards": false,
  "includeAnalytics": false,
  "outputProfile": "full"
}
```

# 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 = {
    "boardTokens": [
        "webflow",
        "figma",
        "notion"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("maverickpoint/greenhouse-ats-scraper").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 = { "boardTokens": [
        "webflow",
        "figma",
        "notion",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("maverickpoint/greenhouse-ats-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "boardTokens": [
    "webflow",
    "figma",
    "notion"
  ]
}' |
apify call maverickpoint/greenhouse-ats-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=maverickpoint/greenhouse-ats-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Greenhouse ATS Job Scraper Pro",
        "description": "Extract and enrich jobs from 7,500+ Greenhouse companies. Skills extraction, job classification, change detection, deduplication, salary estimation, and hiring analytics. 150+ company registry. No API key needed.",
        "version": "2.0",
        "x-build-id": "yfOLJgCkfeDIWbIKj"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/maverickpoint~greenhouse-ats-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-maverickpoint-greenhouse-ats-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/maverickpoint~greenhouse-ats-scraper/runs": {
            "post": {
                "operationId": "runs-sync-maverickpoint-greenhouse-ats-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/maverickpoint~greenhouse-ats-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-maverickpoint-greenhouse-ats-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "boardTokens": {
                        "title": "Company Board Tokens",
                        "type": "array",
                        "description": "List of Greenhouse board tokens (the company slug from their careers URL). Example: 'webflow' from https://boards.greenhouse.io/webflow. You can also paste full URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "companySearch": {
                        "title": "Search Company by Name",
                        "type": "string",
                        "description": "Search the built-in registry of 200+ companies by name. If not found in the registry, auto-discovers the token by trying common patterns.",
                        "default": ""
                    },
                    "industryFilter": {
                        "title": "Filter by Industry",
                        "type": "string",
                        "description": "Load all companies from a specific industry. Options: saas, fintech, healthtech, ecommerce, cybersecurity, devtools, data, ai, enterprise, edtech, media, gaming, crypto, hr, logistics, biotech, etc.",
                        "default": ""
                    },
                    "includeDescription": {
                        "title": "Include Full Job Description",
                        "type": "boolean",
                        "description": "Include the full HTML and plain-text job description. Increases data size but required for skills extraction.",
                        "default": true
                    },
                    "includeQuestions": {
                        "title": "Include Application Questions",
                        "type": "boolean",
                        "description": "Include the application form questions for each job post (label, required, type).",
                        "default": false
                    },
                    "departmentFilter": {
                        "title": "Filter by Department",
                        "type": "string",
                        "description": "Only return jobs matching this department name (case-insensitive partial match). Leave empty for all.",
                        "default": ""
                    },
                    "locationFilter": {
                        "title": "Filter by Location",
                        "type": "string",
                        "description": "Only return jobs matching this location string (case-insensitive partial match). Leave empty for all.",
                        "default": ""
                    },
                    "maxJobsPerCompany": {
                        "title": "Max Jobs Per Company",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of jobs to extract per company. Set to 0 for unlimited.",
                        "default": 0
                    },
                    "enableClassification": {
                        "title": "Auto-Classify Jobs",
                        "type": "boolean",
                        "description": "Add seniority level (intern→c-level), standardized category (engineering, design, sales, etc.), and work mode (remote/hybrid/onsite) to each job.",
                        "default": true
                    },
                    "enableSkillsExtraction": {
                        "title": "Extract Skills & Technologies",
                        "type": "boolean",
                        "description": "Parse job descriptions to extract required vs. preferred skills, technologies, and years of experience. Uses a 500-term taxonomy covering languages, frameworks, tools, cloud, data/ML, and more.",
                        "default": false
                    },
                    "enableSalaryEstimation": {
                        "title": "Estimate Missing Salaries",
                        "type": "boolean",
                        "description": "For jobs without pay data, estimate salary ranges based on similar roles in this scrape run. Clearly labeled with confidence level and disclaimer. Requires classification to be enabled.",
                        "default": false
                    },
                    "enableChangeDetection": {
                        "title": "Track Changes Between Runs",
                        "type": "boolean",
                        "description": "Compare with previous run to mark each job as new, updated, removed, or unchanged. Uses Apify KeyValueStore for persistence across runs.",
                        "default": false
                    },
                    "deltaOnly": {
                        "title": "Delta Only (Changes Only)",
                        "type": "boolean",
                        "description": "When change detection is enabled, only output new, updated, and removed jobs — skip unchanged ones. Saves 85-95% on repeat runs.",
                        "default": false
                    },
                    "deduplicateAcrossBoards": {
                        "title": "Deduplicate Across Boards",
                        "type": "boolean",
                        "description": "Detect and flag duplicate jobs posted across multiple company boards (e.g., parent company + subsidiary). Uses Greenhouse internal job ID as fingerprint.",
                        "default": false
                    },
                    "includeAnalytics": {
                        "title": "Include Board Analytics",
                        "type": "boolean",
                        "description": "Add a per-company analytics summary: department/location/seniority/work-mode breakdowns, top skills, salary coverage stats, and change counts.",
                        "default": false
                    },
                    "outputProfile": {
                        "title": "Output Profile",
                        "enum": [
                            "full",
                            "compact",
                            "minimal"
                        ],
                        "type": "string",
                        "description": "Control output detail level. Full: all fields including HTML descriptions. Compact: core fields + enrichments, no HTML. Minimal: ID, title, company, location, apply URL only.",
                        "default": "full"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
