# Hiring Signal Company Enricher (`coregent/hiring-signal-company-enricher`) Actor

Enrich company domains, websites, or names with public hiring signals - open role counts, hiring departments, locations, remote/hybrid indicators, sample jobs, and a transparent growth signal score. No login or cookies.

- **URL**: https://apify.com/coregent/hiring-signal-company-enricher.md
- **Developed by:** [Delowar Munna](https://apify.com/coregent) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 company-signal-results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Hiring Signal Company Enricher

![Hiring Signal Company Enricher](https://raw.githubusercontent.com/coregentdevspace/hiring-signal-company-enricher-assets/main/thumbnail-hiring-signal-company-enricher.png)

Enrich a list of companies — by **domain, website URL, career-page URL, or plain name** — with **public hiring signals**. For each company you get one flat, CSV-ready row: open-role count, hiring departments, locations, remote/hybrid indicators, sample jobs, and a transparent **growth-signal score** (0–100).

Built for **B2B sales, lead generation, recruiters, agencies, and market researchers** who want company-level hiring intelligence without scraping raw job boards or merging several actors.

- ✅ **No login, no cookies, no API keys.** Public data only.
- ✅ **One row per company**, not a raw job dump.
- ✅ **Transparent, non-AI scoring** you can audit field-by-field.
- ✅ Reliable extraction via **public ATS JSON APIs** (Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, Workable), with careers-page HTML as a fallback.

---

### What it does

For every company input the actor:

1. **Normalizes** the input and detects its type (domain, URL, career URL, or company name).
2. **Discovers** the best public source — a careers page or a public ATS job board — honouring your `sourceMode`.
3. **Extracts** visible open roles (public ATS JSON first, careers-page HTML fallback), up to `maxJobsPerCompany`.
4. **Derives** company-level signals: role count, top departments, top locations, remote/hybrid counts, target-keyword matches, sample jobs.
5. **Scores** a transparent `growth_signal_score` and emits one flat row.

It does **not** do login/session scraping, contact or email enrichment, deep crawling, AI summaries, or historical tracking.

---

### Input

| Field                 | Type             | Default                     | Description                                                                                      |
| --------------------- | ---------------- | --------------------------- | ------------------------------------------------------------------------------------------------ |
| `companies`           | array of strings | `[]`                        | Company names, domains, website URLs, or career-page URLs. **At least one required.** Max 1,000. |
| `inputType`           | string           | `auto`                      | `auto`, `domain_or_url`, `company_name`, or `career_url`.                                        |
| `maxCompanies`        | integer          | `100`                       | Max unique companies to process (1–1000).                                                        |
| `maxJobsPerCompany`   | integer          | `50`                        | Cap on job evidence collected per company (1–200).                                               |
| `sourceMode`          | string           | `public_website_first`      | `public_website_first`, `search_first`, or `career_url_only`.                                    |
| `targetKeywords`      | array of strings | `[]`                        | Title/department terms to score and filter on (max 50).                                          |
| `requireKeywordMatch` | boolean          | `false`                     | Save only companies with a matching visible job.                                                 |
| `minOpenRoles`        | integer          | `0`                         | Skip companies with fewer visible open roles (0–200).                                            |
| `includeSampleJobs`   | boolean          | `true`                      | Populate up to 5 sample job titles/URLs.                                                         |
| `deduplicate`         | boolean          | `true`                      | One row per normalized company.                                                                  |
| `proxyConfiguration`  | object           | `{ "useApifyProxy": true }` | Datacenter, no proxy, or custom proxy URLs. Apify Residential rejected at startup.               |

#### Example inputs

**1. Enrich a mixed list (websites, names, ATS boards) and score them**

```json
{
    "companies": ["https://www.atlassian.com", "https://www.canva.com", "HubSpot"],
    "inputType": "auto",
    "maxCompanies": 100,
    "maxJobsPerCompany": 50,
    "sourceMode": "public_website_first",
    "targetKeywords": ["data", "sales", "engineer"],
    "requireKeywordMatch": false,
    "minOpenRoles": 1,
    "includeSampleJobs": true,
    "deduplicate": true,
    "proxyConfiguration": { "useApifyProxy": true }
}
````

**2. Build a sales-trigger list — only companies actively hiring for your keywords**

```json
{
    "companies": [
        "https://boards.greenhouse.io/databricks",
        "https://jobs.lever.co/palantir",
        "https://jobs.ashbyhq.com/ramp",
        "dropbox.com"
    ],
    "targetKeywords": ["data engineer", "account executive"],
    "requireKeywordMatch": true,
    "minOpenRoles": 5,
    "maxJobsPerCompany": 50,
    "proxyConfiguration": { "useApifyProxy": true }
}
```

**3. Minimal run — just give it companies**

```json
{ "companies": ["stripe.com", "https://jobs.lever.co/figma", "Notion"] }
```

***

### Output

One flat row per enriched company. Key fields:

- **Identity**: `input_value`, `input_type_detected`, `company_name`, `company_domain`, `company_website_url`, `careers_url`, `source_url`, `source_type`
- **Hiring signals**: `hiring_status`, `open_roles_count`, `open_roles_count_capped`, `top_departments`, `top_locations`, `remote_roles_count`, `hybrid_roles_count`
- **Keyword matching**: `target_keyword_matches`, `matched_keywords`
- **Sample jobs**: `sample_job_title_1..5`, `sample_job_url_1..5`
- **Scoring**: `growth_signal_score` (0–100), `growth_signal_label` (`high`/`medium`/`low`/`none`/`unknown`), `reason_tags`
- **Status**: `extraction_status`, `error_message`, `scraped_at`

#### Company hiring signals (table view)

![Company hiring signals output table](https://raw.githubusercontent.com/coregentdevspace/hiring-signal-company-enricher-assets/main/hiring-signal-company-enricher-output-company-hiring-signals-table-view.png)

#### Sample record

One flat row per company. Example record (real output for `https://boards.greenhouse.io/dropbox`):

```json
{
    "input_value": "https://boards.greenhouse.io/dropbox",
    "input_type_detected": "career_url",
    "company_name": "Dropbox",
    "company_domain": "dropbox.com",
    "company_website_url": "https://dropbox.com",
    "careers_url": "https://boards.greenhouse.io/dropbox",
    "source_url": "https://boards.greenhouse.io/dropbox",
    "source_type": "ats_public_page",
    "hiring_status": "active",
    "open_roles_count": 30,
    "open_roles_count_capped": true,
    "top_departments": "Engineering, Sales, Operations, Marketing, Customer Support",
    "top_locations": "Remote -Mexico, Remote -Canada: Select locations, Remote -US: Select locations, Remote -US: All locations, Remote -Poland",
    "remote_roles_count": 30,
    "hybrid_roles_count": 0,
    "target_keyword_matches": 19,
    "matched_keywords": "data, engineer",
    "sample_job_title_1": "Data Engineer",
    "sample_job_url_1": "https://jobs.dropbox.com/listing/7739553?gh_jid=7739553",
    "sample_job_title_2": "Data Engineer, Analytics Data Engineering",
    "sample_job_url_2": "https://jobs.dropbox.com/listing/7739574?gh_jid=7739574",
    "sample_job_title_3": "Data Engineer, Analytics Data Engineering",
    "sample_job_url_3": "https://jobs.dropbox.com/listing/7739571?gh_jid=7739571",
    "sample_job_title_4": "Data Scientist",
    "sample_job_url_4": "https://jobs.dropbox.com/listing/7762004?gh_jid=7762004",
    "sample_job_title_5": "Data Scientist",
    "sample_job_url_5": "https://jobs.dropbox.com/listing/7762009?gh_jid=7762009",
    "growth_signal_score": 95,
    "growth_signal_label": "high",
    "reason_tags": "active_hiring,high_role_volume,multi_department_hiring,multi_location_hiring,remote_or_hybrid_roles,target_keyword_match,careers_page_found",
    "extraction_status": "success",
    "error_message": "",
    "scraped_at": "2026-06-09T02:50:55.014Z"
}
```

A **run summary** is stored in the default key-value store under `RUN_SUMMARY` with counters such as `inputs_total`, `results_saved`, `duplicates_removed`, `filtered_out`, `charged_events`, and `companies_with_active_hiring`.

***

### Growth-signal score

A transparent 0–100 weighted sum (see PRD §7), based only on visible public fields:

- Open-role volume bands (`+40 / +30 / +20 / +10`)
- `+15` for ≥3 hiring departments
- `+10` for ≥2 hiring locations
- `+10` for any remote/hybrid role
- `+15 / +8` for target-keyword matches
- `+5` for a dedicated careers URL

Labels: `80–100 high`, `50–79 medium`, `20–49 low`, `1–19 none`, `0` (uncertain) `unknown`.

***

### Pricing

**Pay Per Event.** One event, `company-signal-result`, is charged **only after** a valid, unique company row is successfully pushed to the dataset. Duplicate companies, filtered-out companies, failed inputs, and raw job evidence are **never** charged. The actor honours your per-run spending limit and stops cleanly when it is reached.

***

#### 🚦 Proxy policy

Use **Apify Datacenter** proxy or **no proxy** for normal runs — both work reliably for company websites and public ATS APIs at this actor's conservative concurrency.

**Apify Residential proxy is not supported.** The actor fails at startup if `apifyProxyGroups` includes `RESIDENTIAL`. Reason: in pay-per-event actors, residential bandwidth (~$8/GB) is billed to the developer, not the run user, so a single bandwidth-heavy run could exceed the per-result event revenue.

If you genuinely need residential routing, supply your own residential provider via the proxy editor's **Custom proxy URLs** field — that traffic goes through your provider, not Apify, and is unaffected:

```
http://user:pass@proxy.iproyal.com:12321
http://user:pass@proxy.brightdata.com:22225
http://user:pass@proxy.oxylabs.io:7777
```

***

### How sources are found

For each company the actor tries, in order of reliability:

1. **Public ATS JSON APIs** when the careers page is hosted on / links to one (Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, Workable).
2. **Schema.org `JobPosting` JSON-LD** embedded in the careers page (server-rendered, standardized).
3. **Known-site adapters** for notable companies that publish a custom public listings endpoint (e.g. Atlassian).
4. **ATS-token guessing** — many companies host on a public board whose token derives from their name (e.g. `canva` → SmartRecruiters `Canva`, `hubspot` → Greenhouse `hubspotjobs`). The actor probes a small set of likely boards and keeps the one with the most roles.
5. **Generic careers-page HTML** — job-detail links as a last resort.

### Notes & limitations

- Coverage is strongest for companies that publish jobs on a **public ATS** — which, thanks to token guessing and JSON-LD, includes many companies whose own careers site is a custom/JS app.
- Company-**name** inputs are resolved best-effort via free public search; supplying a **domain or careers URL** is more reliable.
- A custom JavaScript-only careers page with **no** public ATS board, JSON-LD, or adapter is reported as `no_jobs_found`/`partial` (this actor is HTTP-only by design — no headless browser).

# Actor input Schema

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

Company names, domains, website URLs, or career-page URLs to enrich. For example "https://www.atlassian.com", "canva.com", or "HubSpot". Provide at least one. Max 1,000 per run.

## `inputType` (type: `string`):

How to interpret each input. "Auto detect" infers URL, domain, career URL, or company name. Use a fixed type only if your inputs are all the same kind.

## `maxCompanies` (type: `integer`):

Maximum number of unique company inputs to process per run (after normalization and deduplication). Range 1-1000.

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

Stop collecting job evidence for a company once this many visible roles are found. Range 1-200.

## `sourceMode` (type: `string`):

How to find a company's jobs. "Website first" tries common careers paths on the company website. "Search first" uses public search results to locate careers/ATS pages. "Career URL only" treats each input as a careers page and does no extra discovery.

## `targetKeywords` (type: `array`):

Job-title or department terms to score and filter on, for example "data", "sales", "engineer". Matching roles contribute to output fields and the growth signal. Max 50.

## `requireKeywordMatch` (type: `boolean`):

Save only companies that have at least one visible job matching your target keywords. Companies without a match are filtered out (not saved, not charged).

## `minOpenRoles` (type: `integer`):

Skip companies with fewer than this many visible open roles. Filtered-out companies are not saved or charged. Range 0-200.

## `includeSampleJobs` (type: `boolean`):

Populate up to 5 representative job titles and URLs per company. Turning this off slightly reduces runtime.

## `deduplicate` (type: `boolean`):

Return only one row per normalized company/domain/careers URL so you are not charged for duplicate inputs.

## `proxyConfiguration` (type: `object`):

Apify Proxy configuration. Defaults to Apify Proxy enabled. Apify Residential is NOT supported and will fail the run at startup; if you need residential routing, supply your own provider via Custom proxy URLs (proxyUrls).

## Actor input object example

```json
{
  "companies": [
    "https://www.atlassian.com",
    "canva.com",
    "HubSpot"
  ],
  "inputType": "auto",
  "maxCompanies": 100,
  "maxJobsPerCompany": 50,
  "sourceMode": "public_website_first",
  "targetKeywords": [
    "data",
    "sales",
    "engineer"
  ],
  "requireKeywordMatch": false,
  "minOpenRoles": 0,
  "includeSampleJobs": true,
  "deduplicate": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Flat table view with one row per enriched company: identity, careers/source URL, hiring status, open role count, departments, locations, remote/hybrid counts, sample jobs, and the derived growth signal score.

# 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": [
        "https://www.atlassian.com",
        "canva.com",
        "HubSpot"
    ],
    "targetKeywords": [
        "data",
        "sales",
        "engineer"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("coregent/hiring-signal-company-enricher").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": [
        "https://www.atlassian.com",
        "canva.com",
        "HubSpot",
    ],
    "targetKeywords": [
        "data",
        "sales",
        "engineer",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("coregent/hiring-signal-company-enricher").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": [
    "https://www.atlassian.com",
    "canva.com",
    "HubSpot"
  ],
  "targetKeywords": [
    "data",
    "sales",
    "engineer"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call coregent/hiring-signal-company-enricher --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=coregent/hiring-signal-company-enricher",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Hiring Signal Company Enricher",
        "description": "Enrich company domains, websites, or names with public hiring signals - open role counts, hiring departments, locations, remote/hybrid indicators, sample jobs, and a transparent growth signal score. No login or cookies.",
        "version": "1.0",
        "x-build-id": "OxjOkpcLT5cfWywSa"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/coregent~hiring-signal-company-enricher/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-coregent-hiring-signal-company-enricher",
                "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/coregent~hiring-signal-company-enricher/runs": {
            "post": {
                "operationId": "runs-sync-coregent-hiring-signal-company-enricher",
                "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/coregent~hiring-signal-company-enricher/run-sync": {
            "post": {
                "operationId": "run-sync-coregent-hiring-signal-company-enricher",
                "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": {
                    "companies": {
                        "title": "Companies",
                        "type": "array",
                        "description": "Company names, domains, website URLs, or career-page URLs to enrich. For example \"https://www.atlassian.com\", \"canva.com\", or \"HubSpot\". Provide at least one. Max 1,000 per run.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "inputType": {
                        "title": "Input type",
                        "enum": [
                            "auto",
                            "domain_or_url",
                            "company_name",
                            "career_url"
                        ],
                        "type": "string",
                        "description": "How to interpret each input. \"Auto detect\" infers URL, domain, career URL, or company name. Use a fixed type only if your inputs are all the same kind.",
                        "default": "auto"
                    },
                    "maxCompanies": {
                        "title": "Max companies",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of unique company inputs to process per run (after normalization and deduplication). Range 1-1000.",
                        "default": 100
                    },
                    "maxJobsPerCompany": {
                        "title": "Max jobs per company",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Stop collecting job evidence for a company once this many visible roles are found. Range 1-200.",
                        "default": 50
                    },
                    "sourceMode": {
                        "title": "Source discovery mode",
                        "enum": [
                            "public_website_first",
                            "search_first",
                            "career_url_only"
                        ],
                        "type": "string",
                        "description": "How to find a company's jobs. \"Website first\" tries common careers paths on the company website. \"Search first\" uses public search results to locate careers/ATS pages. \"Career URL only\" treats each input as a careers page and does no extra discovery.",
                        "default": "public_website_first"
                    },
                    "targetKeywords": {
                        "title": "Target keywords",
                        "type": "array",
                        "description": "Job-title or department terms to score and filter on, for example \"data\", \"sales\", \"engineer\". Matching roles contribute to output fields and the growth signal. Max 50.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "requireKeywordMatch": {
                        "title": "Require keyword match",
                        "type": "boolean",
                        "description": "Save only companies that have at least one visible job matching your target keywords. Companies without a match are filtered out (not saved, not charged).",
                        "default": false
                    },
                    "minOpenRoles": {
                        "title": "Minimum open roles",
                        "minimum": 0,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Skip companies with fewer than this many visible open roles. Filtered-out companies are not saved or charged. Range 0-200.",
                        "default": 0
                    },
                    "includeSampleJobs": {
                        "title": "Include sample jobs",
                        "type": "boolean",
                        "description": "Populate up to 5 representative job titles and URLs per company. Turning this off slightly reduces runtime.",
                        "default": true
                    },
                    "deduplicate": {
                        "title": "Deduplicate companies",
                        "type": "boolean",
                        "description": "Return only one row per normalized company/domain/careers URL so you are not charged for duplicate inputs.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify Proxy configuration. Defaults to Apify Proxy enabled. Apify Residential is NOT supported and will fail the run at startup; if you need residential routing, supply your own provider via Custom proxy URLs (proxyUrls).",
                        "default": {
                            "useApifyProxy": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
