{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Jobs Scraper & API: Apply Links, Salary, Description",
    "description": "Scrape Google Jobs (the search Google builds from LinkedIn, Indeed, Glassdoor, ZipRecruiter and career sites) by keyword and location or URL, with every direct apply link, salary, highlights and full description, no login needed. Only-new-jobs mode for scheduled alerts; $2 per 1,000 jobs.",
    "version": "1.0",
    "x-build-id": "7KxX9odANXBx8oGPg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/varnmill~google-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-varnmill-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/varnmill~google-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-varnmill-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/varnmill~google-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-varnmill-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": "Job titles or keywords, one per line, for example 'registered nurse' or 'python developer'. Each one is searched once per location. The word 'jobs' is added for you.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities, states or regions, for example 'Austin, TX' or 'Manchester'. Leave empty to search the whole country.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Google jobs URLs",
            "type": "array",
            "description": "Optional. Paste Google jobs search URLs (google.com/search?q=...&udm=8, or older ibp=htl;jobs links). Their query and filters are kept. Use together with or instead of Job searches.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxJobsPerSearch": {
            "title": "Max jobs per search",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Google shows about 10 jobs per search. To go further, the actor runs related searches (full time, remote, entry level, senior, part time, contract and more) and merges them without duplicates, until this number is reached or the related searches stop finding new jobs (usually 60 to 90 per keyword and location).",
            "default": 50
          },
          "maxItems": {
            "title": "Max jobs in total",
            "minimum": 1,
            "type": "integer",
            "description": "The run stops after this many jobs across all searches. You pay per job returned, so this also caps the cost.",
            "default": 100
          },
          "country": {
            "title": "Country",
            "enum": [
              "us",
              "gb",
              "ca",
              "au",
              "in",
              "nz",
              "sg",
              "za",
              "ae",
              "ph",
              "my",
              "ng",
              "ke",
              "br",
              "mx",
              "jp"
            ],
            "type": "string",
            "description": "Which Google market to search. Google has switched its jobs search off in most EU countries, so they are not listed.",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Google interface language code (hl), for example 'en' or 'es'. Leave empty for the country's usual language."
          },
          "datePosted": {
            "title": "Date posted",
            "enum": [
              "any",
              "today",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Ask Google for recently posted jobs only.",
            "default": "any"
          },
          "onlyNewJobs": {
            "title": "Only jobs not returned by earlier runs",
            "type": "boolean",
            "description": "For scheduled runs: remember every job ID in a named key-value store and output (and charge for) only jobs that earlier runs with the same state name have not returned. Later runs read Google's first page per search and run related searches only when it has at least 3 new jobs. Adds a $0.003 check fee per search per run.",
            "default": false
          },
          "stateName": {
            "title": "State name (for only new jobs)",
            "type": "string",
            "description": "Runs that share a state name share their memory of seen jobs. Use a different name per saved search or task.",
            "default": "default"
          },
          "forgetAfterDays": {
            "title": "Forget seen jobs after (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Jobs not seen again for this many days are forgotten and count as new if they come back.",
            "default": 60
          },
          "includeDescription": {
            "title": "Include full description",
            "type": "boolean",
            "description": "The full job description is usually 2,000 to 9,000 characters. Turn off for smaller datasets; the price is the same.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Parallel Google requests",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many Google pages to load at once. Each page takes 5 to 50 seconds, so higher is faster for many searches.",
            "default": 8
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}