# Dice Jobs Search Scraper (`stealth_mode/dice-jobs-search-scraper`) Actor

Scrape tech job listings from Dice.com search results with ease. Collect job titles, salaries, company info, remote status, employment types, and 20+ fields per listing — perfect for recruiters, analysts, and job aggregator developers.

- **URL**: https://apify.com/stealth\_mode/dice-jobs-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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.com Jobs Search Scraper: Extract Tech Job Listings at Scale

---

### What Is Dice.com?

Dice.com is one of the largest technology-focused job platforms in the United States, connecting IT professionals with employers across software engineering, data science, cybersecurity, and more. With thousands of new listings posted daily, manually extracting job data is impractical. The **Dice.com Jobs Search Scraper** automates collection directly from search result pages, delivering structured records ready for analysis or integration.

---

### Overview

The **Dice Jobs Scraper** targets Dice.com search result URLs and extracts all visible job cards per page. It is built for:

- **Tech recruiters** monitoring market demand and competitor postings
- **Salary researchers** aggregating compensation data by role or location
- **Developers** feeding data into job boards or recommendation engines
- **HR analysts** tracking remote work trends in the tech sector

Key features include configurable result limits, fault-tolerant URL handling, and support for any Dice search query — by keyword, location, radius, and pagination.

---

### Input Format

```json
{
  "urls": ["https://www.dice.com/jobs?q=python&radius=30&radiusUnit=mi&page=2"],
  "ignore_url_failures": true,
  "max_items_per_url": 50
}
````

| Field | Type | Description |
|---|---|---|
| `urls` | `array` | One or more Dice.com job search result URLs. Supports any query parameters (`q`, `radius`, `page`, etc.). Add URLs one by one or via bulk edit. |
| `ignore_url_failures` | `boolean` | If `true`, the scraper continues when a URL fails instead of stopping the entire run. Recommended for bulk jobs. Default: `true`. |
| `max_items_per_url` | `integer` | Maximum number of job listings collected per URL. Useful for capping large result sets. Default: `20`. |

> **Tip:** Use the `page` parameter in your URL to paginate through results (e.g., `&page=1`, `&page=2`). Combine multiple page URLs in the `urls` array for full result coverage.

***

### Output Format

**Sample output**

```json
{
  "id": "7a6bcc1565655950bfbb69a30ab24d9b",
  "guid": "7fd67740-5947-4470-a812-300ecdd377ce",
  "details_page_url": "https://www.dice.com/job-detail/7fd67740-5947-4470-a812-300ecdd377ce",
  "client_brand_id": "91081485",
  "company_name": "Galent",
  "company_logo_url": "https://d3qscgr6xsioh.cloudfront.net/Z4QqZpCIRba92dgvpvCw_transformed.png?format=webp",
  "company_logo_url_optimized": "https://d3qscgr6xsioh.cloudfront.net/Z4QqZpCIRba92dgvpvCw_transformed.png?format=webp",
  "employment_type": "Full-time",
  "employer_type": "Recruiter",
  "job_location": {
    "city": "Bloomington",
    "state": "Illinois",
    "country": "USA",
    "region": "IL",
    "display_name": "Bloomington, Illinois, USA"
  },
  "posted_date": "2026-05-08T16:30:23Z",
  "modified_date": "2026-05-14T17:56:55Z",
  "salary": "Up to $55",
  "summary": "Mandatory Skills : Selenium-Python -Testing, Robot, JMeters  Job description:  Looking for SDET to Design build and maintain automation frameworks using Python using Robot framework Develop and execute automated test scripts for web applications across multiple browsers Implement best practices such as Page Object Model POM data driven and hybrid frameworks Understand JMeter tool and usage as a performance testing Perform automation feasibility analysis and identify candidates for automation Int",
  "title": "Sr. Automation Engineer (Robot/Python)",
  "score": 9349.166,
  "easy_apply": true,
  "is_remote": false,
  "work_from_home_availability": "FALSE",
  "workplace_types": [
    "Hybrid"
  ],
  "company_profile_id": "5eccc24d-efbc-546c-baea-ec5a6de72ee5"
}
```

Each scraped job returns a record with 20+ fields:

#### Identification

| Field | Meaning |
|---|---|
| `ID` | Dice's internal numeric identifier for the listing |
| `GUID` | Globally unique identifier (UUID format) for the job |
| `Details Page URL` | Direct link to the full job detail page on Dice.com |
| `Client Brand ID` | Internal ID linking the listing to the employer's brand profile |
| `Company Profile ID` | Dice profile identifier for the posting company |

#### Company Info

| Field | Meaning |
|---|---|
| `Company Name` | Name of the hiring employer |
| `Company Logo URL` | Original logo image URL |
| `Company Logo URL Optimized` | CDN-optimized version of the logo for faster loading |

#### Job Details

| Field | Meaning |
|---|---|
| `Title` | Job title as displayed in the listing |
| `Summary` | Short plain-text description or excerpt of the role |
| `Employment Type` | Contract basis (e.g., Full-time, Contract, Part-time) |
| `Employer Type` | Whether the poster is a direct employer or staffing agency |
| `Job Location` | City/state or region where the role is based |
| `Salary` | Compensation range if disclosed by the employer |

#### Dates

| Field | Meaning |
|---|---|
| `Posted Date` | When the listing was first published |
| `Modified Date` | Last update timestamp for the listing |

#### Remote & Work Arrangement

| Field | Meaning |
|---|---|
| `Is Remote` | Boolean flag — `true` if the role is fully remote |
| `Work From Home Availability` | More granular WFH policy detail (e.g., occasional, hybrid) |
| `Workplace Types` | Array of tags such as `Remote`, `Hybrid`, `On-Site` |

#### Platform Signals

| Field | Meaning |
|---|---|
| `Score` | Dice's internal relevance/ranking score for search results |
| `Easy Apply` | Boolean — `true` if the job supports one-click application via Dice |

***

### How to Use

1. **Build your search URL** — Go to Dice.com, run a job search with your desired filters (keyword, location, radius), and copy the URL from your browser.
2. **Paginate if needed** — Append `&page=N` to collect results beyond page 1. Add each page URL to the `urls` array.
3. **Set item limit** — Use `max_items_per_url` to control how many records are collected per URL (max typically aligns with Dice's results-per-page count).
4. **Enable fault tolerance** — Keep `ignore_url_failures: true` for multi-URL runs.
5. **Export** — Download results as JSON, CSV, or Excel for use in spreadsheets, databases, or BI tools.

**Common issues:**

- If results appear empty, verify the URL returns results when opened in a browser.
- Pagination URLs must be valid search pages — avoid linking to job detail pages.

***

### Use Cases & Business Value

- **Salary benchmarking:** Aggregate compensation data by role, stack, or location
- **Remote work analysis:** Track the growth of remote-first tech roles over time
- **Talent market research:** Identify in-demand skills by scraping keyword-based searches
- **Job aggregators:** Populate a custom job board with fresh Dice listings automatically

The scraper eliminates repetitive manual browsing, turning paginated search results into clean, structured datasets in minutes.

***

### Conclusion

The **Dice.com Jobs Search Scraper** is an efficient tool for anyone working with tech job market data. With 20+ output fields covering compensation, remote status, employer details, and application metadata, it delivers the depth needed for serious research or product development. Configure a search URL, set your limits, and start extracting.

# Actor input Schema

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

Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.dice.com/jobs?q=python&radius=30&radiusUnit=mi&page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://www.dice.com/jobs?q=python&radius=30&radiusUnit=mi&page=2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/dice-jobs-search-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 = {
    "urls": ["https://www.dice.com/jobs?q=python&radius=30&radiusUnit=mi&page=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/dice-jobs-search-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 '{
  "urls": [
    "https://www.dice.com/jobs?q=python&radius=30&radiusUnit=mi&page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/dice-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Dice Jobs Search Scraper",
        "description": "Scrape tech job listings from Dice.com search results with ease. Collect job titles, salaries, company info, remote status, employment types, and 20+ fields per listing — perfect for recruiters, analysts, and job aggregator developers.",
        "version": "0.0",
        "x-build-id": "5Ld4NJBMBZfnevkU5"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~dice-jobs-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-dice-jobs-search-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/stealth_mode~dice-jobs-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-dice-jobs-search-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/stealth_mode~dice-jobs-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-dice-jobs-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the Jobs list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
