{
  "description": "Find live UK vacancies on Totaljobs by keyword and area, browse a whole area, or scrape specific Totaljobs URLs. Optional filters: date posted, work from home, job type, sort order and salary band.",
  "properties": {
    "includeDetails": {
      "default": true,
      "description": "Fetch full descriptions, exact posting and expiry dates, parsed salary bands, company details, map coordinates and apply links. Turn off for a faster, lighter listing-only run.",
      "prefill": false,
      "title": "Open each job page",
      "type": "boolean"
    },
    "jobType": {
      "description": "Employment type as classified by Totaljobs. Leave empty for all types.",
      "editor": "select",
      "enum": [
        "permanent",
        "contract",
        "temporary",
        "part-time",
        "work-from-home",
        "full-time",
        "internship",
        "apprenticeship"
      ],
      "enumTitles": [
        "Permanent",
        "Contract",
        "Temporary",
        "Part-time",
        "Work from home",
        "Full-time (legacy — no longer a Totaljobs filter, ignored)",
        "Internship (legacy — no longer a Totaljobs filter, ignored)",
        "Apprenticeship (legacy — no longer a Totaljobs filter, ignored)"
      ],
      "title": "Job type",
      "type": "string"
    },
    "keywords": {
      "description": "Job titles or search terms, e.g. `software developer` or `registered nurse`. Each keyword is searched separately. (mode=search)",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [
        "software developer"
      ],
      "title": "Keywords",
      "type": "array"
    },
    "location": {
      "description": "UK town, city, county or postcode, e.g. `London`, `Manchester`, `Edinburgh`, `SW1A`. Leave empty to search the whole UK by keyword.",
      "editor": "textfield",
      "prefill": "London",
      "title": "Location",
      "type": "string"
    },
    "maxItems": {
      "default": 100,
      "description": "Maximum number of jobs to save. Totaljobs returns at most 100 jobs per search query; above that the actor automatically splits the search by area and filters to reach more.",
      "maximum": 5000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max jobs",
      "type": "integer"
    },
    "mode": {
      "default": "search",
      "description": "Choose what to scrape. The last three values are aliases kept for tasks saved before the revamp.",
      "editor": "select",
      "enum": [
        "search",
        "browseLocation",
        "byUrls",
        "searchJobs",
        "searchByLocation",
        "searchBySalary"
      ],
      "enumTitles": [
        "Search jobs by keyword and area",
        "Browse every job in an area",
        "Scrape specific Totaljobs URLs",
        "Search jobs by keyword (legacy alias)",
        "Browse every job in an area (legacy alias)",
        "Search with a salary band (legacy alias)"
      ],
      "prefill": "search",
      "title": "Mode",
      "type": "string"
    },
    "onlyNewJobs": {
      "default": false,
      "description": "Return only jobs that were not present in the previous run of this same search. The first run returns everything and seeds the baseline.",
      "prefill": false,
      "title": "Only new jobs",
      "type": "boolean"
    },
    "postedWithin": {
      "description": "Only include jobs posted within this window. Leave empty for any date.",
      "editor": "select",
      "enum": [
        "1",
        "3",
        "7",
        "14"
      ],
      "enumTitles": [
        "Last 24 hours",
        "Last 3 days",
        "Last 7 days",
        "Last 14 days"
      ],
      "title": "Date posted",
      "type": "string"
    },
    "salaryMax": {
      "description": "Only keep jobs whose advertised pay starts at or below this annual amount. Hourly and daily rates are converted to a yearly figure.",
      "maximum": 500000,
      "minimum": 0,
      "title": "Maximum salary (£/year)",
      "type": "integer"
    },
    "salaryMin": {
      "description": "Only keep jobs whose advertised pay reaches this annual amount. Hourly and daily rates are converted to a yearly figure. Jobs without a published salary are skipped when a salary filter is set.",
      "maximum": 500000,
      "minimum": 0,
      "title": "Minimum salary (£/year)",
      "type": "integer"
    },
    "urls": {
      "description": "Search pages, company job pages or individual job pages. You can mix them. (mode=byUrls)",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "title": "Totaljobs URLs",
      "type": "array"
    },
    "workFromHome": {
      "description": "Include only home-working roles, or exclude them. Leave empty for both.",
      "editor": "select",
      "enum": [
        "only",
        "exclude"
      ],
      "enumTitles": [
        "Only work-from-home jobs",
        "Exclude work-from-home jobs"
      ],
      "title": "Work from home",
      "type": "string"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Totaljobs UK Vacancy Finder Input",
  "type": "object"
}
