{
  "openapi": "3.0.1",
  "info": {
    "title": "JobServe Jobs Scraper",
    "description": "[💰 $2.5 / 1K] Extract IT, engineering & finance jobs from JobServe — title, company, location, salary or day rate, contract vs permanent, posted date, recruiter contact, and apply link. Search by keyword, location, radius, industry, and date across 9 country markets, or paste search URLs.",
    "version": "1.0",
    "x-build-id": "KwwWN4MfAzPOpR9zz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~jobserve-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-jobserve-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/solidcode~jobserve-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-jobserve-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/solidcode~jobserve-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-jobserve-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": "Search Keywords",
            "type": "array",
            "description": "Job titles, skills, or keywords to search for, such as 'java developer', 'project manager', or 'data engineer'. Each keyword runs its own search. Leave empty if you only want to use the URLs below.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Town, city, county, region, or postcode to search around, such as 'London', 'Manchester', or 'EC1A 1BB'. Matches what you would type into JobServe's location box. Applied to every keyword search above."
          },
          "country": {
            "title": "Country",
            "enum": [
              "gb",
              "us",
              "ca",
              "au",
              "nz",
              "fr",
              "de",
              "ch",
              "ae"
            ],
            "type": "string",
            "description": "Which JobServe regional market to search. JobServe runs separate markets per country; pick the one your location and jobs belong to.",
            "default": "gb"
          },
          "distance": {
            "title": "Search Radius",
            "enum": [
              "1",
              "5",
              "10",
              "15",
              "25",
              "50",
              "75",
              "100"
            ],
            "type": "string",
            "description": "How far around the location to search, in miles.",
            "default": "50"
          },
          "startUrls": {
            "title": "JobServe Search URLs",
            "type": "array",
            "description": "Optional. Paste full JobServe search or job URLs. Any filters already applied on the site are respected. Useful for advanced searches the fields above don't cover. You can mix URLs with the keyword search.",
            "items": {
              "type": "string"
            }
          },
          "jobType": {
            "title": "Job Type",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "8"
            ],
            "type": "string",
            "description": "Limit the search to a single employment type. Leave on 'Any' to include permanent, contract, and part-time / temporary roles.",
            "default": ""
          },
          "industries": {
            "title": "Industries",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only jobs in these industry sectors. Leave empty to include every industry.",
            "items": {
              "type": "string",
              "enum": [
                "01",
                "02",
                "03",
                "04",
                "06",
                "07",
                "08",
                "09",
                "10",
                "11",
                "12",
                "13",
                "14",
                "15",
                "16",
                "17",
                "18",
                "19",
                "20",
                "21",
                "22",
                "23",
                "24",
                "25",
                "26",
                "27",
                "28"
              ],
              "enumTitles": [
                "IT & Telecommunications",
                "Finance, Accounting & Banking",
                "Engineering",
                "Sales & Marketing",
                "Office & Administration",
                "Legal",
                "Healthcare & Medical",
                "Call Centre & Customer Services",
                "HR & Recruitment",
                "Construction & Civil Engineering",
                "Transport & Logistics",
                "Advertising, Media & Entertainment",
                "Food & Hospitality",
                "Mining, Energy, Oil & Gas",
                "Science, Biotech & Pharmaceuticals",
                "Retail & Consumer Products",
                "Defence, Military & Armed Forces",
                "Travel & Tourism",
                "Education",
                "Manufacturing",
                "Trades & Services",
                "Self Employment",
                "Community & Sport",
                "Consulting & Corporate Strategy",
                "Agriculture, Forestry & Fishing",
                "Real Estate & Property",
                "Other"
              ]
            },
            "default": []
          },
          "postedSince": {
            "title": "Date Posted",
            "enum": [
              "",
              "0",
              "1",
              "2",
              "3",
              "7"
            ],
            "type": "string",
            "description": "Only return jobs posted within this time window. Leave on 'Any time' to include all jobs.",
            "default": ""
          },
          "remoteOnly": {
            "title": "Remote Jobs Only",
            "type": "boolean",
            "description": "Keep only jobs advertised as remote or work-from-home.",
            "default": false
          },
          "advertisedBy": {
            "title": "Advertised By",
            "enum": [
              "",
              "AGENCY",
              "COMPANY"
            ],
            "type": "string",
            "description": "Filter by who posted the job: recruitment agencies, direct employers, or both.",
            "default": ""
          },
          "includeDescription": {
            "title": "Fetch Full Job Details",
            "type": "boolean",
            "description": "Off by default for fast results. Each job card already includes the title, location, salary or rate, job type, and posted date. Turn this on to also fetch the full job description, recruiter contact details, reference number, industry, and start date from each job's own page — this is slower, because every job needs an extra page visit, so expect longer runs on large searches.",
            "default": false
          },
          "onlyUniqueJobs": {
            "title": "Only Unique Jobs",
            "type": "boolean",
            "description": "When on, each job is returned once even if JobServe lists it across several pages or searches. Turn off to keep every copy.",
            "default": true
          },
          "maxResults": {
            "title": "Maximum Results",
            "minimum": 0,
            "type": "integer",
            "description": "Cap on the total number of jobs returned across all searches and URLs. Leave blank or use the default (50) for a quick first run; raise it for larger pulls. Set it to 0 only if you want EVERY matching job with no limit — the run then keeps paging until JobServe runs out of jobs, which on a broad search can be tens of thousands of results (and is billed per result), so use 0 deliberately. Results are fetched a page at a time, so a small cap can return up to a full page more than you asked for.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}