# SEEK Jobs Scraper (`dami_studio/seek-jobs-scraper`) Actor

Scrape public SEEK Australia and New Zealand jobs by keyword or direct URL. Includes filters, pagination, deduplication, salary and workplace data, optional descriptions, and residential fallback only when direct requests are blocked.

- **URL**: https://apify.com/dami\_studio/seek-jobs-scraper.md
- **Developed by:** [Dami's Studio](https://apify.com/dami_studio) (community)
- **Categories:** Jobs, Lead generation, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.50 / 1,000 seek 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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 Jobs Scraper

Scrape public SEEK job listings from Australia (`seek.com.au`) and New Zealand (`seek.co.nz`) without an API key or login. Search by keywords and location, follow pagination, deduplicate jobs, filter by employment type, workplace, salary, and posting age, or fetch direct job IDs and URLs.

### What it returns

Each successful job row includes the SEEK job ID, title, company, locations, workplace type, employment type, salary label and parsed salary values, listing date, teaser, bullet points, canonical URL, source, and charge state. Enable **Fetch descriptions** to request the public job page and add description and structured JobPosting fields. Details are best-effort: a listing row remains useful when an employer page changes or is unavailable.

### Input examples

Search Australia:

```json
{
  "site": "AU",
  "keywords": "software engineer",
  "location": "Sydney",
  "maxItems": 50,
  "maxPages": 3,
  "includeDetails": false
}
````

Search New Zealand for recent remote roles:

```json
{
  "site": "NZ",
  "keywords": "data analyst",
  "location": "Auckland",
  "workplaceTypes": ["Remote"],
  "datePosted": "7days",
  "maxItems": 100
}
```

Direct jobs can be supplied with `jobIds` or public `jobUrls`. Direct requests are deduplicated with search results.

### Network and proxy behavior

The actor always starts with a direct request. It uses the configured residential Apify proxy only after SEEK responds with a block or rate-limit status, and limits rotations with `maxProxyRetries`. This keeps ordinary runs inexpensive while retaining a recovery path for traffic shaping. Proxy bandwidth is an external variable and can dominate cost when descriptions are enabled or a search requires multiple rotations. For predictable economics, begin with `includeDetails: false`, modest `maxPages`, and a small `maxItems` value.

Blocked and empty searches produce an uncharged diagnostic row. An empty input produces a labeled uncharged sample row so automated actor tests can validate the output contract without SEEK traffic.

### Pricing event

Successful job rows use the `job` pay-per-event event. Diagnostics, samples, and failed requests are never charged.

### Privacy and limits

This actor reads public SEEK pages and does not require credentials. Users are responsible for complying with SEEK terms, applicable law, and reasonable request rates. Do not submit private or authenticated URLs.

# Actor input Schema

## `site` (type: `string`):

Search SEEK Australia or New Zealand.

## `keywords` (type: `string`):

Job title or search terms, for example software engineer or registered nurse.

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

City, region, or country. Leave blank for all locations.

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

Public SEEK job URLs to fetch directly. Direct URLs are deduplicated with search results.

## `jobIds` (type: `array`):

SEEK numeric job IDs to fetch directly.

## `maxItems` (type: `integer`):

Maximum unique job records returned.

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

Maximum pages to request. SEEK normally returns up to 22 jobs per page.

## `datePosted` (type: `string`):

Optional client-side age filter.

## `workTypes` (type: `array`):

Optional client-side employment type filters, such as Full time or Contract/temp.

## `workplaceTypes` (type: `array`):

Optional client-side workplace filters: Remote, Hybrid, or On-site.

## `salaryMin` (type: `number`):

Optional minimum numeric salary filter when SEEK exposes salary data.

## `includeDetails` (type: `boolean`):

Fetch each job page and add description, requirements, and structured metadata. This uses more requests.

## `useResidentialFallback` (type: `boolean`):

Allow residential proxy retries only after a direct request is blocked or rate-limited. Proxy usage can materially increase cost.

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

Apify proxy configuration used only for blocked direct requests. Residential is recommended for fallback.

## `maxProxyRetries` (type: `integer`):

Maximum fresh residential sessions across the run after direct requests are blocked.

## Actor input object example

```json
{
  "site": "AU",
  "keywords": "software engineer",
  "location": "Sydney",
  "maxItems": 50,
  "maxPages": 5,
  "datePosted": "any",
  "includeDetails": false,
  "useResidentialFallback": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "maxProxyRetries": 2
}
```

# Actor output Schema

## `results` (type: `string`):

Results in the default dataset.

# 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 = {
    "keywords": "software engineer",
    "location": "Sydney"
};

// Run the Actor and wait for it to finish
const run = await client.actor("dami_studio/seek-jobs-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 = {
    "keywords": "software engineer",
    "location": "Sydney",
}

# Run the Actor and wait for it to finish
run = client.actor("dami_studio/seek-jobs-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 '{
  "keywords": "software engineer",
  "location": "Sydney"
}' |
apify call dami_studio/seek-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SEEK Jobs Scraper",
        "description": "Scrape public SEEK Australia and New Zealand jobs by keyword or direct URL. Includes filters, pagination, deduplication, salary and workplace data, optional descriptions, and residential fallback only when direct requests are blocked.",
        "version": "0.1",
        "x-build-id": "TPIOGFj7iaXsv4Z4R"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/dami_studio~seek-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-dami_studio-seek-jobs-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/dami_studio~seek-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-dami_studio-seek-jobs-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/dami_studio~seek-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-dami_studio-seek-jobs-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": {
                    "site": {
                        "title": "SEEK site",
                        "enum": [
                            "AU",
                            "NZ"
                        ],
                        "type": "string",
                        "description": "Search SEEK Australia or New Zealand.",
                        "default": "AU"
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "string",
                        "description": "Job title or search terms, for example software engineer or registered nurse."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "City, region, or country. Leave blank for all locations."
                    },
                    "jobUrls": {
                        "title": "Direct job URLs",
                        "type": "array",
                        "description": "Public SEEK job URLs to fetch directly. Direct URLs are deduplicated with search results.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "jobIds": {
                        "title": "Direct job IDs",
                        "type": "array",
                        "description": "SEEK numeric job IDs to fetch directly.",
                        "items": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum jobs",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum unique job records returned.",
                        "default": 50
                    },
                    "maxPages": {
                        "title": "Maximum search pages",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum pages to request. SEEK normally returns up to 22 jobs per page.",
                        "default": 5
                    },
                    "datePosted": {
                        "title": "Date posted",
                        "enum": [
                            "any",
                            "today",
                            "3days",
                            "7days",
                            "14days",
                            "30days"
                        ],
                        "type": "string",
                        "description": "Optional client-side age filter.",
                        "default": "any"
                    },
                    "workTypes": {
                        "title": "Employment types",
                        "type": "array",
                        "description": "Optional client-side employment type filters, such as Full time or Contract/temp.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "workplaceTypes": {
                        "title": "Workplace types",
                        "type": "array",
                        "description": "Optional client-side workplace filters: Remote, Hybrid, or On-site.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "salaryMin": {
                        "title": "Minimum salary",
                        "minimum": 0,
                        "type": "number",
                        "description": "Optional minimum numeric salary filter when SEEK exposes salary data."
                    },
                    "includeDetails": {
                        "title": "Fetch descriptions",
                        "type": "boolean",
                        "description": "Fetch each job page and add description, requirements, and structured metadata. This uses more requests.",
                        "default": false
                    },
                    "useResidentialFallback": {
                        "title": "Residential fallback",
                        "type": "boolean",
                        "description": "Allow residential proxy retries only after a direct request is blocked or rate-limited. Proxy usage can materially increase cost.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Residential proxy",
                        "type": "object",
                        "description": "Apify proxy configuration used only for blocked direct requests. Residential is recommended for fallback.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "maxProxyRetries": {
                        "title": "Proxy retries",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Maximum fresh residential sessions across the run after direct requests are blocked.",
                        "default": 2
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
