{
  "openapi": "3.0.1",
  "info": {
    "title": "SEEK Jobs Scraper – Hidden Salaries, JobStreet & JobsDB",
    "description": "Scrape SEEK (Australia, NZ), JobStreet (MY, SG, PH, ID) and JobsDB (HK, TH) jobs in one run. Reveals hidden salary ranges for free, plus applicant counts, screening questions and company profiles. Only-new-jobs monitoring with Slack alerts.",
    "version": "1.0",
    "x-build-id": "KfDORz0XO0b2t3HBZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kirozhang~seek-jobstreet-jobsdb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kirozhang-seek-jobstreet-jobsdb-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/kirozhang~seek-jobstreet-jobsdb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-kirozhang-seek-jobstreet-jobsdb-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/kirozhang~seek-jobstreet-jobsdb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-kirozhang-seek-jobstreet-jobsdb-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": {
          "searchTerms": {
            "title": "Search keywords",
            "type": "array",
            "description": "Job titles, skills or companies, e.g. \"data analyst\", \"nurse\", \"react developer\". Leave empty to scrape all jobs matching the filters.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries / job boards",
            "type": "array",
            "description": "SEEK (Australia, New Zealand), JobStreet (Malaysia, Singapore, Philippines, Indonesia) and JobsDB (Hong Kong, Thailand). Each keyword runs on every selected board.",
            "items": {
              "type": "string",
              "enum": [
                "AU",
                "NZ",
                "MY",
                "SG",
                "PH",
                "ID",
                "HK",
                "TH"
              ],
              "enumTitles": [
                "Australia (SEEK)",
                "New Zealand (SEEK)",
                "Malaysia (JobStreet)",
                "Singapore (JobStreet)",
                "Philippines (JobStreet)",
                "Indonesia (JobStreet)",
                "Hong Kong (JobsDB)",
                "Thailand (JobsDB)"
              ]
            },
            "default": [
              "AU"
            ]
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Optional city, state or suburb as you would type it on the site, e.g. \"Sydney NSW\", \"Auckland\", \"Kuala Lumpur\", \"Makati City\"."
          },
          "workTypes": {
            "title": "Work type",
            "type": "array",
            "description": "Optional work type filter.",
            "items": {
              "type": "string",
              "enum": [
                "fulltime",
                "parttime",
                "contract",
                "casual"
              ],
              "enumTitles": [
                "Full time",
                "Part time",
                "Contract / Temp",
                "Casual / Vacation"
              ]
            },
            "default": []
          },
          "classifications": {
            "title": "Job classification",
            "type": "array",
            "description": "Optional industry / classification filter.",
            "items": {
              "type": "string",
              "enum": [
                "1200",
                "1203",
                "1204",
                "1206",
                "1209",
                "1210",
                "1211",
                "1212",
                "1214",
                "1216",
                "1220",
                "1223",
                "1225",
                "6008",
                "6043",
                "6058",
                "6076",
                "6092",
                "6123",
                "6163",
                "6205",
                "6246",
                "6251",
                "6261",
                "6263",
                "6281",
                "6304",
                "6317",
                "6362",
                "7019"
              ],
              "enumTitles": [
                "Accounting",
                "Banking & Financial Services",
                "Call Centre & Customer Service",
                "Construction",
                "Engineering",
                "Government & Defence",
                "Healthcare & Medical",
                "Hospitality & Tourism",
                "Insurance & Superannuation",
                "Legal",
                "Real Estate & Property",
                "Science & Technology",
                "Trades & Services",
                "Marketing & Communications",
                "Retail & Consumer Products",
                "Mining, Resources & Energy",
                "Consulting & Strategy",
                "Manufacturing, Transport & Logistics",
                "Education & Training",
                "Community Services & Development",
                "Farming, Animals & Conservation",
                "Sport & Recreation",
                "Administration & Office Support",
                "Self Employment",
                "Design & Architecture",
                "Information & Communication Technology",
                "Advertising, Arts & Media",
                "Human Resources & Recruitment",
                "Sales",
                "CEO & General Management"
              ]
            },
            "default": []
          },
          "postedWithinDays": {
            "title": "Posted within",
            "enum": [
              "0",
              "1",
              "3",
              "7",
              "14",
              "31"
            ],
            "type": "string",
            "description": "Only jobs listed within this many days.",
            "default": "0"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "Order of results.",
            "default": "relevance"
          },
          "maxJobsPerSearch": {
            "title": "Max jobs per keyword and country",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "The job boards stop paging after ~550 results; above that the scraper automatically splits the search by classification and work type to collect up to 20,000 jobs.",
            "default": 100
          },
          "includeDescription": {
            "title": "Include full job details",
            "type": "boolean",
            "description": "Adds the full job description (text + HTML), number of applicants, screening questions the employer asks, company profile (industry, size, website, rating, reviews, perks), advertiser registration date and expiry date. Charged per job with details returned (see Pricing).",
            "default": false
          },
          "estimateHiddenSalary": {
            "title": "Reveal hidden salaries",
            "type": "boolean",
            "description": "On by default, no extra charge. Many ads hide the salary (about two in three in Australia and four in five in Hong Kong in our tests), but the job board still knows the advertiser's range and uses it in its salary filter. The Actor re-runs your search across salary bands and returns the hidden range in <code>salaryEstimateMin</code> / <code>salaryEstimateMax</code> (annual for AU/NZ, monthly in local currency elsewhere). Adds a few seconds per search.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Usually not needed. Enable Apify Proxy if you run very large jobs and get rate limited.",
            "default": {
              "useApifyProxy": false
            }
          },
          "onlyNew": {
            "title": "Only new jobs (monitoring mode)",
            "type": "boolean",
            "description": "Off by default. When on, the first run saves a baseline and every later run with the same Tracking name returns – and charges – only jobs that were not returned before. Results are sorted by date so new postings are found first. OUTPUT also lists postings that disappeared since the last run and new/closed jobs per company.",
            "default": false
          },
          "trackingId": {
            "title": "Tracking name",
            "type": "string",
            "description": "Used with Only new jobs: a stable name for this search (e.g. 'data-jobs-sydney'). Runs with the same name share history."
          },
          "slackWebhookUrl": {
            "title": "Slack webhook URL",
            "type": "string",
            "description": "Optional. A Slack <a href=\"https://api.slack.com/messaging/webhooks\" target=\"_blank\">Incoming Webhook</a> URL (https://hooks.slack.com/services/…). After a run you get one summary message in that channel. Stored encrypted."
          },
          "webhookUrl": {
            "title": "Webhook URL (JSON)",
            "type": "string",
            "description": "Optional. Any https endpoint (Make, Zapier, n8n, a Microsoft Teams workflow or your own server). Receives one JSON POST per run with counts, items and the report link. Stored encrypted."
          },
          "notifyOn": {
            "title": "Send a notification when",
            "enum": [
              "alerts",
              "always"
            ],
            "type": "string",
            "description": "When the Slack / webhook message is sent.",
            "default": "alerts"
          },
          "publicReport": {
            "title": "Shareable report link",
            "type": "boolean",
            "description": "Off by default; needs Only new jobs. When on, an HTML report with new and closed jobs, hiring by company and 7/30-day trends is kept at one fixed link per Tracking name (OUTPUT.reportUrl) that updates after every run. Anyone with the link can open it.",
            "default": false
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}