# ATS Job Intelligence API (AI-Powered) (`enosgb/ats-job-intelligence-api`) Actor

Extract and enrich job listings from ATS platforms like Greenhouse and Lever using AI. Detect hiring signals, classify jobs, and generate structured insights for lead generation, job boards, and automation.

- **URL**: https://apify.com/enosgb/ats-job-intelligence-api.md
- **Developed by:** [Enos gabriel](https://apify.com/enosgb) (community)
- **Categories:** AI, Jobs, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 job enriched (ai)s

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 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

## ATS Job Intelligence API (AI-Powered)

Extract and enrich job listings from ATS platforms like **Greenhouse**, **Lever**, **Ashby**, **Workday**, and **Rippling** using AI. Detect hiring signals, classify jobs, and generate structured insights for lead generation, job boards, and automation.

### What does ATS Job Intelligence API do?

ATS Job Intelligence API is an **AI-powered** data extraction tool that scrapes job listings from multiple Applicant Tracking Systems (ATS) and enriches them with artificial intelligence. It automatically detects which ATS a company uses, fetches all available job data, and uses AI to provide deeper insights.

**Key features:**

- **Auto-detects ATS** — No need to know which system a company uses. The actor figures it out automatically.
- **5 ATS platforms supported** — Greenhouse, Lever, Ashby, Workday, and Rippling
- **AI Enrichment** — Optional AI-powered analysis adds:
    - Seniority classification (Junior, Mid, Senior, Unknown)
    - Tech stack detection (programming languages, frameworks, tools)
    - Category classification (Engineering, Product, Marketing, Sales, etc.)
    - Hiring signal detection (LOW, MEDIUM, HIGH urgency)
    - AI-generated role summary
- **Standardized output** — Same schema regardless of ATS source
- **Built for B2B workflows** — Clean JSON ready for enrichment pipelines
- **No browser overhead** — Uses direct API calls for speed and reliability

### Why use ATS Job Intelligence API?

- **Save hours of research** — Manually finding and scraping each company's career page takes time. This actor does it in seconds.
- **AI-powered insights** — Go beyond raw job data with AI enrichment that classifies seniority, detects tech stacks, and identifies hiring signals.
- **Consistent data** — Every job comes with the same fields: title, department, location, salary, description, and AI insights.
- **Scale your outreach** — Process hundreds of companies in a single run for recruitment, sales intelligence, or market research.
- **Works with your stack** — Output integrates seamlessly with Clay, Apollo, Instantly, Zapier, Make, or any tool that consumes JSON.

### How to use

1. Go to the **Input** tab
2. Add companies to the `companies` array with their domain (e.g., `{ "domain": "stripe.com" }`)
3. Optionally add `careers_url` if you know the career page URL for more accurate detection
4. Configure filters (keywords, location, department) if needed
5. Click **Start** and download your dataset

### Input

| Field                        | Required | Description                                                        |
| ---------------------------- | -------- | ------------------------------------------------------------------ |
| `companies`                  | Yes      | Array of `{ name, domain, careers_url }` objects                   |
| `filters.keywords`           | No       | Comma-separated keywords to filter jobs                            |
| `filters.location`           | No       | Location filter (e.g., "remote", "San Francisco")                  |
| `filters.department`         | No       | Department name to filter                                          |
| `filters.posted_within_days` | No       | Only jobs posted within N days (0 = no limit)                      |
| `ats_override`               | No       | Force a specific ATS (greenhouse, lever, ashby, workday, rippling) |
| `include_description`        | No       | Include full job descriptions (default: true)                      |
| `include_salary`             | No       | Include salary data where available (default: false)               |
| `max_jobs_per_company`       | No       | Max jobs per company (default: 100)                                |

#### Example Input

```json
{
    "companies": [
        { "name": "Stripe", "domain": "stripe.com" },
        { "name": "Linear", "domain": "linear.app", "careers_url": "https://jobs.ashbyhq.com/linear" }
    ],
    "filters": {
        "keywords": "engineer,product",
        "location": "remote"
    },
    "max_jobs_per_company": 50
}
````

### Output

Each job record includes the following fields:

| Field              | Type           | Description                                              |
| ------------------ | -------------- | -------------------------------------------------------- |
| `job_id`           | string         | Unique job ID from the ATS                               |
| `company_name`     | string         | Company name                                             |
| `company_domain`   | string         | Company domain                                           |
| `ats_platform`     | string         | Source ATS (greenhouse, lever, ashby, workday, rippling) |
| `job_title`        | string         | Job title                                                |
| `department`       | string/null    | Department                                               |
| `team`             | string/null    | Team                                                     |
| `location`         | string         | Job location                                             |
| `remote`           | boolean/string | true, false, or "hybrid"                                 |
| `employment_type`  | string/null    | full\_time, part\_time, contract, intern                   |
| `seniority`        | string/null    | junior, mid, senior, staff, director, vp                 |
| `job_url`          | string         | URL to the job posting                                   |
| `apply_url`        | string         | URL to apply                                             |
| `description_html` | string         | Full job description (HTML)                              |
| `description_text` | string         | Full job description (plain text)                        |
| `salary_min`       | number/null    | Minimum salary                                           |
| `salary_max`       | number/null    | Maximum salary                                           |
| `salary_currency`  | string/null    | Currency code (USD, EUR, etc.)                           |
| `posted_at`        | string/null    | Posted date (ISO 8601)                                   |
| `updated_at`       | string/null    | Last updated (ISO 8601)                                  |
| `scraped_at`       | string         | Timestamp when scraped                                   |
| `ai`               | object/null    | AI enrichment (when ai: true)                            |

#### AI Enriched Output

When `ai: true` is enabled, each job includes an `ai` object:

```json
{
    "job_id": "123456",
    "company_name": "Stripe",
    "job_title": "Senior Backend Engineer",
    "location": "Remote",
    "ai": {
        "seniority": "Senior",
        "tech_stack": ["Go", "PostgreSQL", "Redis", "gRPC", "Kubernetes"],
        "remote": true,
        "category": "Engineering",
        "hiring_signal": "HIGH",
        "summary": "Looking for a Senior Backend Engineer to build scalable payment infrastructure using Go and cloud-native technologies."
    }
}
```

You can download the dataset in various formats: **JSON, CSV, Excel, XML, or RSS**.

### Configuring GROQ\_API\_KEY

The AI enrichment uses Groq's API. The API key is already configured in the Actor — you don't need to set it up.

If you need to update the key (e.g., to use your own account), you can add it as an environment variable:

#### For Apify Console

1. Open your Actor in Apify Console
2. Go to **Settings** → **Environment variables**
3. Add a new variable:
   - Name: `GROQ_API_KEY`
   - Value: Your Groq API key (get one at https://console.groq.com/)
4. Save and re-run the actor with `ai: true`

#### For Local Development

Create a `.env` file in the project root:

```bash
GROQ_API_KEY=your_groq_api_key_here
```

Then run the actor locally with `apify run`.

**Note:** The AI enrichment is optional. The actor works perfectly without it — just omit `"ai": true` from your input.

### Supported ATS Platforms

| ATS        | API Type | Salary Data                        | AI Enrichment |
| ---------- | -------- | ---------------------------------- | ------------- |
| Greenhouse | REST API | Yes (per-job, with include\_salary) | Supported     |
| Lever      | REST API | Yes (optional)                     | Supported     |
| Ashby      | REST API | Yes (with include\_description)     | Supported     |
| Workday    | CXS API  | Not available                      | Supported     |
| Rippling   | REST API | Not available                      | Supported     |

### Use Cases

#### Lead Generation

Identify companies actively hiring in your target market. Use AI insights to prioritize prospects based on hiring signals and tech stack alignment.

#### Job Intelligence Platforms

Build job boards with enriched data. AI classification helps categorize roles, detect seniority levels, and identify remote opportunities automatically.

#### SaaS Product Features

Add job intelligence to your product. Track competitor hiring, monitor market trends, or power recruitment automation features.

#### Market Research

Analyze hiring patterns across industries. Use tech stack data to understand technology adoption trends and identify emerging tools.

### Pricing

**Pay-per-event (PPE) model:**

| Resource              | Cost             |
| --------------------- | ---------------- |
| Actor start           | $0.00005 per run |
| Job extracted (basic) | $0.003 per job   |
| Job enriched with AI  | $0.02 per job    |

**Example:**

- Scraping 50 companies with ~500 total jobs (no AI): **~$1.50**
- Same run with AI enrichment enabled: **~$10.50**

The AI version provides enriched job intelligence including:

- Seniority classification
- Tech stack extraction
- Hiring signals
- Structured summaries

This adds significant value compared to raw scraping and is designed for:

- Lead generation platforms
- Job intelligence products
- Automation workflows

**Note:** Compute costs are billed separately by Apify.

### Tips

- Provide `careers_url` when possible for more accurate ATS detection
- Disable `include_description` for faster runs when you only need metadata
- Use `ats_override` if you know the ATS to skip detection entirely
- Use `filters.keywords` to reduce the number of results and save on costs
- The AI model used is `llama-3.1-8b-instant` via Groq — fast and cost-effective

### FAQ

**Q: Do I need a proxy?**
A: No. Greenhouse, Lever, and Ashby expose public APIs that don't require proxies. Workday and Rippling may benefit from proxies for large batches, but the actor works without them.

**Q: What if ATS detection fails?**
A: The actor will attempt to fetch using all available connectors as fallback. You can also use `ats_override` to force a specific ATS.

**Q: Can I scrape unlimited jobs?**
A: Yes, but use `max_jobs_per_company` to control costs and run time. The default is 100 jobs per company.

**Q: Why is Lever returning 0 jobs?**
A: Some companies disable public job APIs. Use `careers_url` or try another company as a test.

**Q: What happens if AI enrichment fails?**
A: The actor gracefully continues without AI data. Jobs are still returned, just without the `ai` enrichment field. This ensures your pipeline doesn't break due to AI issues.

**Q: Is this legal?**
A: This actor uses publicly available APIs provided by each ATS for job listings. It respects the terms of service of each platform. For Workday and other enterprise systems, ensure you have permission before scraping.

**Q: How does the AI work?**
A: The actor uses Groq's API with the `llama-3.1-8b-instant` model to analyze job titles and descriptions, extracting structured insights like tech stacks, seniority, and hiring signals.

### Need help?

- Report issues on [GitHub](https://github.com/anomalyco/opencode/issues)
- Check the [Apify documentation](https://docs.apify.com/)
- Contact support through the Apify Console

# Actor input Schema

## `companies` (type: `array`):

List of companies with domain or careers URL. At least one company is required.

## `filters` (type: `object`):

Optional filters to apply to job results

## `ats_override` (type: `string`):

Force a specific ATS for all companies. Leave empty for auto-detect.

## `include_description` (type: `boolean`):

Include full job descriptions in output. Disabling speeds up scraping.

## `include_salary` (type: `boolean`):

Include salary data where available (Greenhouse, Lever, Ashby). May increase API calls.

## `max_jobs_per_company` (type: `integer`):

Maximum number of jobs to return per company. 0 = unlimited.

## Actor input object example

```json
{
  "companies": [
    {
      "name": "Stripe",
      "domain": "stripe.com"
    }
  ],
  "ats_override": "",
  "include_description": true,
  "include_salary": false,
  "max_jobs_per_company": 100
}
```

# Actor output Schema

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

All extracted job postings with standardized schema including title, department, location, salary, and description

## `summary` (type: `string`):

Execution statistics including total jobs, companies processed, ATS breakdown, and runtime metadata

# 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 = {
    "companies": [
        {
            "name": "Stripe",
            "domain": "stripe.com"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("enosgb/ats-job-intelligence-api").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 = { "companies": [{
            "name": "Stripe",
            "domain": "stripe.com",
        }] }

# Run the Actor and wait for it to finish
run = client.actor("enosgb/ats-job-intelligence-api").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 '{
  "companies": [
    {
      "name": "Stripe",
      "domain": "stripe.com"
    }
  ]
}' |
apify call enosgb/ats-job-intelligence-api --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ATS Job Intelligence API (AI-Powered)",
        "description": "Extract and enrich job listings from ATS platforms like Greenhouse and Lever using AI. Detect hiring signals, classify jobs, and generate structured insights for lead generation, job boards, and automation.",
        "version": "1.0",
        "x-build-id": "zE1iHKfZgC66P46jP"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/enosgb~ats-job-intelligence-api/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-enosgb-ats-job-intelligence-api",
                "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/enosgb~ats-job-intelligence-api/runs": {
            "post": {
                "operationId": "runs-sync-enosgb-ats-job-intelligence-api",
                "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/enosgb~ats-job-intelligence-api/run-sync": {
            "post": {
                "operationId": "run-sync-enosgb-ats-job-intelligence-api",
                "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": [
                    "companies"
                ],
                "properties": {
                    "companies": {
                        "title": "Companies to Scrape",
                        "minItems": 1,
                        "type": "array",
                        "description": "List of companies with domain or careers URL. At least one company is required.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string",
                                    "title": "Company Name",
                                    "description": "Optional company name"
                                },
                                "domain": {
                                    "type": "string",
                                    "title": "Domain",
                                    "description": "Company domain (e.g., stripe.com)"
                                },
                                "careers_url": {
                                    "type": "string",
                                    "title": "Careers URL",
                                    "description": "Full URL to careers page (optional)"
                                }
                            }
                        },
                        "default": [
                            {
                                "name": "Stripe",
                                "domain": "stripe.com"
                            }
                        ]
                    },
                    "filters": {
                        "title": "Filters",
                        "type": "object",
                        "description": "Optional filters to apply to job results",
                        "properties": {
                            "keywords": {
                                "title": "Keywords",
                                "type": "string",
                                "description": "Comma-separated keywords to filter jobs (matches title and description)",
                                "default": ""
                            },
                            "location": {
                                "title": "Location",
                                "type": "string",
                                "description": "Filter jobs by location (e.g., 'remote', 'San Francisco')",
                                "default": ""
                            },
                            "department": {
                                "title": "Department",
                                "type": "string",
                                "description": "Filter jobs by department name",
                                "default": ""
                            },
                            "posted_within_days": {
                                "title": "Posted Within Days",
                                "type": "integer",
                                "description": "Only include jobs posted within this many days. 0 = no limit.",
                                "default": 0,
                                "minimum": 0,
                                "maximum": 365
                            }
                        }
                    },
                    "ats_override": {
                        "title": "ATS Override",
                        "enum": [
                            "",
                            "greenhouse",
                            "lever",
                            "ashby",
                            "workday",
                            "rippling"
                        ],
                        "type": "string",
                        "description": "Force a specific ATS for all companies. Leave empty for auto-detect.",
                        "default": ""
                    },
                    "include_description": {
                        "title": "Include Job Descriptions",
                        "type": "boolean",
                        "description": "Include full job descriptions in output. Disabling speeds up scraping.",
                        "default": true
                    },
                    "include_salary": {
                        "title": "Include Salary Data",
                        "type": "boolean",
                        "description": "Include salary data where available (Greenhouse, Lever, Ashby). May increase API calls.",
                        "default": false
                    },
                    "max_jobs_per_company": {
                        "title": "Max Jobs per Company",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of jobs to return per company. 0 = unlimited.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
