{
  "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": "mSvl22Ms1LbtiprCs"
  },
  "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. Reviews mode: maximum reviews per company. Set 0 for the default of 30; higher values fetch deeper history.",
            "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. Adds SEEK's ~200-word AI-generated summary of the company's reviews (pros, cons, themes) when available. 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 a small amount of extra time 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
          },
          "resumeFromRunId": {
            "title": "Resume from a previous run",
            "type": "string",
            "description": "Paste a previous run ID or dataset ID to continue a large crawl without returning or charging for records already collected there. Use this after an interrupted run. For recurring monitoring of the same query, use Incremental mode below instead."
          },
          "incrementalMode": {
            "title": "Incremental changes for scheduled runs",
            "type": "boolean",
            "description": "Turn this on for daily or recurring monitoring. The first run returns everything matched as NEW. Later runs normally return only NEW, UPDATED, and REAPPEARED records. Turn on \"Emit unchanged\" or \"Emit expired\" only when you also want those records returned (and billed). State is kept separately per Mode (companies vs reviews are never mixed) and per URLs/keywords/industry/review-sort/includeJobs/includeAISummary setup; use State key when you want to name or deliberately share a monitoring campaign. To continue one specific interrupted run instead, use Resume from a previous run above.",
            "default": false
          },
          "stateKey": {
            "title": "State key (optional, incremental mode only)",
            "type": "string",
            "description": "Optional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from mode + the query/URL/review settings — different queries then never mix state with each other."
          },
          "emitUnchanged": {
            "title": "Emit unchanged records (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return records that have not changed since the last run, marked UNCHANGED. This returns — and bills — extra rows you already have, so leave it off unless you specifically want the full snapshot every run.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired companies (incremental mode + companies mode only)",
            "type": "boolean",
            "description": "Off by default. Companies mode only — reviews mode is a bounded top-N sample per company, not an exhaustive scan, so a missing review is not reliable evidence it was deleted. Turn on to also return companies that were present in a previous run but no longer resolved by your URLs/keywords/industry, marked EXPIRED. Only produced once a run has fully scanned the tracked targets — not when Max items or Max run time capped it, or when Resume was used. This returns — and bills — extra synthetic rows, so leave it off unless you need expiry tracking.",
            "default": false
          },
          "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": []
            }
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}