{
  "openapi": "3.0.1",
  "info": {
    "title": "SEEK Jobs Scraper - Australia & New Zealand",
    "description": "Scrape SEEK job ads in Australia and New Zealand by keyword, filters or pasted search URL: company, location, salary text and parsed range, work type, listing date, optional full description. Goes past SEEK's 500-result cap with a coverage report. Only-new mode. $0.80 per 1,000 jobs on Bronze.",
    "version": "0.1",
    "x-build-id": "b5cmPvEA1VtkYdfSo"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/amitaviv~seek-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-amitaviv-seek-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/amitaviv~seek-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-amitaviv-seek-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/amitaviv~seek-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-amitaviv-seek-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "queries": {
            "title": "Keywords or SEEK search URLs",
            "type": "array",
            "description": "Job keywords (e.g. data analyst) or search URLs copied from seek.com.au / seek.co.nz (e.g. https://www.seek.com.au/data-analyst-jobs/in-All-Sydney-NSW?daterange=7). Each entry is one search. The filters below apply to keywords only; a URL carries its own filters. A URL with a part or a filter value the actor does not understand is skipped and listed in the run summary with the reason, not run as a wider search. Leave empty to get every job of the location or classification chosen below; for a whole country use the URL https://www.seek.com.au/jobs.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "For keyword searches. A place as SEEK names it, e.g. All Sydney NSW, All Melbourne VIC, Queensland QLD, All Auckland. A name without 'All' or a postcode is read by SEEK as one suburb and nearby areas, which can be clearly fewer jobs (Wellington: 116 nurse jobs, All Wellington: 158); the run summary then carries a warning. Leave empty for the whole country."
          },
          "country": {
            "title": "Country",
            "enum": [
              "AU",
              "NZ"
            ],
            "type": "string",
            "description": "For keyword searches: which SEEK site to search. AU = seek.com.au (Australia), NZ = seek.co.nz (New Zealand). Default AU. A pasted search URL uses the site in the URL.",
            "default": "AU"
          },
          "classification": {
            "title": "Classification",
            "enum": [
              "",
              "1200",
              "6251",
              "6304",
              "1203",
              "7019",
              "1204",
              "6163",
              "1206",
              "6076",
              "6263",
              "6123",
              "1209",
              "6205",
              "1210",
              "1211",
              "1212",
              "6317",
              "6281",
              "1214",
              "1216",
              "6092",
              "6008",
              "6058",
              "1220",
              "6043",
              "6362",
              "1223",
              "6261",
              "6246",
              "1225"
            ],
            "type": "string",
            "description": "For keyword searches: only jobs of this SEEK classification (industry), e.g. Information & Communication Technology. Default: any classification. With no keywords, a classification alone returns every job in it (narrowed by Location if set).",
            "default": ""
          },
          "workType": {
            "title": "Work type",
            "enum": [
              "",
              "full-time",
              "part-time",
              "contract",
              "casual"
            ],
            "type": "string",
            "description": "For keyword searches: only jobs of this work type: full time, part time, contract/temp or casual/vacation. Default: any work type.",
            "default": ""
          },
          "workArrangement": {
            "title": "Work arrangement",
            "enum": [
              "",
              "on-site",
              "hybrid",
              "remote"
            ],
            "type": "string",
            "description": "For keyword searches: only on-site, hybrid or remote jobs, as the advertiser marked them. Default: any arrangement.",
            "default": ""
          },
          "salaryMin": {
            "title": "Minimum annual salary",
            "minimum": 0,
            "type": "integer",
            "description": "For keyword searches: SEEK's own salary filter, annual amount in AUD (NZD for New Zealand), e.g. 100000. SEEK also matches ads whose pay is not shown but which the advertiser placed in this range."
          },
          "salaryMax": {
            "title": "Maximum annual salary",
            "minimum": 1,
            "type": "integer",
            "description": "For keyword searches: upper end of SEEK's salary filter, annual amount in AUD (NZD for New Zealand), e.g. 150000; must be above the minimum. Leave empty for no upper limit."
          },
          "dateRange": {
            "title": "Listed within N days",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "For keyword searches: SEEK's date filter, counted in calendar days of Sydney time. 1 = listed today (since midnight in Sydney), 2 = today and yesterday, and so on. For a daily schedule use 2 or 3, not 1. Leave empty for any date."
          },
          "maxItemsPerQuery": {
            "title": "Max jobs per search",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Number of jobs: stop after this many jobs for each keyword or URL (default 100, up to 200,000). Up to 500 they are the newest, except that SEEK puts up to two featured ads at the top of each page of 100 (isFeatured: true). A search can deliver slightly fewer than the maximum when some of its jobs were already delivered by an earlier search in the same run. SEEK serves at most 500 results per search; when you ask for more, the actor also runs narrower searches (by classification, state, work type, salary band), removes duplicates and reports in the run summary how well they covered the search. Past the first 500 the jobs come classification by classification, so a maximum below the search's total is not a cut by date. You are charged only for delivered jobs.",
            "default": 100
          },
          "includeDescription": {
            "title": "Include full description",
            "type": "boolean",
            "description": "Also fetch each job's full description (descriptionHtml, descriptionText), expiry date, verified-advertiser flag and company profile facts (industry, size, website, rating). One extra request per job, about 4 to 5 jobs per second, and one extra \"job-detail\" charge per job delivered with a description. Default off: those fields are null.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new jobs (monitoring)",
            "type": "boolean",
            "description": "Return and charge only jobs that earlier runs of this actor in your account have not delivered for the same search. The first run delivers what it finds, up to the maximum. Later runs deliver jobs not delivered before, in SEEK's order (newest first, after up to two featured ads per page): while the search holds more jobs than the maximum, that includes older ads the earlier runs did not reach, so set a date filter (2 or 3 days) to get fresh ads only. The memory is a key-value store named seek-jobs-scraper-monitor in your account (up to 100,000 jobs per search); delete it to start over.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor name (optional)",
            "type": "string",
            "description": "Only with \"Only new jobs\". Any short name, e.g. sydney-daily. Runs with the same search and the same monitor name share one memory. Give two schedules different names to keep their memories apart. Default: empty (one memory per search)."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Off by default: SEEK answered our test runs from Apify's servers without a proxy. Turn on Apify Proxy, or enter your own proxy URLs, only if your runs are being blocked.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}