# Dice Jobs Scraper – Tech Jobs, Search URLs & Companies (`abotapi/dice-com-scraper`) Actor

Pull structured tech job listings from Dice.com by keyword, filters, or Dice URLs. Returns title, company, recruiter type, parsed salary, location, skills, posted date, apply URL/email, and full job description. Auto-paginates with simple pay-per-result pricing and no subscription required.

- **URL**: https://apify.com/abotapi/dice-com-scraper.md
- **Developed by:** [Abot API](https://apify.com/abotapi) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.20 / 1,000 job 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

## Dice Jobs Scraper

Pull clean, structured tech job listings from Dice (dice.com) at scale. Search by keyword, location, and filters, or paste any Dice search or job URL. Every run returns rich records: title, company, recruiter/employer type, parsed salary, location, workplace type, skills, posted date, apply URL or email, and the full job description. Pay only per result, with no monthly subscription.

### Why This Scraper?

- Dual input: build a search from keywords + location + filters, or paste Dice URLs directly (both search pages and single job pages).
- Full filter set: posted-date window, employment type, workplace type (remote/hybrid/on-site), employer type (recruiter vs direct hire), Easy Apply, visa-sponsor willingness, and sort by relevance or date.
- Superset of fields: structured salary (min, max, currency, period), skills list, apply URL and apply email, company profile link, structured street address, and validity dates, on top of every core listing field.
- Forward pagination: walks result pages automatically until your listing cap or the results run out.
- Optional detail enrichment: turn on richer per-job data (full description, skills, apply contact) only when you need it.
- Export anywhere: optionally pipe results into Notion, Linear, Airtable, or any MCP-compatible app.
- Simple pricing: pay per result, no rental fee, runs on any Apify plan.

### Data You Get

> Sample shape, values are illustrative placeholders, not from a live listing.

| Field | Example |
| --- | --- |
| id | `00000000000000000000000000000000` |
| guid | `00000000-0000-0000-0000-000000000000` |
| url | `https://www.dice.com/job-detail/00000000-0000-0000-0000-000000000000` |
| title | `Senior Python Developer` |
| company | `Sample Company` |
| companyLogo | `https://d3qscgr6xsioh.cloudfront.net/000000000-logo.webp` |
| companyProfileUrl | `https://www.dice.com/company-profile/00000000-0000-0000-0000-000000000000` |
| city | `Austin` |
| state | `Texas` |
| country | `USA` |
| locationDisplay | `Austin, Texas, USA` |
| workplaceTypes | `["Remote"]` |
| remote | `true` |
| salary | `USD 120,000.00 - 150,000.00 per year` |
| salaryMin | `120000` |
| salaryMax | `150000` |
| salaryCurrency | `USD` |
| salaryPeriod | `year` |
| employmentType | `Full-time` |
| employerType | `Direct Hire` |
| easyApply | `false` |
| willingToSponsor | `false` |
| skills | `["Python", "AWS", "PostgreSQL"]` |
| postedDate | `2026-01-01T00:00:00Z` |
| applyType | `APPLY_TO_URL` |
| applyUrl | `https://careers.example.com/apply/0000` |
| applyEmail | `recruiter@example.com` |
| summary | `Sample summary text appears here.` |
| description | `Full HTML description appears here when fetchDetails is on.` |
| companyReviews | `null` |

Note on reviews: Dice is a job board and does not expose company reviews or star ratings, so `companyReviews` is always `null`. Company identity is still captured via `company`, `companyProfileUrl`, and `companyLogo`.

### How to Use

Basic keyword search:

```json
{
  "mode": "search",
  "queries": ["python developer"],
  "countryCode": "US",
  "maxListings": 50
}
````

Search with location and filters:

```json
{
  "mode": "search",
  "queries": ["data engineer"],
  "location": "New York, NY, USA",
  "radius": 30,
  "radiusUnit": "mi",
  "employmentType": "FULLTIME",
  "workplaceType": "Remote",
  "postedDate": "SEVEN",
  "sortBy": "date",
  "maxListings": 100
}
```

Multiple keywords with detail enrichment:

```json
{
  "mode": "search",
  "queries": ["devops", "site reliability engineer"],
  "fetchDetails": true,
  "maxListings": 200
}
```

URL mode (paste search or job URLs):

```json
{
  "mode": "url",
  "urls": [
    "https://www.dice.com/jobs?q=golang&countryCode=US",
    "https://www.dice.com/job-detail/00000000-0000-0000-0000-000000000000"
  ],
  "maxListings": 100
}
```

### Input Parameters

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| mode | string | `search` | `search` builds a query from the fields below; `url` reads the URLs list. |
| queries | array | `["python developer"]` | Keywords. One scrape per keyword. |
| location | string | (empty) | City + state or country. Empty searches nationwide. |
| radius | integer | `0` | Distance around the location. 0 uses the site default. |
| radiusUnit | string | `mi` | `mi` or `km`. |
| countryCode | string | `US` | Two-letter country code for the market. |
| postedDate | string | `any` | `any`, `ONE`, `THREE`, or `SEVEN` (days). |
| employmentType | string | `any` | `FULLTIME`, `PARTTIME`, `CONTRACTS`, `THIRD_PARTY`. |
| workplaceType | string | `any` | `Remote`, `Hybrid`, `On-Site`. |
| employerType | string | `any` | `Recruiter` or `Direct Hire`. |
| easyApply | boolean | `false` | Only jobs with one-click Easy Apply. |
| willingToSponsor | boolean | `false` | Only jobs whose employer indicates visa-sponsor willingness. |
| sortBy | string | `relevance` | `relevance` or `date`. |
| urls | array | (example) | Dice URLs (URL mode). Filter fields are ignored. |
| fetchDetails | boolean | `false` | Also fetch each job page for full description, skills, and apply contact. |
| maxPages | integer | `500` | Max result pages per search. Wide open; the run stops at Max listings. |
| maxListings | integer | `20` | The single result cap across all searches. 0 = no cap. |
| proxy | object | Apify proxy | Connection routing. Works on any Apify plan. |
| mcpConnectors | array | (empty) | Optional MCP connectors to also receive results. |

### Output Example

> Sample shape, values are illustrative placeholders, not from a live listing.

```json
{
  "id": "00000000000000000000000000000000",
  "guid": "00000000-0000-0000-0000-000000000000",
  "url": "https://www.dice.com/job-detail/00000000-0000-0000-0000-000000000000",
  "title": "Senior Python Developer",
  "company": "Sample Company",
  "companyProfileUrl": "https://www.dice.com/company-profile/00000000-0000-0000-0000-000000000000",
  "city": "Austin",
  "state": "Texas",
  "country": "USA",
  "locationDisplay": "Austin, Texas, USA",
  "workplaceTypes": ["Remote"],
  "remote": true,
  "salary": "USD 120,000.00 - 150,000.00 per year",
  "salaryMin": 120000,
  "salaryMax": 150000,
  "salaryCurrency": "USD",
  "salaryPeriod": "year",
  "employmentType": "Full-time",
  "employerType": "Direct Hire",
  "easyApply": false,
  "willingToSponsor": false,
  "skills": ["Python", "AWS", "PostgreSQL"],
  "positionId": "R000000",
  "postedDate": "2026-01-01T00:00:00Z",
  "modifiedDate": "2026-01-02T00:00:00Z",
  "validThrough": "2026-02-01T00:00:00Z",
  "applyType": "APPLY_TO_URL",
  "applyUrl": "https://careers.example.com/apply/0000",
  "applyEmail": "recruiter@example.com",
  "emails": ["recruiter@example.com"],
  "summary": "Sample summary text appears here.",
  "description": "<p>Full HTML description appears here when fetchDetails is on.</p>",
  "companyReviews": null,
  "scrapedAt": "2026-01-01T00:00:00.000Z"
}
```

### Send results into your apps (MCP connectors)

Optionally push each result into the tools you already use, through Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in the `mcpConnectors` input. For Notion, also set `notionParentPageUrl`. The connector receives a condensed, human-readable summary per item (title plus key fields); the complete record always stays in the Apify dataset. Leave the field empty to skip. Supported connectors include Notion, Linear, Airtable, and Apify.

### Plan Requirement

Runs on any Apify plan, including the free tier. A paid plan with residential routing is optional and can improve reliability for very large runs.

# Actor input Schema

## `mode` (type: `string`):

Search mode = pick keywords + location + filters below. URL mode = paste any dice.com search or job URL refined in your browser.

## `queries` (type: `array`):

Free-text search terms (e.g. "python developer", "data engineer", "devops"). One scrape per keyword. Leave empty to browse without a keyword filter.

## `location` (type: `string`):

City + state or country. Examples: "New York, NY, USA", "Austin, TX, USA". Leave empty to search nationwide.

## `radius` (type: `integer`):

Distance around the location to include. Leave at 0 to use the site default radius. Ignored when Location is empty.

## `radiusUnit` (type: `string`):

Unit for the search radius.

## `countryCode` (type: `string`):

Two-letter country code for the job market (Dice is primarily US). Example: "US".

## `postedDate` (type: `string`):

Only return jobs posted within this window. "Any time" walks the unfiltered results.

## `employmentType` (type: `string`):

Filter by employment scope. "Any" walks the unfiltered results.

## `workplaceType` (type: `string`):

Filter by on-site / hybrid / remote arrangement. "Any" walks the unfiltered results.

## `employerType` (type: `string`):

Filter by who posted the job. "Any" walks the unfiltered results.

## `easyApply` (type: `boolean`):

Only return jobs that support one-click Easy Apply.

## `willingToSponsor` (type: `boolean`):

Only return jobs whose employer indicates willingness to sponsor a visa.

## `sortBy` (type: `string`):

Result ordering. "Relevance" is the site default; "Date" surfaces the most recently posted first.

## `urls` (type: `array`):

One or more dice.com URLs. Examples: https://www.dice.com/jobs?q=python%20developer\&countryCode=US, or a single job URL like https://www.dice.com/job-detail/00000000-0000-0000-0000-000000000000. Multi-URL supported; each URL pages forward independently. Filter fields above are ignored.

## `fetchDetails` (type: `boolean`):

When ON, also fetch each job's detail page for the full HTML description, skills list, structured street address, apply URL/email, valid-through date, and structured salary. Search results already carry id, title, company, location, salary, employment type, posted date, and summary, so many feeds work great with this OFF. Default OFF.

## `maxPages` (type: `integer`):

Hard cap on how many result pages to walk per keyword (or per pasted URL). Each page returns roughly 20 listings. Leave high; the run stops at Max listings. Wide open by default so it never silently caps below Max listings.

## `maxListings` (type: `integer`):

The single result cap: stop after this many listings across all searches. 0 = no cap (walks until Max pages or the results run out).

## `proxy` (type: `object`):

Connection routing. The default works on any Apify plan, including the free tier. Residential routing is optional and can improve reliability under heavy use.

## `mcpConnectors` (type: `array`):

Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).

## `notionParentPageUrl` (type: `string`):

URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.

## `maxNotifyListings` (type: `integer`):

Cap on items written to each connector per run. Does not affect the dataset.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "python developer"
  ],
  "radius": 0,
  "radiusUnit": "mi",
  "countryCode": "US",
  "postedDate": "any",
  "employmentType": "any",
  "workplaceType": "any",
  "employerType": "any",
  "easyApply": false,
  "willingToSponsor": false,
  "sortBy": "relevance",
  "urls": [
    "https://www.dice.com/jobs?q=python%20developer&countryCode=US"
  ],
  "fetchDetails": false,
  "maxPages": 500,
  "maxListings": 20,
  "proxy": {
    "useApifyProxy": true
  },
  "maxNotifyListings": 50
}
```

# Actor output Schema

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

No description

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "queries": [
        "python developer"
    ],
    "location": "",
    "urls": [
        "https://www.dice.com/jobs?q=python%20developer&countryCode=US"
    ],
    "proxy": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/dice-com-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 = {
    "queries": ["python developer"],
    "location": "",
    "urls": ["https://www.dice.com/jobs?q=python%20developer&countryCode=US"],
    "proxy": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/dice-com-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 '{
  "queries": [
    "python developer"
  ],
  "location": "",
  "urls": [
    "https://www.dice.com/jobs?q=python%20developer&countryCode=US"
  ],
  "proxy": {
    "useApifyProxy": true
  }
}' |
apify call abotapi/dice-com-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Dice Jobs Scraper – Tech Jobs, Search URLs & Companies",
        "description": "Pull structured tech job listings from Dice.com by keyword, filters, or Dice URLs. Returns title, company, recruiter type, parsed salary, location, skills, posted date, apply URL/email, and full job description. Auto-paginates with simple pay-per-result pricing and no subscription required.",
        "version": "1.0",
        "x-build-id": "eNwhpYKbBngAH4YpM"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~dice-com-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-dice-com-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/abotapi~dice-com-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-dice-com-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/abotapi~dice-com-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-dice-com-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Search mode",
                        "enum": [
                            "search",
                            "url"
                        ],
                        "type": "string",
                        "description": "Search mode = pick keywords + location + filters below. URL mode = paste any dice.com search or job URL refined in your browser.",
                        "default": "search"
                    },
                    "queries": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Free-text search terms (e.g. \"python developer\", \"data engineer\", \"devops\"). One scrape per keyword. Leave empty to browse without a keyword filter.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location (optional)",
                        "type": "string",
                        "description": "City + state or country. Examples: \"New York, NY, USA\", \"Austin, TX, USA\". Leave empty to search nationwide."
                    },
                    "radius": {
                        "title": "Search radius",
                        "minimum": 0,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Distance around the location to include. Leave at 0 to use the site default radius. Ignored when Location is empty.",
                        "default": 0
                    },
                    "radiusUnit": {
                        "title": "Radius unit",
                        "enum": [
                            "mi",
                            "km"
                        ],
                        "type": "string",
                        "description": "Unit for the search radius.",
                        "default": "mi"
                    },
                    "countryCode": {
                        "title": "Country code",
                        "type": "string",
                        "description": "Two-letter country code for the job market (Dice is primarily US). Example: \"US\".",
                        "default": "US"
                    },
                    "postedDate": {
                        "title": "Date posted",
                        "enum": [
                            "any",
                            "ONE",
                            "THREE",
                            "SEVEN"
                        ],
                        "type": "string",
                        "description": "Only return jobs posted within this window. \"Any time\" walks the unfiltered results.",
                        "default": "any"
                    },
                    "employmentType": {
                        "title": "Employment type",
                        "enum": [
                            "any",
                            "FULLTIME",
                            "PARTTIME",
                            "CONTRACTS",
                            "THIRD_PARTY"
                        ],
                        "type": "string",
                        "description": "Filter by employment scope. \"Any\" walks the unfiltered results.",
                        "default": "any"
                    },
                    "workplaceType": {
                        "title": "Workplace type",
                        "enum": [
                            "any",
                            "Remote",
                            "Hybrid",
                            "On-Site"
                        ],
                        "type": "string",
                        "description": "Filter by on-site / hybrid / remote arrangement. \"Any\" walks the unfiltered results.",
                        "default": "any"
                    },
                    "employerType": {
                        "title": "Employer type",
                        "enum": [
                            "any",
                            "Recruiter",
                            "Direct Hire"
                        ],
                        "type": "string",
                        "description": "Filter by who posted the job. \"Any\" walks the unfiltered results.",
                        "default": "any"
                    },
                    "easyApply": {
                        "title": "Easy Apply only",
                        "type": "boolean",
                        "description": "Only return jobs that support one-click Easy Apply.",
                        "default": false
                    },
                    "willingToSponsor": {
                        "title": "Willing to sponsor only",
                        "type": "boolean",
                        "description": "Only return jobs whose employer indicates willingness to sponsor a visa.",
                        "default": false
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "relevance",
                            "date"
                        ],
                        "type": "string",
                        "description": "Result ordering. \"Relevance\" is the site default; \"Date\" surfaces the most recently posted first.",
                        "default": "relevance"
                    },
                    "urls": {
                        "title": "Search URLs (URL mode)",
                        "type": "array",
                        "description": "One or more dice.com URLs. Examples: https://www.dice.com/jobs?q=python%20developer&countryCode=US, or a single job URL like https://www.dice.com/job-detail/00000000-0000-0000-0000-000000000000. Multi-URL supported; each URL pages forward independently. Filter fields above are ignored.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchDetails": {
                        "title": "Fetch detail pages (richer data)",
                        "type": "boolean",
                        "description": "When ON, also fetch each job's detail page for the full HTML description, skills list, structured street address, apply URL/email, valid-through date, and structured salary. Search results already carry id, title, company, location, salary, employment type, posted date, and summary, so many feeds work great with this OFF. Default OFF.",
                        "default": false
                    },
                    "maxPages": {
                        "title": "Max pages per search",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Hard cap on how many result pages to walk per keyword (or per pasted URL). Each page returns roughly 20 listings. Leave high; the run stops at Max listings. Wide open by default so it never silently caps below Max listings.",
                        "default": 500
                    },
                    "maxListings": {
                        "title": "Max listings (total)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "The single result cap: stop after this many listings across all searches. 0 = no cap (walks until Max pages or the results run out).",
                        "default": 20
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Connection routing. The default works on any Apify plan, including the free tier. Residential routing is optional and can improve reliability under heavy use."
                    },
                    "mcpConnectors": {
                        "title": "Pipe results into your apps (optional)",
                        "type": "array",
                        "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
                    },
                    "notionParentPageUrl": {
                        "title": "Notion parent page (Notion connector only)",
                        "type": "string",
                        "description": "URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
                    },
                    "maxNotifyListings": {
                        "title": "Max items to export per connector",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Cap on items written to each connector per run. Does not affect the dataset.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
