{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Jobs Scraper — Descriptions, Apply Links, Salaries",
    "description": "Scrape Google Jobs by keyword, location and country: title, company, location, posted date, full description, direct apply links, salary, employment type, highlights, the employer's domain and ATS. 10 jobs per search, widened with related searches and de-duplicated.",
    "version": "0.1",
    "x-build-id": "wslhaiVOJP0l1QALM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/foxlabs~google-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-foxlabs-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/foxlabs~google-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-foxlabs-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/foxlabs~google-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-foxlabs-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",
        "required": [
          "queries"
        ],
        "properties": {
          "queries": {
            "title": "Job searches",
            "type": "array",
            "description": "One search per line, as you would type it in Google: a job title, skill or role (\"software engineer\", \"registered nurse\", \"Softwareentwickler\"). Each search runs once per location below.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "City, state or region, one per line (\"New York, NY\", \"Texas\", \"Berlin\"). Leave empty to search the whole country.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "us",
              "gb",
              "ca",
              "au",
              "nz",
              "ie",
              "in",
              "sg",
              "za",
              "ph",
              "my",
              "ng",
              "ke",
              "pk",
              "ae",
              "sa",
              "eg",
              "hk",
              "de",
              "at",
              "ch",
              "fr",
              "be",
              "nl",
              "es",
              "it",
              "pt",
              "br",
              "mx",
              "ar",
              "co",
              "cl",
              "pe",
              "se",
              "no",
              "dk",
              "fi",
              "jp",
              "id"
            ],
            "type": "string",
            "description": "Which Google Jobs to search: the country's Google domain and job market. Google Jobs is not available in every country; an unsupported one returns an explanatory empty row.",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Two-letter interface language (en, de, fr…). Empty = the country's main language. Dates, pay and job types are read in English, German, French, Spanish, Portuguese, Italian, Dutch, Polish and Turkish."
          },
          "maxJobsPerQuery": {
            "title": "Max jobs per search and location",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Google shows 10 jobs per search; beyond that the Actor runs related searches (\"… full time\", \"… senior\") and removes duplicates, until this number or until new searches stop finding new jobs. The form starts at 10 for a quick first run.",
            "default": 50
          },
          "datePosted": {
            "title": "Posted within",
            "enum": [
              "any",
              "today",
              "3days",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Keep only jobs posted in this window (from Google's \"5 days ago\" labels). Jobs Google shows without a date are left out when a window is set.",
            "default": "any"
          },
          "employmentType": {
            "title": "Employment type",
            "type": "array",
            "description": "Keep only these types. Jobs whose type Google does not show are kept.",
            "items": {
              "type": "string",
              "enum": [
                "FULL_TIME",
                "PART_TIME",
                "CONTRACTOR",
                "INTERNSHIP",
                "TEMPORARY"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contractor",
                "Internship",
                "Temporary"
              ]
            },
            "default": []
          },
          "remoteJobs": {
            "title": "Remote jobs",
            "enum": [
              "auto",
              "include",
              "exclude",
              "only"
            ],
            "type": "string",
            "description": "Google mixes nationwide remote jobs (location \"Anywhere\"; \"Beliebiger Ort\" on German pages) into location searches. Auto: with a location they are left out, so a New York search returns jobs located in New York; without a location they are kept. Include: keep them. Exclude: leave them out. Only: search for remote jobs and keep only those (location \"Anywhere\", a work-from-home label, or a remote word such as \"Remote\" or \"Homeoffice\" in the title).",
            "default": "auto"
          },
          "includeDescription": {
            "title": "Include job description",
            "type": "boolean",
            "description": "The job description as Google shows it. Some countries (Germany and France, measured) show only a preview of up to 400 characters; those rows have descriptionIsPreview = true. Turning it off makes the dataset smaller, not the run faster.",
            "default": true
          },
          "includeHighlights": {
            "title": "Include job highlights",
            "type": "boolean",
            "description": "Qualifications, responsibilities and benefits as Google lists them (where Google shows highlights).",
            "default": true
          },
          "maxSearchesPerQuery": {
            "title": "Max Google searches per search and location",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "Upper bound on the searches used to widen one search. Each search returns up to 10 jobs.",
            "default": 30
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}