{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Jobs Scraper",
    "description": "Google Jobs scraper: job search by title and place, one row per job with the employer, place, salary, schedule, every board to apply on with its real link, Google's highlights and the full description. Filter by date posted, job type, remote, employer and job board. You pay only for jobs delivered.",
    "version": "0.1",
    "x-build-id": "Na0rxVQFl2hq7dapk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dami_studio~google-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dami_studio-google-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/dami_studio~google-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-dami_studio-google-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/dami_studio~google-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-dami_studio-google-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": "Job searches",
            "type": "array",
            "description": "What you would type into Google's job search, one per line: nurse, software engineer, warehouse associate. Each one is searched in every place below. With nothing here and no Google Jobs addresses, the run searches software engineer so you can see what comes back.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Place",
            "type": "string",
            "description": "Optional. A city, region or country, written the way you would type it: Austin, TX or London or Bavaria. Leave it empty to search the whole country chosen below."
          },
          "locations": {
            "title": "More places",
            "type": "array",
            "description": "Optional. More places, one per line. Every search above runs in each of them, so 3 searches in 4 places make 12 searches.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "AF",
              "AX",
              "AL",
              "DZ",
              "AS",
              "AD",
              "AO",
              "AI",
              "AQ",
              "AG",
              "AR",
              "AM",
              "AW",
              "AU",
              "AT",
              "AZ",
              "BS",
              "BH",
              "BD",
              "BB",
              "BY",
              "BE",
              "BZ",
              "BJ",
              "BM",
              "BT",
              "BO",
              "BA",
              "BW",
              "BV",
              "BR",
              "IO",
              "VG",
              "BN",
              "BG",
              "BF",
              "BI",
              "KH",
              "CM",
              "CA",
              "CV",
              "BQ",
              "KY",
              "CF",
              "TD",
              "CL",
              "CN",
              "CX",
              "CC",
              "CO",
              "KM",
              "CG",
              "CD",
              "CK",
              "CR",
              "CI",
              "HR",
              "CU",
              "CW",
              "CY",
              "CZ",
              "DK",
              "DJ",
              "DM",
              "DO",
              "EC",
              "EG",
              "SV",
              "GQ",
              "ER",
              "EE",
              "SZ",
              "ET",
              "FK",
              "FO",
              "FJ",
              "FI",
              "FR",
              "GF",
              "PF",
              "TF",
              "GA",
              "GM",
              "GE",
              "DE",
              "GH",
              "GI",
              "GR",
              "GL",
              "GD",
              "GP",
              "GU",
              "GT",
              "GG",
              "GN",
              "GW",
              "GY",
              "HT",
              "HM",
              "HN",
              "HK",
              "HU",
              "IS",
              "IN",
              "ID",
              "IR",
              "IQ",
              "IE",
              "IM",
              "IL",
              "IT",
              "JM",
              "JP",
              "JE",
              "JO",
              "KZ",
              "KE",
              "KI",
              "KW",
              "KG",
              "LA",
              "LV",
              "LB",
              "LS",
              "LR",
              "LY",
              "LI",
              "LT",
              "LU",
              "MO",
              "MG",
              "MW",
              "MY",
              "MV",
              "ML",
              "MT",
              "MH",
              "MQ",
              "MR",
              "MU",
              "YT",
              "MX",
              "FM",
              "MD",
              "MC",
              "MN",
              "ME",
              "MS",
              "MA",
              "MZ",
              "MM",
              "NA",
              "NR",
              "NP",
              "NL",
              "NC",
              "NZ",
              "NI",
              "NE",
              "NG",
              "NU",
              "NF",
              "KP",
              "MK",
              "MP",
              "NO",
              "OM",
              "PK",
              "PW",
              "PS",
              "PA",
              "PG",
              "PY",
              "PE",
              "PH",
              "PN",
              "PL",
              "PT",
              "PR",
              "QA",
              "RE",
              "RO",
              "RU",
              "RW",
              "WS",
              "SM",
              "ST",
              "SA",
              "SN",
              "RS",
              "SC",
              "SL",
              "SG",
              "SX",
              "SK",
              "SI",
              "SB",
              "SO",
              "ZA",
              "GS",
              "KR",
              "SS",
              "ES",
              "LK",
              "BL",
              "SH",
              "KN",
              "LC",
              "MF",
              "PM",
              "VC",
              "SD",
              "SR",
              "SJ",
              "SE",
              "CH",
              "SY",
              "TW",
              "TJ",
              "TZ",
              "TH",
              "TL",
              "TG",
              "TK",
              "TO",
              "TT",
              "TN",
              "TR",
              "TM",
              "TC",
              "TV",
              "UM",
              "VI",
              "UG",
              "UA",
              "AE",
              "GB",
              "US",
              "UY",
              "UZ",
              "VU",
              "VA",
              "VE",
              "VN",
              "WF",
              "EH",
              "YE",
              "ZM",
              "ZW"
            ],
            "type": "string",
            "description": "The country whose Google Jobs you search. It decides which jobs Google shows first, and the place above should be in it.",
            "default": "US"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "The language of Google's page, such as en, de, es, fr or pt-BR. Words like \"Full-time\" and \"3 days ago\" come back in it.",
            "default": "en"
          },
          "googleDomain": {
            "title": "Google domain",
            "type": "string",
            "description": "Optional. Such as google.co.uk or google.de. Most runs leave it on google.com and set the country instead.",
            "default": "google.com"
          },
          "startUrls": {
            "title": "Google Jobs addresses",
            "type": "array",
            "description": "Optional. Paste the address of a Google Jobs search from your browser (the Jobs tab, with udm=8 in it). Its words and filters are kept, and the filters below are added to them.",
            "items": {
              "type": "string"
            }
          },
          "locationUule": {
            "title": "Exact location (advanced)",
            "type": "string",
            "description": "Optional. Search as someone standing in this place. Use Google's own name for it, place, region and country with commas and no spaces after them: Chicago,Illinois,United States. A code that starts with w+CAIQ works too."
          },
          "datePosted": {
            "title": "Posted within",
            "enum": [
              "any",
              "today",
              "3days",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Only jobs posted in this window. Google's own date filter; every row is checked against it too.",
            "default": "any"
          },
          "jobTypes": {
            "title": "Job types",
            "type": "array",
            "description": "Optional. Only jobs Google lists as one of these types. Google treats a type as a hint, so every row is checked, and a job of another type is left out and not charged.",
            "items": {
              "type": "string",
              "enum": [
                "FULLTIME",
                "PARTTIME",
                "CONTRACTOR",
                "INTERN"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contractor",
                "Internship"
              ]
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Only jobs Google marks as work from home, or whose place reads \"Anywhere\".",
            "default": false
          },
          "radiusKm": {
            "title": "Distance from the place (km)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Optional. How far around the place to look, in kilometres. Google uses it as a guide rather than a hard edge."
          },
          "includeCompanies": {
            "title": "Only these employers",
            "type": "array",
            "description": "Optional. Keep only jobs whose employer name contains one of these, such as Amazon or Kaiser. Case does not matter. Write /pattern/ for a regular expression. Adding the employer to the search words finds more of its jobs.",
            "items": {
              "type": "string"
            }
          },
          "excludeCompanies": {
            "title": "Leave out these employers",
            "type": "array",
            "description": "Optional. Jobs from employers whose name contains one of these are left out and not charged, such as a staffing agency you never apply through. /pattern/ works here too.",
            "items": {
              "type": "string"
            }
          },
          "excludeVia": {
            "title": "Leave out these job boards",
            "type": "array",
            "description": "Optional. Jobs Google lists through these sites are left out and not charged, matched on the via field: Indeed, ZipRecruiter, LinkedIn.",
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerSearch": {
            "title": "Jobs per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many jobs to collect for each search in each place. Google shows a search ten jobs at a time; above that the run reads it with Google's own date and type filters until it has your number or no new jobs come back.",
            "default": 30
          },
          "maxResults": {
            "title": "Jobs per run",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "The most jobs one run delivers, across every search. A job that turns up in two searches is delivered once.",
            "default": 1000
          },
          "includeUnfilteredResults": {
            "title": "Read the search unfiltered too",
            "type": "boolean",
            "description": "Also read each search with Google's similar-results filter switched off. It can add a few jobs Google would otherwise fold away.",
            "default": false
          },
          "includeDescriptionHtml": {
            "title": "Description as HTML too",
            "type": "boolean",
            "description": "Adds descriptionHtml, the description with its headings, lists and line breaks as HTML. The plain-text description is always there.",
            "default": false
          },
          "csvFriendlyOutput": {
            "title": "Spreadsheet-friendly rows",
            "type": "boolean",
            "description": "Turns the lists in a row (apply links, highlights, tags) into single text cells, so a CSV or Excel export keeps one job per line.",
            "default": false
          },
          "outputFields": {
            "title": "Only these fields",
            "type": "array",
            "description": "Optional. Field names to keep in each row, such as title, companyName, salaryMin, applyLink. Leave it empty for every field. A name a row does not have stops the run before it searches.",
            "items": {
              "type": "string"
            }
          },
          "outputFileName": {
            "title": "Also save as a file",
            "type": "string",
            "description": "Optional. A name such as jobs.json. The run also saves its jobs as one JSON file under that name in its key-value store, in parts of 500 jobs when there are more."
          },
          "requestDelaySeconds": {
            "title": "Pause between requests (seconds)",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Optional. Waits this long before each extra request to Google. It only slows the run down; most runs leave it at 0.",
            "default": 0
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}