# Jobs.cz Scraper (`solidcode/jobs-cz-scraper`) Actor

\[💰 $0.90 / 1K] Extract job listings from Jobs.cz, the largest job board in the Czech Republic. Search by keyword and location, filter by employment type, work arrangement, and date posted, or paste Jobs.cz URLs to get titles, companies, salaries, descriptions, and apply links.

- **URL**: https://apify.com/solidcode/jobs-cz-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (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 $0.90 / 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

## Jobs.cz Scraper

Pull job listings from Jobs.cz — Czechia's largest job board — at scale, with titles, companies, CZK salaries, employment types, work arrangements, full descriptions, and direct apply links for every posting. Search by keyword and city, or paste a search you have already dialed in on the site. Built for Czech recruiters, job-market analysts, and relocation and HR teams who need fresh Czech labour-market data without copy-pasting postings one page at a time.

### Why This Scraper?

- **4 employment types including Czech DPP/DPČ agreements** — full-time, part-time, agreement (dohoda — DPP/DPČ), and internship/trainee, the contract categories generic job scrapers miss.
- **3 work-arrangement filters** — remote / home office, hybrid, and on-site, the facet Czech candidates filter on first.
- **5 publication-date windows** — last 24 hours, 3 days, 7 days, 30 days, or any time, for freshness-driven sourcing and alerting.
- **Czech and English listings** — pull result text in either language Jobs.cz publishes, with Czech as the full-coverage default.
- **Parsed CZK salary fields** — free-text salary plus a structured minimum, maximum, currency (CZK/EUR), and period (per month / per hour) extracted from each posting.
- **Direct apply and source links on every row** — the apply URL and the job-posting URL, so leads route straight to the application without a manual lookup.
- **Graduate, disabled, and pensioner suitability flags** — the Czech "vhodné pro absolventy / OZP / důchodce" markers surfaced as boolean fields for inclusive-hiring and early-career sourcing.
- **Enriched full descriptions and requirement lists** — flip on detail enrichment to add the complete job description, formatted body, requirements, benefits, company profile URL, and logo to each listing.
- **Search keywords, pasted search URLs, and direct job pages** — combine all three inputs in one run, with automatic de-duplication by job ID so the same posting never bills twice.

### Use Cases

**Recruitment & Talent Sourcing**
- Build candidate-facing role boards for a specific city, skill, or contract type
- Track which companies are hiring developers, accountants, or trades in Praha, Brno, or Ostrava
- Surface graduate-friendly and DPP/DPČ agreement roles for early-career and gig hiring
- Monitor freshly posted roles from the last 24 hours for fast outreach

**Market Research & Salary Benchmarking**
- Benchmark CZK salary ranges by role, city, and seniority
- Measure remote vs. hybrid vs. on-site mix across the Czech market
- Track hiring volume and demand trends by profession over time
- Compare employer activity and posting frequency across industries

**Lead Generation**
- Build employer prospect lists with company name, profile URL, and logo
- Identify companies actively recruiting in your target segment
- Capture apply links to route opportunities into your CRM or ATS
- Flag high-volume hirers for staffing-agency outreach

**Relocation & HR Services**
- Aggregate English-language Czech roles for international candidates
- Map open positions by region for relocation advisory
- Feed live Czech vacancies into HR dashboards and reporting
- Power job-alert emails filtered by location, contract type, and recency

### Getting Started

#### Search by Keyword

The simplest run — one keyword across the whole Czech Republic:

```json
{
    "searchQueries": ["vývojář"],
    "maxResults": 50
}
````

#### Keyword + Location with Filters

Remote developer roles in Prague posted in the last week:

```json
{
    "searchQueries": ["vývojář", "programátor"],
    "locations": ["Praha"],
    "workArrangement": "remote",
    "publicationDate": "7",
    "maxResults": 200
}
```

#### Advanced — Full Configuration

Graduate-friendly full-time accounting roles in Brno, in English, with full detail:

```json
{
    "searchQueries": ["účetní"],
    "locations": ["Brno"],
    "employmentType": "full-time",
    "publicationDate": "30",
    "suitableForGraduates": true,
    "language": "en",
    "includeJobDetails": true,
    "onlyUniqueJobs": true,
    "maxResults": 500
}
```

#### Paste a Jobs.cz Search URL

Already refined a search on the site? Paste the URL and it is scraped exactly as filtered:

```json
{
    "startUrls": ["https://www.jobs.cz/prace/programator/"],
    "maxResults": 300
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | array | `["vývojář"]` | Job titles, skills, or keywords. Each runs a separate search; results merge and de-duplicate. |
| `locations` | array | `[]` | City or region names (Praha, Brno, Ostrava). Each keyword is searched in each location. Empty = nationwide. |
| `startUrls` | array | `[]` | Full Jobs.cz search-result URLs. Baked-in filters are honored as-is. Up to 50. |
| `jobUrls` | array | `[]` | Direct Jobs.cz job-posting URLs to re-fetch or verify. Up to 200. |

#### Filters & Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxResults` | integer | `100` | Maximum jobs per keyword per location. The last page is kept whole, so the final count can slightly overshoot. |
| `employmentType` | string | `Any` | Full-time, Part-time, Agreement (DPP/DPČ), or Internship/Trainee. |
| `workArrangement` | string | `Any` | Remote / Home office, Hybrid, or On-site. |
| `publicationDate` | string | `Any time` | Last 24 hours, 3 days, 7 days, or 30 days. |
| `suitableForGraduates` | boolean | `false` | Only roles flagged suitable for graduates (vhodné pro absolventy). |

#### Localization & Detail

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `language` | string | `Czech` | Result-text language: Czech or English. |
| `includeJobDetails` | boolean | `true` | Add the full description, requirements, benefits, and company profile from each detail page. |
| `onlyUniqueJobs` | boolean | `true` | Return each job once, de-duplicated by job ID across pages and searches. |

### Output

Each result is one flat row per job listing. Example:

```json
{
    "jobId": "1234567",
    "title": "Senior vývojář (backend)",
    "company": "Alma Career Czechia",
    "companyUrl": "https://www.jobs.cz/fp/alma-career-4619724/",
    "companyLogo": "https://www.jobs.cz/img/alma-career-logo.png",
    "location": "Praha",
    "locations": ["Praha"],
    "jobUrl": "https://www.jobs.cz/rpd/1234567/",
    "category": "IT vývoj a správa",
    "professions": ["IT vývoj a správa"],
    "employmentType": "Full-time",
    "workArrangement": "remote",
    "salaryText": "60 000 – 90 000 Kč",
    "salaryMin": 60000,
    "salaryMax": 90000,
    "salaryCurrency": "CZK",
    "salaryPeriod": "month",
    "suitableForGraduates": false,
    "suitableForDisabled": false,
    "suitableForPensioners": false,
    "teaser": "Join our backend team building data tooling.",
    "description": "We are looking for an experienced backend developer...",
    "descriptionHtml": "<p>We are looking for an experienced backend developer...</p>",
    "requirements": ["3+ years backend experience", "SQL", "REST APIs"],
    "benefits": ["5 weeks vacation", "Home office"],
    "postedAt": "Přidáno dnes",
    "applyUrl": "https://www.jobs.cz/rpd/1234567/odpoved/",
    "searchQuery": "vývojář",
    "searchLocation": "Praha",
    "language": "cs",
    "scrapedAt": "2026-06-26T10:00:00Z"
}
```

#### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `jobId` | string | Jobs.cz listing identifier (de-duplication key). |
| `title` | string | Job title. |
| `company` | string | Hiring company name. |
| `companyUrl` | string | Company profile page on Jobs.cz (added with detail enrichment, when the posting has a branded company profile). |
| `companyLogo` | string | Company logo image URL. |
| `location` | string | Primary location as shown on the listing. |
| `locations` | array | All listed locations for the role. |
| `jobUrl` | string | Direct link to the job posting. |

#### Classification

| Field | Type | Description |
|-------|------|-------------|
| `category` | string | Job category as labelled by Jobs.cz. |
| `professions` | array | Profession tags parsed from the category. |
| `employmentType` | string | Full-time, Part-time, Agreement, or Internship. |
| `workArrangement` | string | remote, hybrid, or on-site. |

#### Salary

| Field | Type | Description |
|-------|------|-------------|
| `salaryText` | string | Salary exactly as published (free text). |
| `salaryMin` | number | Parsed lower bound, when present. |
| `salaryMax` | number | Parsed upper bound, when present. |
| `salaryCurrency` | string | CZK or EUR. |
| `salaryPeriod` | string | month or hour. |

#### Suitability & Content

| Field | Type | Description |
|-------|------|-------------|
| `suitableForGraduates` | boolean | Flagged for graduates / school leavers (best-effort; richest with detail enrichment on). |
| `suitableForDisabled` | boolean | Flagged suitable for people with disabilities (OZP) (best-effort; richest with detail enrichment on). |
| `suitableForPensioners` | boolean | Flagged suitable for pensioners / seniors (best-effort; richest with detail enrichment on). |
| `teaser` | string | Short summary line from the posting. |
| `description` | string | Full job description (with detail enrichment on). |
| `descriptionHtml` | string | Description with original rich-text formatting. |
| `requirements` | array | Requirement list parsed from the posting. |
| `benefits` | array | Benefits parsed from the posting. |

#### Dates, Apply & Provenance

| Field | Type | Description |
|-------|------|-------------|
| `postedAt` | string | Posting recency as shown (e.g. "Přidáno dnes"). |
| `applyUrl` | string | Direct apply link for the role. |
| `searchQuery` | string | Keyword that surfaced this row. |
| `searchLocation` | string | Location that surfaced this row. |
| `language` | string | Result-text language (cs or en). |
| `scrapedAt` | string | Timestamp the row was collected (ISO 8601). |

### Tips for Best Results

- **Replicate a refined search with `startUrls`.** Dial in filters on the Jobs.cz website, then paste the resulting URL — every filter baked into it is honored exactly, including options not exposed as inputs here.
- **Keep `includeJobDetails` on for descriptions and requirements.** With it off, runs are faster and lighter but `description`, `requirements`, `benefits`, and the company profile come back empty.
- **Use Czech for the deepest coverage.** Czech-language results cover the full board; English listings are a subset, so switch to English only when you specifically need English-language roles.
- **Agreement (DPP/DPČ) and the 30-day window scan more pages.** These two filters are matched on the postings themselves, so a sparse search reads further into the feed — set a comfortable `maxResults` so genuine matches are not cut short.
- **Run multiple keywords in one job.** List every variant (`vývojář`, `programátor`, `developer`) in `searchQueries`; results merge and de-duplicate by job ID automatically.
- **Search city by city for regional reports.** Add several entries to `locations` to get one clean dataset per market without separate runs.
- **Leave `onlyUniqueJobs` on** unless you specifically want to see a posting once per search it appears in.

### Pricing

**From $0.90 per 1,000 results** — flat pay-per-result pricing that undercuts comparable Czech job-board scrapers. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.11 | $0.10 | $0.10 | $0.09 |
| 1,000 | $1.08 | $1.02 | $0.95 | $0.90 |
| 10,000 | $10.80 | $10.20 | $9.50 | $9.00 |
| 100,000 | $108.00 | $102.00 | $95.00 | $90.00 |

A "result" is one job listing returned to your dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor collects publicly available job-listing data for legitimate business purposes such as recruitment, market research, and labour-market analysis. Use the data responsibly and in compliance with Jobs.cz's terms of service and applicable laws, including the GDPR and other data-protection regulations. Do not use collected data to send unsolicited communications or for any purpose that infringes the rights of employers, candidates, or third parties. You are responsible for ensuring your use of the extracted data is lawful in your jurisdiction.

# Actor input Schema

## `searchQueries` (type: `array`):

Job titles, skills, or keywords to search for, such as 'vývojář', 'programátor', or 'účetní'. Each keyword runs a separate search and results are merged and de-duplicated. Leave empty if you only want to use the direct search URLs below.

## `locations` (type: `array`):

One or more city or region names, such as 'Praha', 'Brno', or 'Ostrava'. Each keyword is searched in each location. Leave empty to search the whole Czech Republic.

## `startUrls` (type: `array`):

Paste full Jobs.cz search-result URLs (for example https://www.jobs.cz/prace/programator/). The filters baked into each URL are scraped exactly as-is. Useful when you have already dialed in a search on the Jobs.cz website. Up to 50 URLs per run.

## `jobUrls` (type: `array`):

Direct Jobs.cz job-posting URLs. Use this to re-fetch full details for specific listings you already have, or to check whether a posting is still online. Up to 200 URLs per run.

## `maxResults` (type: `integer`):

Maximum number of jobs to collect per search keyword (per location). Use 50 for a quick scan or a higher number for deep research. The last page is always kept in full, so the final count can slightly overshoot this number.

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

Filter by contract type. Leave on 'Any' for all types.

## `workArrangement` (type: `string`):

Filter by where the work is done. Leave on 'Any' to include all arrangements.

## `publicationDate` (type: `string`):

Only show jobs published within this time period.

## `suitableForGraduates` (type: `boolean`):

Only show jobs flagged as suitable for graduates / school leavers (vhodné pro absolventy).

## `language` (type: `string`):

Interface and result language. Jobs.cz is available in Czech and English.

## `includeJobDetails` (type: `boolean`):

Fetch the full description, requirements, and company profile from each job's detail page. Leave on for the richest data. Turn off for faster, lighter scans — the description and company-profile fields will then be empty.

## `onlyUniqueJobs` (type: `boolean`):

When on, each job is returned once even if Jobs.cz lists it across several pages or searches. Deduplicates by the listing's job ID. Turn off to keep every copy.

## Actor input object example

```json
{
  "searchQueries": [
    "vývojář"
  ],
  "locations": [],
  "startUrls": [],
  "jobUrls": [],
  "maxResults": 100,
  "employmentType": "",
  "workArrangement": "",
  "publicationDate": "",
  "suitableForGraduates": false,
  "language": "cs",
  "includeJobDetails": true,
  "onlyUniqueJobs": true
}
```

# Actor output Schema

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

Table of scraped job listings with key fields.

## `detail` (type: `string`):

Complete job records including descriptions, requirements, salary, suitability flags, and company profile.

# 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 = {
    "searchQueries": [
        "vývojář"
    ],
    "locations": [],
    "startUrls": [],
    "jobUrls": [],
    "maxResults": 100,
    "employmentType": "",
    "workArrangement": "",
    "publicationDate": "",
    "suitableForGraduates": false,
    "language": "cs",
    "includeJobDetails": true,
    "onlyUniqueJobs": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/jobs-cz-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 = {
    "searchQueries": ["vývojář"],
    "locations": [],
    "startUrls": [],
    "jobUrls": [],
    "maxResults": 100,
    "employmentType": "",
    "workArrangement": "",
    "publicationDate": "",
    "suitableForGraduates": False,
    "language": "cs",
    "includeJobDetails": True,
    "onlyUniqueJobs": True,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/jobs-cz-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 '{
  "searchQueries": [
    "vývojář"
  ],
  "locations": [],
  "startUrls": [],
  "jobUrls": [],
  "maxResults": 100,
  "employmentType": "",
  "workArrangement": "",
  "publicationDate": "",
  "suitableForGraduates": false,
  "language": "cs",
  "includeJobDetails": true,
  "onlyUniqueJobs": true
}' |
apify call solidcode/jobs-cz-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Jobs.cz Scraper",
        "description": "[💰 $0.90 / 1K] Extract job listings from Jobs.cz, the largest job board in the Czech Republic. Search by keyword and location, filter by employment type, work arrangement, and date posted, or paste Jobs.cz URLs to get titles, companies, salaries, descriptions, and apply links.",
        "version": "1.0",
        "x-build-id": "pybbcNtmkMbNBb8iH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~jobs-cz-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-jobs-cz-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/solidcode~jobs-cz-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-jobs-cz-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/solidcode~jobs-cz-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-jobs-cz-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": {
                    "searchQueries": {
                        "title": "Search Keywords",
                        "maxItems": 50,
                        "type": "array",
                        "description": "Job titles, skills, or keywords to search for, such as 'vývojář', 'programátor', or 'účetní'. Each keyword runs a separate search and results are merged and de-duplicated. Leave empty if you only want to use the direct search URLs below.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "locations": {
                        "title": "Locations",
                        "maxItems": 50,
                        "type": "array",
                        "description": "One or more city or region names, such as 'Praha', 'Brno', or 'Ostrava'. Each keyword is searched in each location. Leave empty to search the whole Czech Republic.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Direct Jobs.cz Search URLs",
                        "maxItems": 50,
                        "type": "array",
                        "description": "Paste full Jobs.cz search-result URLs (for example https://www.jobs.cz/prace/programator/). The filters baked into each URL are scraped exactly as-is. Useful when you have already dialed in a search on the Jobs.cz website. Up to 50 URLs per run.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "jobUrls": {
                        "title": "Job Page URLs",
                        "maxItems": 200,
                        "type": "array",
                        "description": "Direct Jobs.cz job-posting URLs. Use this to re-fetch full details for specific listings you already have, or to check whether a posting is still online. Up to 200 URLs per run.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max Results per Search",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of jobs to collect per search keyword (per location). Use 50 for a quick scan or a higher number for deep research. The last page is always kept in full, so the final count can slightly overshoot this number.",
                        "default": 100
                    },
                    "employmentType": {
                        "title": "Employment Type",
                        "enum": [
                            "",
                            "full-time",
                            "part-time",
                            "agreement",
                            "internship"
                        ],
                        "type": "string",
                        "description": "Filter by contract type. Leave on 'Any' for all types.",
                        "default": ""
                    },
                    "workArrangement": {
                        "title": "Work Arrangement",
                        "enum": [
                            "",
                            "remote",
                            "hybrid",
                            "onsite"
                        ],
                        "type": "string",
                        "description": "Filter by where the work is done. Leave on 'Any' to include all arrangements.",
                        "default": ""
                    },
                    "publicationDate": {
                        "title": "Posted Within",
                        "enum": [
                            "",
                            "1",
                            "3",
                            "7",
                            "30"
                        ],
                        "type": "string",
                        "description": "Only show jobs published within this time period.",
                        "default": ""
                    },
                    "suitableForGraduates": {
                        "title": "Suitable for Graduates Only",
                        "type": "boolean",
                        "description": "Only show jobs flagged as suitable for graduates / school leavers (vhodné pro absolventy).",
                        "default": false
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "cs",
                            "en"
                        ],
                        "type": "string",
                        "description": "Interface and result language. Jobs.cz is available in Czech and English.",
                        "default": "cs"
                    },
                    "includeJobDetails": {
                        "title": "Fetch Full Job Details",
                        "type": "boolean",
                        "description": "Fetch the full description, requirements, and company profile from each job's detail page. Leave on for the richest data. Turn off for faster, lighter scans — the description and company-profile fields will then be empty.",
                        "default": true
                    },
                    "onlyUniqueJobs": {
                        "title": "Only Unique Jobs",
                        "type": "boolean",
                        "description": "When on, each job is returned once even if Jobs.cz lists it across several pages or searches. Deduplicates by the listing's job ID. Turn off to keep every copy.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
