# Seek, JobStreet & JobsDB Scraper - Jobs Data of 8 Countries (`santamaria-automations/seek-scraper`) Actor

Extract jobs from Seek (🇦🇺AU/🇳🇿NZ), JobStreet (🇸🇬SG/🇲🇾MY/🇮🇩ID/🇵🇭 PH), and JobsDB (🇭🇰HK/🇹🇭TH). Extracts 40 fields: Job title & description, salaries, contact email/phone, company details, work type, work arrangement, classifications. 8 countries, one actor. $2.50/1K job listings.

- **URL**: https://apify.com/santamaria-automations/seek-scraper.md
- **Developed by:** [Ale](https://apify.com/santamaria-automations) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 jobs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Seek Scraper - Jobs in 8 Asia-Pacific Countries

Extract job listings from **Seek** (Australia, New Zealand), **JobStreet** (Singapore, Malaysia, Indonesia, Philippines), and **JobsDB** (Hong Kong, Thailand). Get 40 structured fields per job including salary ranges, full job description, contact email and phone, company profile with industry and perks, and employer screening questions. No code needed.

---

### What data can you extract?

Every job listing returns up to **40 fields** organized into these categories:

**Job details**
`title`, `id`, `teaser`, `description_full` (plain text), `description_html` (original HTML), `classifications` (formatted array), `classification`, `sub_classification`, `work_type`, `work_arrangement`, `bullet_points`, `is_featured`, `job_status` (online/expired), `content_hash` (MD5 for change detection), `listing_date`

**Salary**
`salary_text`, `salary_min`, `salary_max`, `salary_currency`, `salary_period`

**Contact info**
`contact_email`, `contact_phone` — extracted from data-contact-match attributes in the job detail page. These are real, unobscured contact details when the employer provides them.

**Employer**
`employer_id`, `employer_questions` — screening questions the employer asks applicants

**Company profile**
`company`, `company_logo_url`, `company_industry`, `company_size`, `company_description`, `company_perks`, `company_profile_url`

**Location**
`location`, `locations` (array of all locations), `country`, `country_code`, `state`

**Meta**
`source_url`, `source_platform`, `search_query`, `scraped_at`

---

### Pricing

| Event | Cost |
|-------|------|
| Actor start | **$0.001** |
| Per job result | **$0.003** |

| Jobs | Cost |
|------|------|
| 10 | $0.03 |
| 100 | $0.30 |
| 1,000 | $2.50 |
| 10,000 | $25.00 |

$2.50 per 1,000 jobs. Every result includes salary, company profile, contact info, and full description. No hidden fees, no monthly subscription.

---

### Supported countries

| Country | Domain | Platform | Currency |
|---------|--------|----------|----------|
| Australia | au.seek.com | Seek | AUD |
| New Zealand | nz.seek.com | Seek | NZD |
| Hong Kong | hk.jobsdb.com | JobsDB | HKD |
| Singapore | sg.jobstreet.com | JobStreet | SGD |
| Malaysia | my.jobstreet.com | JobStreet | MYR |
| Indonesia | id.jobstreet.com | JobStreet | IDR |
| Philippines | ph.jobstreet.com | JobStreet | PHP |
| Thailand | th.jobsdb.com | JobsDB | THB |

---

### Use with AI Agents (MCP)

Connect this actor to any MCP-compatible AI client -- Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.

**Apify MCP server URL:**

````

https://mcp.apify.com?tools=santamaria-automations/seek-scraper

````

**Example prompts:**

> "Use `seek-scraper` to find remote Software Engineer jobs in Sydney, Australia. Return the top 20 as a table with title, company, salary, and work arrangement."

> "Use `seek-scraper` with country=sg to search for Data Engineer jobs in Singapore."

> "Search Seek NZ for Python developer jobs and compare salaries across New Zealand cities."

---

### How to use

#### 1. Search URLs (recommended)

Go to the job site for your country, set your filters (keywords, location, salary range, work type), and paste the URL. The country is auto-detected from the domain -- no need to set the country dropdown separately.

**Australia example:**
```json
{
  "searchUrls": ["https://au.seek.com/registered-nurse-jobs-in-Sydney"],
  "maxResults": 50
}
````

**New Zealand example:**

```json
{
  "searchUrls": ["https://nz.seek.com/data-analyst-jobs-in-Auckland"],
  "maxResults": 100
}
```

**Singapore example:**

```json
{
  "searchUrls": ["https://sg.jobstreet.com/python-developer-jobs"],
  "maxResults": 100
}
```

#### 2. Search Keywords

Enter one or more keywords. The scraper searches the selected country and returns matching jobs.

```json
{
  "country": "my",
  "searchQueries": ["python developer", "data engineer"],
  "maxResultsPerQuery": 100
}
```

#### 3. Country selector

Pick a country from the dropdown and leave all other fields empty for a broad search of all jobs in that country.

```json
{
  "country": "hk",
  "maxResults": 200
}
```

#### Mixing URLs from different countries

You can paste URLs from multiple countries in a single run. The scraper auto-detects the country from each URL domain.

```json
{
  "searchUrls": [
    "https://au.seek.com/react-jobs-in-Sydney",
    "https://sg.jobstreet.com/react-jobs",
    "https://hk.jobsdb.com/react-jobs"
  ],
  "maxResults": 200
}
```

#### 4. Direct Job URLs (alive checks)

Paste individual job page URLs to check if they're still active. Returns `job_status`: `online` (with full job data) or `expired`.

```json
{
  "directUrls": [
    "https://www.seek.com.au/job/91878509",
    "https://www.seek.com.au/job/50000000"
  ]
}
```

Perfect for monitoring job listings and detecting when positions are filled.

#### URL filters

Go to the Seek website, apply any filters (salary, work type, date, classification, location), and paste the URL. All filters are preserved automatically.

**Available filters (as URL parameters):**

| Filter | Parameter | Example |
|--------|-----------|---------|
| Date range | `daterange=1/3/7/14/31` | Last 24h / 3d / 7d / 14d / 31d |
| Sort | `sortmode=ListedDate` | Sort by newest |
| Salary range | `salaryrange=80000-150000&salarytype=annual` | $80K-$150K annual |
| Work type | `worktype=242,243` | Full-time, Part-time |
| Work arrangement | `workarrangement=1,2,3` | On-site, Hybrid, Remote |
| Classification | `classification=6281` | ICT jobs |
| Location | `where=Sydney` | City filter |

**Filtered search examples by country:**

```json
{
  "searchUrls": [
    "https://au.seek.com/javascript-jobs?daterange=14&salaryrange=80000-200000&salarytype=annual&sortmode=ListedDate&workarrangement=2,3",
    "https://nz.seek.com/developer-jobs?daterange=7&sortmode=ListedDate",
    "https://sg.jobstreet.com/engineer-jobs?daterange=14&salaryrange=5000-15000&salarytype=monthly",
    "https://hk.jobsdb.com/developer-jobs?daterange=7",
    "https://my.jobstreet.com/marketing-jobs?worktype=242",
    "https://id.jobstreet.com/engineer-jobs?daterange=31",
    "https://ph.jobstreet.com/nurse-jobs?workarrangement=1",
    "https://th.jobsdb.com/developer-jobs?sortmode=ListedDate"
  ],
  "maxResults": 500
}
```

> **Note:** Seek limits search results to 500 per unique filtered query (25 pages × 20 results). To get more results, use multiple filtered search URLs — for example, 10 different queries can return up to 5,000 results in a single run.

***

### Input reference

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `country` | string | `au` | Country to search: au, nz, hk, sg, my, id, ph, th. Auto-detected when using search URLs. |
| `searchUrls` | string\[] | -- | Pre-filtered search URLs from any supported domain. Country auto-detected. |
| `searchQueries` | string\[] | -- | One or more search keywords (e.g. "python developer"). |
| `directUrls` | string\[] | -- | Individual job page URLs for alive checks. Returns job\_status (online/expired). |
| `includeJobDetails` | boolean | `true` | Fetch detail pages for full description, contact email/phone, employer questions, and company profile. |
| `maxConcurrency` | integer | `3` | Parallel detail page fetches (1-10). Higher = faster but may get rate-limited. |
| `maxResults` | integer | `10` | Total cap across all queries (0 = unlimited). |
| `maxResultsPerQuery` | integer | `100` | Max results per search URL or keyword. |
| `proxyConfiguration` | object | Apify auto | Proxy settings. Datacenter proxies work well. |

***

### Output example

```json
{
  "id": "82345678",
  "title": "Registered Nurse - Emergency Department",
  "company": "St Vincent's Health Australia",
  "company_logo_url": "https://image-service-cdn.seek.com.au/abc123_transformed.png",
  "employer_id": "34567",
  "company_industry": "Healthcare & Medical",
  "company_size": "10,001+",
  "company_description": "St Vincent's Health Australia is the nation's largest not-for-profit health and aged care provider...",
  "company_perks": [
    "Salary packaging benefits",
    "Fitness Passport",
    "Employee Assistance Program",
    "Career development and training"
  ],
  "company_profile_url": "https://www.seek.com.au/companies/st-vincents-health-australia-432871",
  "location": "Sydney CBD, Inner West & Eastern Suburbs",
  "country": "AU",
  "country_code": "AU",
  "state": "New South Wales",
  "classification": "Healthcare & Medical",
  "sub_classification": "Nursing - Emergency",
  "salary_text": "$85,000 - $105,000 per year + salary packaging",
  "salary_min": 85000,
  "salary_max": 105000,
  "salary_currency": "AUD",
  "salary_period": "year",
  "work_type": "Full time",
  "work_arrangement": "On-site",
  "teaser": "Join our award-winning Emergency Department team at St Vincent's Hospital Sydney...",
  "description_full": "About the role\n\nWe are seeking an experienced Registered Nurse to join our Emergency Department...",
  "description_html": "<div><h2>About the role</h2><p>We are seeking an experienced Registered Nurse to join our Emergency Department...</p></div>",
  "contact_email": "nursing.recruitment@svha.org.au",
  "contact_phone": "02 8382 1111",
  "employer_questions": [
    "Do you have current AHPRA registration as a Registered Nurse?",
    "How many years of emergency nursing experience do you have?",
    "Are you willing to work rotating shifts including nights and weekends?"
  ],
  "bullet_points": [
    "Competitive salary + salary packaging up to $15,900",
    "Award-winning Level 1 Trauma Centre",
    "Ongoing professional development and education"
  ],
  "is_featured": false,
  "listing_date": "2026-05-02T00:00:00Z",
  "source_url": "https://www.seek.com.au/job/82345678",
  "source_platform": "seek.com.au",
  "search_query": "registered nurse",
  "scraped_at": "2026-05-04T14:30:00.000Z"
}
```

***

### Use cases

**Salary benchmarking across Asia-Pacific**
Compare salaries for the same role across 8 countries. Run "data engineer" searches in AU, SG, HK, and MY to see how compensation varies across the region.

**Recruitment and talent sourcing**
Feed job listings into your CRM, ATS, or spreadsheet via Apify's API, webhooks, or integrations. Use contact\_email and contact\_phone to reach hiring managers directly.

**Market research and hiring trends**
Track which skills and technologies are in demand across Asia-Pacific. Search for "kubernetes", "react", or "machine learning" across all 8 countries.

**Competitor intelligence**
Monitor competitor hiring activity across multiple markets. Track when companies expand into new countries by watching their job postings.

**Work arrangement analysis**
Use the work\_arrangement field (Remote/Hybrid/On-site) to analyze flexible work trends across countries and industries.

***

### Speed

| Jobs | Details OFF (fast) | Details ON (full) |
|------|-------------------|-------------------|
| 10 | **~1 second** | **~4 seconds** |
| 50 | **~4 seconds** | **~15 seconds** |
| 100 | **~7 seconds** | **~30 seconds** |
| 500 | **~38 seconds** | **~3 minutes** |

**Details OFF** returns SERP data: title, company, salary, location, work type, teaser, bullet points.
**Details ON** adds: full description, contact email/phone, employer questions, company profile (industry, size, perks), content hash.

#### Field availability by mode

| Fields | Search (fast) | Search + Details | Direct URLs |
|--------|:---:|:---:|:---:|
| Title, company, salary, location | ✅ | ✅ | ✅ |
| Classification, work type/arrangement | ✅ | ✅ | ✅ |
| Teaser, bullet points, listing date | ✅ | ✅ | ✅ |
| Full description (text + HTML) | — | ✅ | ✅ |
| Contact email & phone | — | ✅ | ✅ |
| Employer questions | — | ✅ | ✅ |
| Company industry, size, perks | — | ✅ | ✅ |
| Content hash (change detection) | — | ✅ | ✅ |
| Job status (online/expired) | online | online | ✅ |

***

### Integrations

This actor works with all Apify integrations:

- **API** -- trigger runs and download results programmatically
- **Webhooks** -- get notified when a run completes
- **Zapier & Make** -- connect to 5,000+ apps
- **Google Sheets** -- export directly to a spreadsheet
- **Slack, Email** -- get notifications with results

***

### Related actors

- [Indeed Scraper](https://apify.com/santamaria-automations/indeed-scraper) -- 60+ countries, salary and company enrichment
- [Dice Scraper](https://apify.com/santamaria-automations/dice-scraper) -- US tech jobs
- [RemoteOK Scraper](https://apify.com/santamaria-automations/remoteok-scraper) -- Remote jobs worldwide
- [Built In Scraper](https://apify.com/santamaria-automations/builtin-scraper) -- US tech company jobs

***

Something not working? [Create an issue](https://console.apify.com/actors/cU78aljhQM7f5dMuk/issues) and we will fix it fast.

# Actor input Schema

## `country` (type: `string`):

Select which country to search. Covers Seek (AU/NZ), JobStreet (SG/MY/ID/PH), and JobsDB (HK/TH). Auto-detected if you paste a URL from any of these sites.

## `searchUrls` (type: `array`):

Paste one or more search URLs from au.seek.com, nz.seek.com, sg.jobstreet.com, my.jobstreet.com, id.jobstreet.com, ph.jobstreet.com, hk.jobsdb.com, or th.jobsdb.com. The country is auto-detected from the URL domain. All filters are preserved.

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

One or more search keywords (e.g. 'python developer', 'data engineer'). Each runs as a separate search using the selected country. Results are deduplicated across queries.

## `directUrls` (type: `array`):

Paste individual job page URLs for alive checks. Returns job\_status (online/expired) with full job data if available.

## `maxResultsPerQuery` (type: `integer`):

Maximum results per search URL or keyword.

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

Total cap across all queries and search URLs. Set to 0 for unlimited.

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

Fetch each job's detail page for full description, employer questions, contact email/phone, and company profile. Slightly slower but much richer data.

## `maxConcurrency` (type: `integer`):

Parallel detail page fetches. Higher = faster but may get rate-limited. Default 3 balances speed and reliability.

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

Proxy configuration. Default uses Apify datacenter proxies.

## Actor input object example

```json
{
  "country": "au",
  "searchUrls": [
    "https://au.seek.com/software-engineer-jobs"
  ],
  "maxResultsPerQuery": 100,
  "maxResults": 10,
  "includeJobDetails": true,
  "maxConcurrency": 3,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

# Actor output Schema

## `jobListings` (type: `string`):

Dataset containing scraped job listings from Seek, JobStreet, and JobsDB across 8 Asia-Pacific countries. Each record includes: job title, company (name/logo/employer ID/industry/size/description/perks/profile URL), salary (min/max/currency/period/text), location (label/country code/state), classification/sub-classification, work type, work arrangement (Remote/Hybrid/On-site), teaser, description (full text and HTML), contact email/phone, employer questions, bullet points, listing date, featured status, country, source URL.

# 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 = {
    "country": "au",
    "searchUrls": [
        "https://au.seek.com/software-engineer-jobs"
    ],
    "maxResultsPerQuery": 100,
    "maxResults": 10,
    "includeJobDetails": true,
    "maxConcurrency": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("santamaria-automations/seek-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 = {
    "country": "au",
    "searchUrls": ["https://au.seek.com/software-engineer-jobs"],
    "maxResultsPerQuery": 100,
    "maxResults": 10,
    "includeJobDetails": True,
    "maxConcurrency": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("santamaria-automations/seek-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 '{
  "country": "au",
  "searchUrls": [
    "https://au.seek.com/software-engineer-jobs"
  ],
  "maxResultsPerQuery": 100,
  "maxResults": 10,
  "includeJobDetails": true,
  "maxConcurrency": 3
}' |
apify call santamaria-automations/seek-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Seek, JobStreet & JobsDB Scraper - Jobs Data of 8 Countries",
        "description": "Extract jobs from Seek (🇦🇺AU/🇳🇿NZ), JobStreet (🇸🇬SG/🇲🇾MY/🇮🇩ID/🇵🇭 PH), and JobsDB (🇭🇰HK/🇹🇭TH). Extracts 40 fields: Job title & description, salaries, contact email/phone, company details, work type, work arrangement, classifications. 8 countries, one actor. $2.50/1K job listings.",
        "version": "1.0",
        "x-build-id": "qgK1ego9ubZKullPs"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/santamaria-automations~seek-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-santamaria-automations-seek-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/santamaria-automations~seek-scraper/runs": {
            "post": {
                "operationId": "runs-sync-santamaria-automations-seek-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/santamaria-automations~seek-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-santamaria-automations-seek-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": {
                    "country": {
                        "title": "Country",
                        "enum": [
                            "au",
                            "nz",
                            "hk",
                            "sg",
                            "my",
                            "id",
                            "ph",
                            "th"
                        ],
                        "type": "string",
                        "description": "Select which country to search. Covers Seek (AU/NZ), JobStreet (SG/MY/ID/PH), and JobsDB (HK/TH). Auto-detected if you paste a URL from any of these sites.",
                        "default": "au"
                    },
                    "searchUrls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "Paste one or more search URLs from au.seek.com, nz.seek.com, sg.jobstreet.com, my.jobstreet.com, id.jobstreet.com, ph.jobstreet.com, hk.jobsdb.com, or th.jobsdb.com. The country is auto-detected from the URL domain. All filters are preserved.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchQueries": {
                        "title": "Search Keywords",
                        "type": "array",
                        "description": "One or more search keywords (e.g. 'python developer', 'data engineer'). Each runs as a separate search using the selected country. Results are deduplicated across queries.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "directUrls": {
                        "title": "Direct Job URLs",
                        "type": "array",
                        "description": "Paste individual job page URLs for alive checks. Returns job_status (online/expired) with full job data if available.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResultsPerQuery": {
                        "title": "Max Results per Query",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum results per search URL or keyword.",
                        "default": 100
                    },
                    "maxResults": {
                        "title": "Max Total Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Total cap across all queries and search URLs. Set to 0 for unlimited.",
                        "default": 10
                    },
                    "includeJobDetails": {
                        "title": "Include Job Details",
                        "type": "boolean",
                        "description": "Fetch each job's detail page for full description, employer questions, contact email/phone, and company profile. Slightly slower but much richer data.",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Parallel detail page fetches. Higher = faster but may get rate-limited. Default 3 balances speed and reliability.",
                        "default": 3
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy configuration. Default uses Apify datacenter proxies.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": []
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
