{
  "openapi": "3.0.1",
  "info": {
    "title": "SEEK Job Scraper - Australia & NZ Jobs, Salary & Postcode",
    "description": "Scrape SEEK job ads across Australia and New Zealand: full description, parsed salary min and max, suburb, postcode, state, work type, remote policy, posting date and listing expiry. No login. $1.20 per 1,000 ads, everything included.",
    "version": "0.1",
    "x-build-id": "bE0fwc48lD4LtCIXU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cirkit~seek-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cirkit-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/cirkit~seek-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-cirkit-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/cirkit~seek-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-cirkit-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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "What to search for, one term per line, for example \"software engineer\", \"registered nurse\", \"forklift driver\". Every keyword is combined with every location below. Leave this empty to get every job in the locations you list.",
            "default": [
              "software engineer"
            ],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "SEEK locations, one per line, for example \"Sydney NSW\", \"All Melbourne VIC\", \"Brisbane QLD\", \"All Australia\". SEEK matches loosely, so \"Brisbane\" resolves to \"Brisbane QLD 4000\". Leave empty to search the whole country.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "au",
              "nz"
            ],
            "type": "string",
            "description": "Which SEEK site to search. Australia is seek.com.au and New Zealand is seek.co.nz. Start URLs carry their own country and ignore this.",
            "default": "au"
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on the total number of job rows across every search. Set to 0 for no limit. You are charged per row, so this is also your budget control. Note that SEEK itself serves at most 500 jobs per individual search.",
            "default": 200
          },
          "includeDescription": {
            "title": "Include full job description",
            "type": "boolean",
            "description": "Fetch the complete job ad for every result: full description as HTML and plain text, suburb, postcode, listing expiry date and whether the application goes to an external site. Turn this off for a faster, smaller run when the search fields are enough.",
            "default": true
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "date"
            ],
            "type": "string",
            "description": "SEEK's own sort order. Relevance is SEEK's default ranking. Date puts the newest ads first, which is what you want when running this on a schedule.",
            "default": "relevance"
          },
          "postedWithinDays": {
            "title": "Posted within days",
            "minimum": 1,
            "maximum": 999,
            "type": "integer",
            "description": "Only return ads listed in the last N days, for example 1, 3, 7, 14 or 31. Leave empty for all ads. This is also the cleanest way to get past SEEK's 500-per-search ceiling on a broad keyword."
          },
          "workTypes": {
            "title": "Work types",
            "type": "array",
            "description": "Restrict to these work types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "full time",
                "part time",
                "contract/temp",
                "casual/vacation"
              ],
              "enumTitles": [
                "Full time",
                "Part time",
                "Contract / Temp",
                "Casual / Vacation"
              ]
            },
            "default": []
          },
          "workArrangements": {
            "title": "Work arrangements",
            "type": "array",
            "description": "Restrict to on-site, hybrid or remote ads. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "on-site",
                "hybrid",
                "remote"
              ],
              "enumTitles": [
                "On-site",
                "Hybrid",
                "Remote"
              ]
            },
            "default": []
          },
          "salaryMin": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Only return ads whose advertised salary starts at or above this number, in local currency. Applies to the salary band SEEK filters on, so ads with no salary stated are excluded when this is set."
          },
          "salaryMax": {
            "title": "Maximum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Upper end of the advertised salary filter, in local currency. Leave empty for no upper bound."
          },
          "salaryType": {
            "title": "Salary filter unit",
            "enum": [
              "annual",
              "hourly"
            ],
            "type": "string",
            "description": "Whether the minimum and maximum salary above are annual or hourly figures. Ignored when neither is set.",
            "default": "annual"
          },
          "startUrls": {
            "title": "SEEK search URLs (optional)",
            "type": "array",
            "description": "Paste SEEK search result URLs, one per line, for example https://www.seek.com.au/software-engineer-jobs/in-All-Sydney-NSW?daterange=7 . Build the search you want on SEEK, copy the address bar, and every filter in it is honoured including classification. Single job pages (/job/12345678) belong in Job IDs instead.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "jobIds": {
            "title": "Job IDs (optional)",
            "type": "array",
            "description": "SEEK numeric job ids to fetch directly, one per line, for example 94488368. Use this to re-check specific ads you are tracking. Ids that no longer resolve are reported in the log and not charged.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "classification": {
            "title": "Classification ID (optional)",
            "type": "array",
            "description": "SEEK numeric classification or subclassification id, for example 6281 for Information & Communication Technology. Only the first value is used. The easy way to find one is to pick the category on SEEK and read the classification parameter out of the address bar.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings. The default datacenter pool works against SEEK and is the cheapest option; residential proxies are not needed here.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}