# Ashby Jobs Scraper (`khadinakbar/ashby-jobs-scraper`) Actor

Extract public Ashby job boards through the Posting API. Returns validated job postings with descriptions, compensation when published, departments, locations, timestamps, and application URLs for recruiting and job-market research.

- **URL**: https://apify.com/khadinakbar/ashby-jobs-scraper.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** Jobs, Lead generation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 validated ashby job returneds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Ashby Jobs Scraper — Extract Public Job Postings via Ashby API

**Ashby Jobs Scraper** is an Apify Actor that extracts live, public job postings from Ashby-hosted career boards via the Ashby Posting API. Provide a board token such as `notion` or a public URL such as `https://jobs.ashbyhq.com/notion`, and the Actor returns a consistent, analysis-ready dataset with role details, work arrangements, published compensation, descriptions, and application links — for recruiters, market researchers, job-board operators, and AI-agent workflows.

### Best fit and connected workflows

Choose this Actor when you know which companies use Ashby and need structured job data from their public career boards. Give it a board token or `jobs.ashbyhq.com` URL and receive one source-linked record per matching role.

Start with [Jobs Scraper](https://apify.com/khadinakbar/jobs-scraper) when the research brief spans several job platforms, then use this Actor for the Ashby boards in the shortlist. The focused scope is public Ashby postings; each row retains the employer's public application URL for the next human-reviewed step.

#### Common use cases

- **Recruiting research:** compare open roles, departments, locations, and published compensation across selected employers using Ashby.
- **Hiring-signal monitoring:** schedule repeat runs and detect new or removed roles with stable job and board identifiers.
- **Job-feed production:** turn employer-hosted vacancies into source-linked records for a niche job board or newsletter.
- **Salary benchmarking:** collect published compensation ranges across companies and roles.
- **AI-agent research:** give an agent a board token and receive compact records with clear provenance and application URLs.

### Practical scenario: from board token to hiring signal

A market researcher starts with the public Ashby tokens for two selected companies and sets a modest `maxResultsPerBoard`. The Actor returns one normalized row per matching vacancy with `jobId`, `boardToken`, department, location, workplace type, published compensation when supplied, and source URLs. The researcher then groups rows by company and department, compares stable identifiers with a later scheduled dataset, and follows `jobUrl` or `applyUrl` when a role needs human review.

### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `boardTokens` | array | Yes | Ashby board tokens or public `jobs.ashbyhq.com` URLs. Accepts bare tokens (e.g. `notion`) or full URLs (e.g. `https://jobs.ashbyhq.com/ramp`). |
| `maxResultsPerBoard` | integer | No | Max jobs returned per board. Default `100`. |
| `titleIncludes` | string | No | Case-insensitive title filter (e.g. `engineer`). |
| `locationIncludes` | string | No | Case-insensitive location filter (e.g. `remote`). |
| `departmentIncludes` | string | No | Case-insensitive department filter (e.g. `engineering`). |
| `remoteOnly` | boolean | No | Return only remote-eligible roles. Default `false`. |
| `includeDescriptions` | boolean | No | Include full description text/HTML. Default `true`. Set `false` for compact metadata only. |

Example input:

```json
{
  "boardTokens": [
    "notion",
    "https://jobs.ashbyhq.com/ramp"
  ],
  "maxResultsPerBoard": 100,
  "titleIncludes": "engineer",
  "locationIncludes": "remote",
  "remoteOnly": false,
  "includeDescriptions": true
}
````

The Actor supports up to 25 unique boards per run and up to 1,000 returned jobs per board. Filters run before records are written or billed.

### Output: data fields you receive

One validated dataset record is returned for each listed job that matches the filters.

| Field | Type | Description |
|---|---|---|
| `title` | string | Public job title |
| `department` | string | Internal department name |
| `team` | string | Team name when available |
| `location` | string | Primary location |
| `secondaryLocations` | array | Additional locations |
| `isRemote` | boolean | Whether the role allows remote work |
| `workplaceType` | string | Workplace policy (e.g. hybrid, on-site) |
| `employmentType` | string | Full-time, part-time, contract |
| `publishedAt` | string | ISO timestamp when the job was posted |
| `descriptionText` | string | Clean-text job description |
| `descriptionHtml` | string | Original HTML description |
| `compensationMin` | number | Published salary floor |
| `compensationMax` | number | Published salary ceiling |
| `compensationCurrency` | string | Salary currency code (e.g. `USD`) |
| `jobUrl` | string | Canonical public job URL |
| `applyUrl` | string | Direct application URL |
| `sourceApiUrl` | string | Ashby API provenance URL |
| `scrapedAt` | string | ISO timestamp of data collection |

Missing employer-supplied fields are represented as `null`; the Actor never invents compensation, departments, or locations.

Illustrative record shape:

```json
{
  "title": "Senior Backend Engineer",
  "department": "Engineering",
  "location": "San Francisco, CA",
  "isRemote": true,
  "workplaceType": "hybrid",
  "employmentType": "full-time",
  "compensationMin": 180000,
  "compensationMax": 220000,
  "compensationCurrency": "USD",
  "publishedAt": "2026-07-15T12:00:00.000Z",
  "jobUrl": "https://jobs.ashbyhq.com/notion/senior-backend-engineer",
  "applyUrl": "https://jobs.ashbyhq.com/notion/senior-backend-engineer/application"
}
```

### How it works

- The Actor calls Ashby's public Posting API (`api.ashbyhq.com/posting-api/job-board/{token}`) for each board token.
- Filters (title, location, department, remote-only) are applied before validated writes and billing.
- Bounded retry handles transient HTTP failures.
- Output is flat and bounded for spreadsheets, databases, Apify integrations, and agent tools.

### Pricing

This Actor uses **Pay per event + platform usage**. A result event is charged only for a validated Ashby job record written to the dataset; filtered records and unusable rows are excluded from job-result billing. See the live Pricing tab for current event details.

#### Event-count example

Collecting fifty validated jobs records fifty `job-returned` events in addition to the actor-start event and Apify platform usage. Use `maxResultsPerBoard` to set a clear result boundary before each request.

The Actor writes `OUTPUT` and `RUN_SUMMARY` to the default key-value store. These records include the run outcome, per-board coverage counts, validation diagnostics, warnings, and billed job-event total.

### Use with AI agents (MCP)

This Actor is exposed in the Apify MCP server as `apify--ashby-jobs-scraper`. AI agents like Claude, ChatGPT, and Gemini can call it directly to fetch live Ashby job data.

**Tool description:** Extract public job postings from Ashby career boards through the Posting API. Use when the input contains Ashby board tokens or `jobs.ashbyhq.com` URLs. Returns one record per job with title, department, location, published compensation, provenance, and `applyUrl`. The focused scope is Ashby-hosted boards, with one event recorded per validated job.

#### Agent prompt card

Copy this into Claude, ChatGPT, or any MCP-connected agent:

> Find all open engineering roles at companies using Ashby (e.g. Notion, Ramp).
> For each role, return the title, location, remote policy, compensation range
> if published, and the direct application URL. Group by company and sort
> by posting date. Read `OUTPUT.outcome` before summarizing the dataset and
> preserve each `jobUrl` as provenance.

#### Python agent example

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('khadinakbar/ashby-jobs-scraper').call(run_input={
    'boardTokens': ['https://jobs.ashbyhq.com/notion'],
    'remoteOnly': True,
    'maxResultsPerBoard': 50,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item['title'], item['applyUrl'])
```

### API example

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('khadinakbar/ashby-jobs-scraper').call({
  boardTokens: ['notion'],
  titleIncludes: 'engineer',
  maxResultsPerBoard: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

### Best results and outcome guidance

Ashby boards are retrieved through the public Posting API with bounded retries for temporary source responses. For the clearest research workflow:

- Provide a bare Ashby token or its matching public `jobs.ashbyhq.com` URL.
- Start with one board and a modest result boundary, then expand the saved input after confirming its rows.
- Use `includeDescriptions: false` for a compact monitoring feed and `true` for detailed research.
- Treat compensation as employer-supplied data and preserve null values when the employer leaves it unpublished.
- Read `OUTPUT` for the compact outcome and `RUN_SUMMARY` for board coverage, warnings, validation counts, and event reconciliation.

### Related Actors

- Start with Jobs Scraper when the brief combines several large job platforms, then route known Ashby boards here through the linked workflow above.
- Choose [HH.RU Jobs Scraper](https://apify.com/khadinakbar/hh-ru-jobs-scraper) when the next workflow needs public Russian vacancies with salary, skills, and regional filters.
- Choose [Built In Jobs Scraper](https://apify.com/khadinakbar/built-in-jobs-scraper) when the research starts from technology-company listings rather than a known Ashby board.

### Design note

While reviewing and testing this Actor, I found that Ashby's public board token provides a stable input for people and agents. A practical workflow starts with a small result cap, confirms the board and filters in the dataset, then expands or schedules the same input. Keeping provenance fields beside every record supports later deduplication and hiring-signal comparisons.

### FAQ

**How do I scrape jobs from Ashby career boards?** Provide the company's Ashby board token (e.g. `notion`) or their public `jobs.ashbyhq.com` URL in the `boardTokens` input. The Actor calls Ashby's public Posting API and returns structured job records with title, location, compensation, and application URLs.

**What data fields does Ashby Jobs Scraper return?** Each job record includes `title`, `department`, `location`, `isRemote`, `workplaceType`, `employmentType`, `compensationMin`/`Max`/`Currency` (when published), `descriptionText`, `jobUrl`, `applyUrl`, and `publishedAt`. See the Output table above for the full list.

**Can I pass a company homepage?** No. Supply the Ashby token or public `jobs.ashbyhq.com` URL. A regular company website may not expose an Ashby board token safely.

**Why is compensation empty?** Compensation is returned only if the employer makes it public through Ashby. An empty value means the employer left that field unpublished.

**How can an AI agent use Ashby job data?** Call `apify--ashby-jobs-scraper` through the Apify MCP server with a board token and bounded result cap. The prompt card above shows how to request structured hiring signals while retaining `jobUrl`, `applyUrl`, and execution provenance.

**How do I review board coverage?** `RUN_SUMMARY` lists each requested board with its source outcome and sanitized diagnostics, while `OUTPUT` provides the compact run outcome.

### Responsible use

Use this Actor for legitimate hiring, recruiting, research, and job-market workflows. Respect applicable laws, the source site's terms, and the rights of job seekers and employers, and preserve human review for decisions that affect individuals.

# Actor input Schema

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

Enter one public Ashby board token or jobs URL per line, such as notion or https://jobs.ashbyhq.com/notion. The actor extracts and deduplicates up to 25 boards. This is required and is not a company website URL, individual job URL, application form, or Ashby admin URL.

## `maxResultsPerBoard` (type: `integer`):

Caps validated job records returned for each Ashby board. Enter an integer such as 100. It defaults to 100 and accepts 1 through 1,000. This is a per-board output cap, not a page count or a global budget across every board.

## `titleIncludes` (type: `string`):

Optionally keep only jobs whose public title contains this text, such as engineer. Matching is case-insensitive and uses literal text. Leave blank to keep all titles. This is not a Boolean query or a full-text search across job descriptions.

## `locationIncludes` (type: `string`):

Optionally keep only jobs whose public primary or secondary location contains this text, such as remote or london. Matching is case-insensitive against text supplied by Ashby. Leave blank to keep every location. This does not geocode jobs or search office addresses.

## `departmentIncludes` (type: `string`):

Optionally keep only jobs whose public Ashby department contains this text, such as engineering. Matching is case-insensitive against the department field. Leave blank to keep all departments. This does not infer departments from job titles or descriptions.

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

Keeps only jobs Ashby marks remote or with workplace type Remote. Set true for remote-role research or false to retain all listed roles. It defaults to false. This does not infer remote eligibility from a job description or location text.

## `includeDescriptions` (type: `boolean`):

Controls whether each output record includes public Ashby description HTML and clean text. Set true for detailed recruiting and research data or false for smaller results. It defaults to true. This does not retrieve private hiring notes, candidates, or application answers.

## Actor input object example

```json
{
  "boardTokens": [
    "notion",
    "https://jobs.ashbyhq.com/ramp"
  ],
  "maxResultsPerBoard": 100,
  "titleIncludes": "engineer",
  "locationIncludes": "remote",
  "departmentIncludes": "engineering",
  "remoteOnly": true,
  "includeDescriptions": true
}
```

# Actor output Schema

## `jobs` (type: `string`):

Validated public Ashby job records returned by this run.

## `output` (type: `string`):

Compact outcome, item counts, warnings, and charged event totals.

## `runSummary` (type: `string`):

Detailed board coverage, diagnostics, and billing information for this run.

# 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": [
        "notion"
    ],
    "maxResultsPerBoard": 100,
    "titleIncludes": "",
    "locationIncludes": "",
    "departmentIncludes": "",
    "remoteOnly": false,
    "includeDescriptions": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/ashby-jobs-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": ["notion"],
    "maxResultsPerBoard": 100,
    "titleIncludes": "",
    "locationIncludes": "",
    "departmentIncludes": "",
    "remoteOnly": False,
    "includeDescriptions": True,
}

# Run the Actor and wait for it to finish
run = client.actor("khadinakbar/ashby-jobs-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": [
    "notion"
  ],
  "maxResultsPerBoard": 100,
  "titleIncludes": "",
  "locationIncludes": "",
  "departmentIncludes": "",
  "remoteOnly": false,
  "includeDescriptions": true
}' |
apify call khadinakbar/ashby-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Ashby Jobs Scraper",
        "description": "Extract public Ashby job boards through the Posting API. Returns validated job postings with descriptions, compensation when published, departments, locations, timestamps, and application URLs for recruiting and job-market research.",
        "version": "1.0",
        "x-build-id": "FeCySBTJjnr5bFFOq"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/khadinakbar~ashby-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-khadinakbar-ashby-jobs-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/khadinakbar~ashby-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-khadinakbar-ashby-jobs-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/khadinakbar~ashby-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-khadinakbar-ashby-jobs-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",
                "required": [
                    "boardTokens"
                ],
                "properties": {
                    "boardTokens": {
                        "title": "Ashby board tokens or URLs",
                        "type": "array",
                        "description": "Enter one public Ashby board token or jobs URL per line, such as notion or https://jobs.ashbyhq.com/notion. The actor extracts and deduplicates up to 25 boards. This is required and is not a company website URL, individual job URL, application form, or Ashby admin URL.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResultsPerBoard": {
                        "title": "Maximum jobs per board",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Caps validated job records returned for each Ashby board. Enter an integer such as 100. It defaults to 100 and accepts 1 through 1,000. This is a per-board output cap, not a page count or a global budget across every board.",
                        "default": 100
                    },
                    "titleIncludes": {
                        "title": "Job title contains",
                        "type": "string",
                        "description": "Optionally keep only jobs whose public title contains this text, such as engineer. Matching is case-insensitive and uses literal text. Leave blank to keep all titles. This is not a Boolean query or a full-text search across job descriptions.",
                        "default": ""
                    },
                    "locationIncludes": {
                        "title": "Location contains",
                        "type": "string",
                        "description": "Optionally keep only jobs whose public primary or secondary location contains this text, such as remote or london. Matching is case-insensitive against text supplied by Ashby. Leave blank to keep every location. This does not geocode jobs or search office addresses.",
                        "default": ""
                    },
                    "departmentIncludes": {
                        "title": "Department contains",
                        "type": "string",
                        "description": "Optionally keep only jobs whose public Ashby department contains this text, such as engineering. Matching is case-insensitive against the department field. Leave blank to keep all departments. This does not infer departments from job titles or descriptions.",
                        "default": ""
                    },
                    "remoteOnly": {
                        "title": "Remote jobs only",
                        "type": "boolean",
                        "description": "Keeps only jobs Ashby marks remote or with workplace type Remote. Set true for remote-role research or false to retain all listed roles. It defaults to false. This does not infer remote eligibility from a job description or location text.",
                        "default": false
                    },
                    "includeDescriptions": {
                        "title": "Include job descriptions",
                        "type": "boolean",
                        "description": "Controls whether each output record includes public Ashby description HTML and clean text. Set true for detailed recruiting and research data or false for smaller results. It defaults to true. This does not retrieve private hiring notes, candidates, or application answers.",
                        "default": true
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
