# Seek AU NZ $1💰 Companies | Reviews Scraper (`abotapi/seek-companies-reviews-scraper`) Actor

From $1/1K. Pull company profiles and employee reviews from SEEK Australia and New Zealand. Supports two modes: aggregated company data with top reviews, or one row per review for sentiment analysis. The region is auto-detected from each URL, with a clean, structured output ready for analytics.

- **URL**: https://apify.com/abotapi/seek-companies-reviews-scraper.md
- **Developed by:** [AbotAPI](https://apify.com/abotapi) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## SEEK Companies & Reviews Scraper (Australia + New Zealand)

Pull company profiles and employee reviews from au.seek.com and nz.seek.com, the two largest jobseeker platforms in their respective markets. Two output modes: company aggregates with embedded top reviews, or one row per review for sentiment analysis pipelines. Region auto-detected per URL.

### Why This Scraper?

- **Two modes from one input**: companies (one row per company, top reviews embedded) or reviews (one row per individual review).
- **Rich field set per company**: overall rating, 5-star distribution, six per-category sub-ratings (work-life balance, executive management, perks, diversity, career, environment), recommended %, salary perception score, total open jobs, branding (logo + cover), AI-generated review summary, perks, awards.
- **Optional embedded open jobs**: enable `includeJobs` to pull the company's currently-listed positions (id, title, location, work type, classification, listing date) and embed them on the company record. One actor, the full hiring picture.
- **Full review record**: title, pros, cons, long-form experience details, reviewer job title, employment status, salary perception, work location, per-category ratings, upvote count, reviewed-on date.
- **Pagination beyond 30 reviews**: the SSR snapshot ships 30 top reviews per company; for full-history pulls the actor walks paginated GraphQL pages automatically.
- **Region auto-detect per URL**: mix au.seek.com and nz.seek.com URLs in the same input; the actor routes each to the right host.
- **Cheap and fast**: companies-mode run completes in seconds per company, lightweight enough for the Apify Free plan.

### Data You Get

> Sample shape, values are illustrative placeholders, not from a live profile.

#### companies mode (one row per company)

| Field | Example |
|---|---|
| `id` | `"000000"` |
| `name` | `"Sample Company"` |
| `url` | `"https://au.seek.com/companies/sample-company-000000"` |
| `region` | `"AU"` |
| `slug` | `"sample-company-000000"` |
| `isClaimed` | `true` |
| `logoUrl` | `"https://image-service-cdn.seek.com.au/000000.../000000..."` |
| `coverImageUrl` | `"https://image-service-cdn.seek.com.au/000000.../000000..."` |
| `brandId` | `"00000000-0000-0000-0000-000000000000"` |
| `industry` | `"Sample industry"` |
| `totalJobs` | `0` |
| `ratingOverall` | `0.0` |
| `reviewCount` | `0` |
| `recommendedPercent` | `0` |
| `salaryRating` | `0` |
| `ratingBreakdown` | `{ "companyRating1StarCount": 0, ..., "companyRating5StarCount": 0, "companyRating1StarPercentage": 0.0, ... }` |
| `categoryRatings` | `[ { "rating": 0, "count": 0, "description": "Work/Life balance" }, ... ]` |
| `aiSummary` | `{ "headline": "Sample headline", "summary": "Generated summary text appears here.", "pros": "...", "cons": "...", "themes": [...] }` |
| `perks` | `[ "Sample perk one", "Sample perk two" ]` |
| `awards` | `[ { "name": "Sample Award", "year": "2024" } ]` |
| `customStatement` | `{ "title": "Sample title", "description": "..." }` |
| `topReviews` | `[ <up to maxReviewsPerCompany review objects> ]` |
| `topReviewCount` | `5` |
| `jobs` | `[ <up to maxJobsPerCompany job objects, only when includeJobs=true> ]` |
| `jobsEmbeddedCount` | `10` |
| `scrapedAt` | `"2026-01-01T00:00:00.000Z"` |

When `includeJobs=true`, each entry in `jobs[]` carries:

| Field | Example |
|---|---|
| `id` | `"00000001"` |
| `url` | `"https://www.seek.com.au/job/00000001"` |
| `title` | `"Sample Job Title"` |
| `teaser` | `"Short ad teaser appears here"` |
| `salaryLabel` | `"$80k - $100k"` (often empty when the advertiser hides salary) |
| `workTypes` | `[ "Full time" ]` |
| `location` | `"Sample Suburb, City State"` |
| `locationCountryCode` | `"AU"` |
| `classifications` | `[ { "label": "Sample Industry", "subLabel": "Sample Sub-industry" } ]` |
| `bulletPoints` | `[ "Sample bullet 1", "Sample bullet 2" ]` |
| `listingDate` | `"2026-01-01T00:00:00Z"` |
| `listingDateDisplay` | `"1d ago"` |
| `advertiserName` | `"Sample Advertiser"` |
| `employerCompanyId` | `"000000"` (matches the company's `id` field) |
| `logoUrl` | `"https://bx-branding-gateway.cloud.seek.com.au/000000/jdpLogo"` |

#### reviews mode (one row per review)

| Field | Example |
|---|---|
| `reviewId` | `"000000000000000"` |
| `companyId` | `"000000"` |
| `companyName` | `"Sample Company"` |
| `companySlug` | `"sample-company-000000"` |
| `region` | `"AU"` |
| `url` | `"https://au.seek.com/companies/sample-company-000000"` |
| `title` | `"Sample review title"` |
| `pros` | `"Sample pros text"` |
| `cons` | `"Sample cons text"` |
| `overallExperienceDetails` | `"Long-form experience text appears here when the reviewer wrote one."` |
| `jobTitle` | `"Sample Job Title"` |
| `workLocation` | `"Sample Suburb XX 0000"` |
| `employmentStatus` | `"1 to 2 years in the role, current employee"` |
| `salarySummary` | `"Average"` |
| `recommended` | `true` |
| `recommendedLabel` | `"Recommended"` |
| `overallRating` | `4` |
| `ratings` | `[ { "category": "Work/Life balance", "rating": 4 }, ... ]` |
| `upvotes` | `0` |
| `createdAt` | `"1 January 2026"` |
| `hasBeenFlagged` | `false` |
| `scrapedAt` | `"2026-01-01T00:00:00.000Z"` |

### How to Use

#### Search for companies by keyword (companies mode)

```json
{
  "mode": "companies",
  "region": "AU",
  "keywords": "atlassian",
  "maxReviewsPerCompany": 5,
  "maxItems": 5,
  "proxyConfiguration": { "useApifyProxy": true }
}
````

#### Pull reviews for specific companies (reviews mode)

```json
{
  "mode": "reviews",
  "urls": [
    { "url": "https://au.seek.com/companies/coles-group-433124" },
    { "url": "https://au.seek.com/companies/westpac-bank-432310" }
  ],
  "maxReviewsPerCompany": 100,
  "reviewSort": "recent",
  "maxItems": 200
}
```

#### Mix AU and NZ URLs (region auto-detected)

```json
{
  "mode": "companies",
  "urls": [
    { "url": "https://au.seek.com/companies/atlassian-437216" },
    { "url": "https://nz.seek.com/companies/spark-new-zealand-171714208521358" }
  ],
  "maxReviewsPerCompany": 10
}
```

#### Companies mode with embedded AI summary disabled

```json
{
  "mode": "companies",
  "region": "NZ",
  "keywords": "fonterra",
  "maxReviewsPerCompany": 3,
  "includeAISummary": false,
  "maxItems": 1
}
```

#### Companies mode with embedded open jobs

```json
{
  "mode": "companies",
  "region": "AU",
  "urls": [{ "url": "https://au.seek.com/companies/coles-group-433124" }],
  "maxReviewsPerCompany": 3,
  "includeJobs": true,
  "maxJobsPerCompany": 50,
  "maxItems": 1
}
```

### Input Parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `mode` | string enum | `"companies"` | `"companies"` (one row per company, top reviews embedded) or `"reviews"` (one row per individual review). |
| `region` | string enum | `"AU"` | `"AU"` (au.seek.com) or `"NZ"` (nz.seek.com). Auto-detected per URL when `urls` is set. |
| `keywords` | string | `""` | Company-name keyword for search mode. Ignored if `urls` is set. |
| `urls` | array | `[]` | List of SEEK company URLs (`/companies/<slug>` or `/companies/<slug>/reviews`). When set, overrides `keywords`. |
| `maxReviewsPerCompany` | integer | `5` | Companies mode: top-N reviews to embed. Reviews mode: max reviews to fan out per company. Set 0 to use the SSR default of 30. Values above 30 trigger paginated GraphQL fetches. |
| `reviewSort` | string enum | `"helpful"` | `"helpful"` (most upvoted first, ideal for top-N) or `"recent"` (newest first, ideal for ongoing monitoring). |
| `includeAISummary` | boolean | `true` | Companies mode only. SEEK ships a generated review summary; disable to drop the field. |
| `includeJobs` | boolean | `false` | Companies mode only. When true, embeds a `jobs[]` array of the company's currently-listed positions on each company record. |
| `maxJobsPerCompany` | integer | `20` | Cap on `jobs[]` length when `includeJobs` is true. Set 0 for the full open-jobs count. |
| `maxItems` | integer | `20` | Total cap across all companies. Set 0 for unlimited. |
| `maxTimeSec` | integer | `0` | Wall-clock cap. Set 0 for no time limit. |
| `proxyConfiguration` | object | Apify Datacenter | Defaults to free-tier-friendly Datacenter. For production scale, set `apifyProxyGroups: ["RESIDENTIAL"]`. |

### Output Example (companies mode, single record)

> Sample shape, values are illustrative placeholders.

```json
{
  "id": "000000",
  "slug": "sample-company-000000",
  "url": "https://au.seek.com/companies/sample-company-000000",
  "region": "AU",
  "name": "Sample Company",
  "isClaimed": true,
  "logoUrl": "https://image-service-cdn.seek.com.au/000000/000000",
  "coverImageUrl": "https://image-service-cdn.seek.com.au/000000/000000",
  "brandId": "00000000-0000-0000-0000-000000000000",
  "totalJobs": 0,
  "ratingOverall": 0.0,
  "reviewCount": 0,
  "salaryRating": 0,
  "recommendedPercent": 0,
  "ratingBreakdown": {
    "companyRating1StarCount": 0,
    "companyRating1StarPercentage": 0.0,
    "companyRating2StarCount": 0,
    "companyRating2StarPercentage": 0.0,
    "companyRating3StarCount": 0,
    "companyRating3StarPercentage": 0.0,
    "companyRating4StarCount": 0,
    "companyRating4StarPercentage": 0.0,
    "companyRating5StarCount": 0,
    "companyRating5StarPercentage": 0.0
  },
  "categoryRatings": [
    { "rating": 0.0, "count": 0, "description": "Work/Life balance" },
    { "rating": 0.0, "count": 0, "description": "Career development" },
    { "rating": 0.0, "count": 0, "description": "Benefits & perks" },
    { "rating": 0.0, "count": 0, "description": "Management" },
    { "rating": 0.0, "count": 0, "description": "Working environment" },
    { "rating": 0.0, "count": 0, "description": "Diversity & equal opportunity" }
  ],
  "topReviews": [
    {
      "reviewId": "000000000000000",
      "companyId": "000000",
      "title": "Sample review title",
      "pros": "Sample pros text",
      "cons": "Sample cons text",
      "jobTitle": "Sample Job Title",
      "workLocation": "Sample Suburb XX 0000",
      "employmentStatus": "1 to 2 years in the role, current employee",
      "salarySummary": "Average",
      "recommended": true,
      "recommendedLabel": "Recommended",
      "overallRating": 4,
      "ratings": [
        { "category": "Work/Life balance", "rating": 4 },
        { "category": "Career development", "rating": 4 }
      ],
      "upvotes": 0,
      "createdAt": "1 January 2026",
      "hasBeenFlagged": false
    }
  ],
  "topReviewCount": 1,
  "scrapedAt": "2026-01-01T00:00:00.000Z"
}
```

### Plan Requirement

Works on the Apify Free plan with the default Datacenter proxy. For heavy production workloads, switch to the Residential proxy (Starter plan or above) by setting `apifyProxyGroups: ["RESIDENTIAL"]` and `apifyProxyCountry: "AU"` (or `"NZ"`). Runs comfortably in 256 MB memory.

# Actor input Schema

## `mode` (type: `string`):

companies → one row per company with embedded top reviews. reviews → one row per individual review, fanned out across the resolved companies.

## `region` (type: `string`):

Country market. AU = au.seek.com (anz-1), NZ = nz.seek.com (anz-2). When you paste URLs, the region is auto-detected per URL and overrides this field.

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

Paste SEEK company URLs (e.g. https://au.seek.com/companies/coles-group-433124). Region auto-detected per URL; mix AU and NZ freely.

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

Optional. Search SEEK by company name (e.g. 'atlassian', 'westpac', 'trust'). Combined with 'Industry' below, the actor browses the industry then filters to companies whose name contains the keyword.

## `industry` (type: `string`):

Optional. Select a SEEK industry to browse up to 30 companies in it. Combined with 'Keywords' above, narrows the industry to companies whose name matches the keyword. Leave blank to use keyword-only or URL-only sourcing.

## `maxReviewsPerCompany` (type: `integer`):

Companies mode: how many top reviews to embed per company record (1-30 from the SSR snapshot, more triggers extra requests). Reviews mode: how many reviews to fan out per company. Set 0 to use the SSR default of 30.

## `reviewSort` (type: `string`):

How SEEK orders the reviews returned. 'helpful' = most upvoted first (best for companies-mode top-N). 'recent' = newest first (best for ongoing sentiment monitoring).

## `includeAISummary` (type: `boolean`):

Companies mode only. SEEK ships a ~200-word AI-generated summary of the company's reviews (pros, cons, themes). No extra request, already embedded in the SSR. Disable to drop the field.

## `includeJobs` (type: `boolean`):

Companies mode only. When true, embeds a `jobs` array on each company record with the company's currently-listed jobs (id, title, location, salary, workType, listingDate, url). Adds 1-2 extra API calls per company. Capped by `maxJobsPerCompany`.

## `maxJobsPerCompany` (type: `integer`):

Hard cap on jobs embedded per company when `includeJobs` is true. The actor pulls jobs page-by-page from SEEK Jobs and stops as soon as this many matching jobs have been collected (or the company runs out). Set 0 to pull every open job for the company (can be hundreds for large brands like Coles, BHP). This is THE cap on jobs — no other field overrides it.

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

Total cap across all URLs / search results. Set to 0 (default) for unlimited. In reviews mode counts individual reviews; in companies mode counts companies. The `maxJobsPerCompany` cap applies independently to each company's embedded jobs and is not affected by this field.

## `maxTimeSec` (type: `integer`):

Wall-clock cap. When exceeded, the actor flushes whatever it already fetched and exits cleanly. 0 = no time limit.

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

Defaults to Apify datacenter proxy (free-tier friendly). For production workloads, set apifyProxyGroups to \["RESIDENTIAL"] on a paid Apify plan.

## Actor input object example

```json
{
  "mode": "companies",
  "region": "AU",
  "urls": [],
  "keywords": "trust",
  "industry": "Mining, Resources & Energy",
  "maxReviewsPerCompany": 10,
  "reviewSort": "helpful",
  "includeAISummary": true,
  "includeJobs": false,
  "maxJobsPerCompany": 100,
  "maxItems": 100,
  "maxTimeSec": 300,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}
```

# Actor output Schema

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

Dataset items

# 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 = {
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": []
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/seek-companies-reviews-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 = { "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": [],
    } }

# Run the Actor and wait for it to finish
run = client.actor("abotapi/seek-companies-reviews-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 '{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}' |
apify call abotapi/seek-companies-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Seek AU NZ $1💰 Companies | Reviews Scraper",
        "description": "From $1/1K. Pull company profiles and employee reviews from SEEK Australia and New Zealand. Supports two modes: aggregated company data with top reviews, or one row per review for sentiment analysis. The region is auto-detected from each URL, with a clean, structured output ready for analytics.",
        "version": "0.1",
        "x-build-id": "qBbZftKov2SdSjFMu"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~seek-companies-reviews-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-seek-companies-reviews-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/abotapi~seek-companies-reviews-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-seek-companies-reviews-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/abotapi~seek-companies-reviews-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-seek-companies-reviews-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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "companies",
                            "reviews"
                        ],
                        "type": "string",
                        "description": "companies → one row per company with embedded top reviews. reviews → one row per individual review, fanned out across the resolved companies.",
                        "default": "companies"
                    },
                    "region": {
                        "title": "Region",
                        "enum": [
                            "AU",
                            "NZ"
                        ],
                        "type": "string",
                        "description": "Country market. AU = au.seek.com (anz-1), NZ = nz.seek.com (anz-2). When you paste URLs, the region is auto-detected per URL and overrides this field.",
                        "default": "AU"
                    },
                    "urls": {
                        "title": "Company URLs",
                        "type": "array",
                        "description": "Paste SEEK company URLs (e.g. https://au.seek.com/companies/coles-group-433124). Region auto-detected per URL; mix AU and NZ freely.",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "string",
                        "description": "Optional. Search SEEK by company name (e.g. 'atlassian', 'westpac', 'trust'). Combined with 'Industry' below, the actor browses the industry then filters to companies whose name contains the keyword."
                    },
                    "industry": {
                        "title": "Industry",
                        "enum": [
                            "",
                            "Accounting",
                            "Administration & Office Support",
                            "Advertising, Arts & Media",
                            "Banking & Financial Services",
                            "Call Centre & Customer Service",
                            "Community Services & Development",
                            "Construction",
                            "Consulting & Strategy",
                            "Design & Architecture",
                            "Education & Training",
                            "Engineering",
                            "Farming, Animals & Conservation",
                            "Government & Defence",
                            "Healthcare & Medical",
                            "Hospitality & Tourism",
                            "Human Resources & Recruitment",
                            "Insurance & Superannuation",
                            "Legal",
                            "Manufacturing, Transport & Logistics",
                            "Marketing & Communications",
                            "Mining, Resources & Energy",
                            "Real Estate & Property",
                            "Retail & Consumer Products",
                            "Sales",
                            "Science & Technology",
                            "Sport & Recreation",
                            "Trades & Services"
                        ],
                        "type": "string",
                        "description": "Optional. Select a SEEK industry to browse up to 30 companies in it. Combined with 'Keywords' above, narrows the industry to companies whose name matches the keyword. Leave blank to use keyword-only or URL-only sourcing.",
                        "default": "Mining, Resources & Energy"
                    },
                    "maxReviewsPerCompany": {
                        "title": "Max reviews per company",
                        "minimum": 0,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Companies mode: how many top reviews to embed per company record (1-30 from the SSR snapshot, more triggers extra requests). Reviews mode: how many reviews to fan out per company. Set 0 to use the SSR default of 30.",
                        "default": 5
                    },
                    "reviewSort": {
                        "title": "Review sort order",
                        "enum": [
                            "helpful",
                            "recent"
                        ],
                        "type": "string",
                        "description": "How SEEK orders the reviews returned. 'helpful' = most upvoted first (best for companies-mode top-N). 'recent' = newest first (best for ongoing sentiment monitoring).",
                        "default": "helpful"
                    },
                    "includeAISummary": {
                        "title": "Include AI review summary",
                        "type": "boolean",
                        "description": "Companies mode only. SEEK ships a ~200-word AI-generated summary of the company's reviews (pros, cons, themes). No extra request, already embedded in the SSR. Disable to drop the field.",
                        "default": true
                    },
                    "includeJobs": {
                        "title": "Include open jobs",
                        "type": "boolean",
                        "description": "Companies mode only. When true, embeds a `jobs` array on each company record with the company's currently-listed jobs (id, title, location, salary, workType, listingDate, url). Adds 1-2 extra API calls per company. Capped by `maxJobsPerCompany`.",
                        "default": false
                    },
                    "maxJobsPerCompany": {
                        "title": "Max jobs per company",
                        "minimum": 0,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on jobs embedded per company when `includeJobs` is true. The actor pulls jobs page-by-page from SEEK Jobs and stops as soon as this many matching jobs have been collected (or the company runs out). Set 0 to pull every open job for the company (can be hundreds for large brands like Coles, BHP). This is THE cap on jobs — no other field overrides it.",
                        "default": 50
                    },
                    "maxItems": {
                        "title": "Max items to return",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Total cap across all URLs / search results. Set to 0 (default) for unlimited. In reviews mode counts individual reviews; in companies mode counts companies. The `maxJobsPerCompany` cap applies independently to each company's embedded jobs and is not affected by this field.",
                        "default": 0
                    },
                    "maxTimeSec": {
                        "title": "Max run time (seconds)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Wall-clock cap. When exceeded, the actor flushes whatever it already fetched and exits cleanly. 0 = no time limit.",
                        "default": 0
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Defaults to Apify datacenter proxy (free-tier friendly). For production workloads, set apifyProxyGroups to [\"RESIDENTIAL\"] on a paid Apify plan.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
