{
  "openapi": "3.0.1",
  "info": {
    "title": "Jobs.ac.uk Search Scraper",
    "description": "Scrape job listings from Jobs.ac.uk, the leading UK job board for academic, research, and higher education positions. Extract job titles, institutions, locations, salary ranges, contract types, and descriptions for academic recruitment.",
    "version": "2.1",
    "x-build-id": "yBA43Qly3JDEuEggK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jobsapi~jobs-ac-uk-jobs-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jobsapi-jobs-ac-uk-jobs-search-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/jobsapi~jobs-ac-uk-jobs-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-jobsapi-jobs-ac-uk-jobs-search-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/jobsapi~jobs-ac-uk-jobs-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-jobsapi-jobs-ac-uk-jobs-search-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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "single",
              "multiple"
            ],
            "type": "string",
            "description": "Use search for discovery, single for one public job URL, or multiple for several public job URLs.",
            "default": "search"
          },
          "query": {
            "title": "Search query",
            "minLength": 1,
            "maxLength": 200,
            "type": "string",
            "description": "Academic job title, skill, or keyword for search mode.",
            "default": "lecturer"
          },
          "location": {
            "title": "Location",
            "maxLength": 200,
            "type": "string",
            "description": "Optional Jobs.ac.uk location filter.",
            "default": ""
          },
          "jobUrl": {
            "title": "One public job URL",
            "type": "string",
            "description": "One official public Jobs.ac.uk /job/<reference>/<slug> URL for single mode."
          },
          "directUrl": {
            "title": "Direct job URL alias",
            "type": "string",
            "description": "Alias for jobUrl."
          },
          "jobUrls": {
            "title": "Public job URLs",
            "maxItems": 10,
            "type": "array",
            "description": "Official public Jobs.ac.uk job URLs for multiple mode.",
            "items": {
              "type": "string"
            }
          },
          "directUrls": {
            "title": "Direct job URL aliases",
            "maxItems": 10,
            "type": "array",
            "description": "Alias for jobUrls.",
            "items": {
              "type": "string"
            }
          },
          "startUrl": {
            "title": "Start URL alias",
            "type": "string",
            "description": "Alias for one direct public Jobs.ac.uk job URL."
          },
          "startUrls": {
            "title": "Start URL aliases",
            "maxItems": 10,
            "type": "array",
            "description": "Aliases for direct public Jobs.ac.uk job URLs.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Maximum records",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum complete records to emit.",
            "default": 3
          },
          "maxPages": {
            "title": "Maximum search pages",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "Bounded number of public search pages.",
            "default": 1
          },
          "maxConcurrency": {
            "title": "Detail concurrency",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "Maximum simultaneous detail requests.",
            "default": 3
          },
          "requestTimeoutSecs": {
            "title": "Request timeout",
            "minimum": 5,
            "maximum": 30,
            "type": "integer",
            "description": "Timeout per public request.",
            "default": 15
          },
          "retries": {
            "title": "Retries",
            "minimum": 0,
            "maximum": 2,
            "type": "integer",
            "description": "Bounded retries for retryable transport failures.",
            "default": 1
          },
          "delayMillis": {
            "title": "Detail delay",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Optional delay between starting detail requests.",
            "default": 0
          },
          "salaryMin": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "number",
            "description": "Optional minimum salary filter in GBP."
          },
          "salaryMax": {
            "title": "Maximum salary",
            "minimum": 0,
            "type": "number",
            "description": "Optional maximum salary filter in GBP."
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "",
              "Permanent",
              "Fixed-term",
              "Full-time",
              "Part-time",
              "Temporary"
            ],
            "type": "string",
            "description": "Optional contract or employment-type filter.",
            "default": ""
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}