# Seek Jobs Search Scraper (`soft_alexist/seek-jobs-search-scraper`) Actor

Scrape Australian job search results from Seek.com instantly. Extract 200+ job listings per page with titles, salaries, work types, employer info, and 20+ structured fields — perfect for job aggregators, market research, and recruitment analytics.

- **URL**: https://apify.com/soft\_alexist/seek-jobs-search-scraper.md
- **Developed by:** [Soft Alexist](https://apify.com/soft_alexist) (community)
- **Categories:** Automation, Developer tools, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## 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.com Jobs Search Scraper: Bulk Extract Australian Job Listings

---

### What Is Seek.com?

Seek.com is Australia's largest job board, hosting hundreds of thousands of active listings across industries. It connects job seekers with employers and provides detailed search filters by location, role, and experience level. Manually scrolling through search results and extracting job data is inefficient — the **Seek Jobs Search Scraper** automates collection from search result pages, delivering bulk job records in structured format.

---

### Overview

The **Seek Jobs Search Scraper** targets search result pages (not detail pages) on Seek.com, extracting summary-level job data for each listing displayed. It is optimized for:

- **Job aggregator platforms** — Feed listings into multi-source job boards
- **Recruitment agencies** — Monitor job market trends and competitor postings
- **Data analysts** — Research Australian employment trends by location and industry
- **HR teams** — Build talent pipelines and competitive intelligence

Key features include bulk extraction up to 200 items per page, graceful error handling, and comprehensive structured output covering employer, salary, location, and work arrangement data.

---

### Input Format

The scraper accepts a JSON configuration object targeting Seek search results pages:

```json
{
  "urls": [
    "https://au.seek.com/software-engineer-jobs/in-All-Sydney-NSW?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

#### Input Parameters

| Parameter | Type | Description |
|---|---|---|
| `urls` | array | URLs of Seek search results pages. Mix keywords, locations, and page numbers (e.g., software-engineer-jobs, marketing-jobs). One search URL typically displays 20–30 listings; multiple pages can yield larger datasets. |
| `max_items_per_url` | integer | Maximum number of listings to extract per page (default: `20`, max: `200`). Use `200` for comprehensive collection from each search page. |
| `ignore_url_failures` | boolean | If `true`, the scraper continues if some URLs fail. If `false`, a single failure stops the entire run. Recommended: `true` for bulk operations. |

#### URL Structure Tips

- **Base pattern:** `https://au.seek.com/[job-keyword]-jobs/in-All-[Location]-[State]?page=[N]`
- **Example searches:**
  - `https://au.seek.com/software-engineer-jobs/in-All-Sydney-NSW?page=1`
  - `https://au.seek.com/marketing-jobs/in-All-Melbourne-VIC`
  - `https://au.seek.com/hospitality-jobs/in-All-Brisbane-QLD?page=3`

***

### Output Format

**Sample output**

```json
{
  "advertiser": {
    "__typename": "JobSearchV6Advertiser",
    "id": "32359972",
    "description": "Opus Recruitment Solutions"
  },
  "branding": {
    "__typename": "JobSearchV6Branding",
    "serp_logo_url": "https://bx-branding-gateway.cloud.seek.com.au/c63b46da-fbc0-37f9-0ce5-737c58b68e50.1/jdpLogo"
  },
  "bullet_points": [
    "Build cutting edge Robotics Software",
    "Make a difference",
    "See the impact in a live environment"
  ],
  "classifications": [
    {
      "__typename": "JobSearchV6Classification",
      "classification": {
        "__typename": "JobSearchV6ClassificationDetail",
        "id": "6281",
        "description": "Information & Communication Technology"
      },
      "subclassification": {
        "__typename": "JobSearchV6ClassificationDetail",
        "id": "6290",
        "description": "Engineering - Software"
      }
    }
  ],
  "company_name": "Opus Recruitment Solutions",
  "currency_label": null,
  "display_type": "promoted",
  "employer": {
    "__typename": "JobSearchV6Employer",
    "company_url": null,
    "relative_company_url": null,
    "zone": "anz-1"
  },
  "external_references": null,
  "id": "92969424",
  "is_featured": true,
  "locations": [
    {
      "__typename": "JobSearchV6DataLocation",
      "country_code": "AU",
      "label": "Sydney NSW",
      "seo_hierarchy": [
        {
          "__typename": "JobSearchV6SeoHierarchy",
          "contextual_name": "All Sydney NSW"
        },
        {
          "__typename": "JobSearchV6SeoHierarchy",
          "contextual_name": "New South Wales NSW"
        }
      ]
    }
  ],
  "role_id": "computer-vision-engineer",
  "salary_label": "$110,000 – $150,000 per year + Super",
  "sol_metadata": {
    "search_request_token": "0ab9b261-3010-4a7e-a47b-700d8385f460",
    "token": "0~0ab9b261-3010-4a7e-a47b-700d8385f460",
    "job_id": "92969424",
    "section": "MAIN",
    "section_rank": 33,
    "job_ad_type": "SPONSORED",
    "tags": {
      "mordor__flights": "mordor_1011",
      "mordor__s": "0"
    }
  },
  "tags": [],
  "teaser": "Build cutting edge Robotics Software",
  "title": "Software Engineer - Computer Vision / Perception",
  "tracking": "ewogICJ0b2tlbiI6ICIyY2YwNjJhMS03MjZjLTQwNzMtYWJiMC0xMDkyMTc0ZmNjYWZfMSIKfQ==",
  "work_arrangements": {
    "__typename": "JobSearchV6WorkArrangements",
    "display_text": "Hybrid"
  },
  "work_types": [
    "Full time"
  ],
  "listing_date": "2026-06-26T06:12:29.000Z",
  "listing_date_display": "11d ago",
  "company_profile_structured_data_id": 23430,
  "from_url": "https://au.seek.com/software-engineer-jobs/in-All-Sydney-NSW?page=2"
}
```

Each scraped listing returns a record with 21 fields covering job metadata, employer info, and employment terms:

#### Job Identification & Core Details

| Field | Meaning |
|---|---|
| `ID` | Unique identifier for the job listing in Seek's system |
| `Role ID` | Alternative internal role identifier |
| `Title` | Job title as displayed in search results (e.g., "Senior Software Engineer") |
| `Teaser` | Brief job summary or headline snippet |
| `Bullet Points` | Key responsibilities or highlights as bullet-point list |

#### Employer & Company Information

| Field | Meaning |
|---|---|
| `Company Name` | Official employer name |
| `Employer` | Employer company profile data and metadata |
| `Advertiser` | Account or agency posting the listing |
| `Company Profile Structured Data ID` | Schema.org identifier for the employer organization |
| `Branding` | Company branding assets (logo, colors, styling data) |

#### Job Details & Conditions

| Field | Meaning |
|---|---|
| `Locations` | Geographic locations where the role is based (single or multiple) |
| `Work Types` | Employment type (Full-time, Part-time, Contract, Casual, Permanent) |
| `Work Arrangements` | Work setup (On-site, Remote, Hybrid, Flexible) |
| `Classifications` | Industry categories or job classifications (e.g., "IT & Software," "Engineering") |

#### Compensation & Display

| Field | Meaning |
|---|---|
| `Salary Label` | Salary range or description as displayed (e.g., "$80K–$120K per year") |
| `Currency Label` | Currency symbol (typically "AUD" for Australian postings) |
| `Display Type` | How the listing is visually formatted (featured, standard, sponsored) |
| `Is Featured` | Boolean flag indicating featured or promoted status |

#### Metadata & Tracking

| Field | Meaning |
|---|---|
| `Listing Date` | Timestamp when the job was posted |
| `Listing Date Display` | Human-readable posting date (e.g., "Posted 2 days ago") |
| `Tags` | Keywords, skills, or internal tags associated with the listing |
| `External References` | Links or identifiers pointing to external sources |
| `Tracking` | Internal tracking codes for campaign or analytics |
| `SOL Metadata` | Source-of-lead or campaign metadata |

***

### How to Use

1. **Identify search results URLs** — Go to Seek.com, search for your target role/location, and copy the page URL. You can build multiple URLs with different filters.
2. **Configure input** — Paste URLs into the `urls` array. Set `max_items_per_url` to `200` for full-page extraction.
3. **Set error handling** — Use `ignore_url_failures: true` for bulk runs to prevent interruptions if a page temporarily fails.
4. **Start the run** — Execute the scraper and monitor progress in the run log.
5. **Export results** — Download as JSON, CSV, or Excel for analysis, import, or database loading.

**Troubleshooting:**

- Ensure URLs point to *search results* pages, not individual job detail pages.
- Check for location and keyword accuracy in the URL (typos may return no results).
- If a URL yields fewer items than `max_items_per_url`, the page likely has fewer listings.
- Use page parameters (`?page=2`, `?page=3`) to collect from multiple result pages.

***

### Use Cases & Business Value

- **Job board aggregation:** Consolidate Seek listings alongside Indeed, LinkedIn, and niche boards
- **Market intelligence:** Track hiring volume, salary trends, and skills demand by region and industry
- **Recruitment analytics:** Benchmark competitor compensation and job descriptions
- **API-free data collection:** Extract Seek data without requiring API access or credentials

The scraper delivers structured, ready-to-use job records that eliminate manual copy-paste work and enable real-time market insights across Australia's largest job platform.

***

### Conclusion

The **Seek Jobs Search Scraper** is a practical tool for anyone needing bulk Australian job data. Extract hundreds of listings per run, analyze employment trends, or feed data into custom platforms — all without manual data entry. Start scraping today and unlock actionable job market insights.

# Actor input Schema

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

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

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

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

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

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://au.seek.com/software-engineer-jobs/in-All-Sydney-NSW?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "urls": [
        "https://au.seek.com/software-engineer-jobs/in-All-Sydney-NSW?page=2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("soft_alexist/seek-jobs-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://au.seek.com/software-engineer-jobs/in-All-Sydney-NSW?page=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("soft_alexist/seek-jobs-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://au.seek.com/software-engineer-jobs/in-All-Sydney-NSW?page=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call soft_alexist/seek-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Seek Jobs Search Scraper",
        "description": "Scrape Australian job search results from Seek.com instantly. Extract 200+ job listings per page with titles, salaries, work types, employer info, and 20+ structured fields — perfect for job aggregators, market research, and recruitment analytics.",
        "version": "0.0",
        "x-build-id": "nrYpZYUaBPlOGiv7l"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/soft_alexist~seek-jobs-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-soft_alexist-seek-jobs-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/soft_alexist~seek-jobs-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-soft_alexist-seek-jobs-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/soft_alexist~seek-jobs-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-soft_alexist-seek-jobs-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the Jobs list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
