{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Jobs Scraper — Apply Links, Salaries & New-Job Monitor",
    "description": "Google Jobs listings by keyword and location in 14 countries: title, company, salary, schedule, full description, highlights and the real apply link of every site carrying the posting. Keyword × location fan-out, de-duplicated, monitor mode for new jobs. Export to CSV, JSON or API.",
    "version": "1.0",
    "x-build-id": "U2YfDzV0AacZBXy25"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/steadyscrape~google-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-steadyscrape-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/steadyscrape~google-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-steadyscrape-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/steadyscrape~google-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-steadyscrape-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": {
          "keywords": {
            "title": "Job titles or keywords",
            "type": "array",
            "description": "One per line: <code>software engineer</code>, <code>registered nurse</code>. Each keyword is searched in each location, so 5 keywords and 10 locations are 50 searches. The word \"jobs\" is added for you.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Cities, regions or countries, one per line: <code>New York</code>, <code>Austin, TX</code>, <code>London</code>. Leave empty to search each keyword without a place.",
            "items": {
              "type": "string"
            }
          },
          "queries": {
            "title": "Searches in your own words",
            "type": "array",
            "description": "Sent to Google as written, one search each: <code>empleos de marketing en Madrid</code>, <code>vagas desenvolvedor São Paulo</code>, <code>walmart cashier jobs near dallas</code>. Use this for languages other than English, where \"<i>keyword</i> jobs in <i>place</i>\" is not how people search.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "pattern": "^[A-Za-z]{2}$",
            "type": "string",
            "description": "Two-letter code of the country whose Google answers. Jobs were returned on 2026-09-19 for <code>us</code>, <code>gb</code>, <code>ca</code>, <code>in</code>, <code>de</code>, <code>fr</code>, <code>es</code>, <code>it</code>, <code>br</code>, <code>mx</code>, <code>za</code>, <code>sg</code>, <code>ae</code> and <code>ph</code>. Google lists no jobs at all in <code>au</code>, <code>nl</code>, <code>ie</code> and <code>jp</code>.",
            "default": "us"
          },
          "datePosted": {
            "title": "Date posted",
            "enum": [
              "any",
              "today",
              "3days",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Google's own \"date posted\" filter. For a scheduled run, <b>today</b> or <b>3days</b> together with the monitor below keeps each run to what is new.",
            "default": "any"
          },
          "jobTypes": {
            "title": "Job types",
            "uniqueItems": true,
            "type": "array",
            "description": "Each type you tick is searched separately, so ticking two doubles the searches and brings up to 10 more jobs for each keyword and location. The type steers Google's ranking rather than filtering strictly: every row carries the schedule Google prints (<code>scheduleType</code>), which is the column to filter on. Leave empty for every type in one search.",
            "items": {
              "type": "string",
              "enum": [
                "full_time",
                "part_time",
                "contract",
                "internship"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contract",
                "Internship"
              ]
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Adds Google's \"remote\" filter to every search.",
            "default": false
          },
          "onlyNewJobs": {
            "title": "Only jobs new since the last run (monitor)",
            "type": "boolean",
            "description": "Turns a scheduled run into a job alert: a job this Actor already delivered to you in an earlier run is skipped and not charged. The first run delivers everything and is the baseline.",
            "default": false
          },
          "resolveApplyLinks": {
            "title": "Resolve apply links to the real posting",
            "type": "boolean",
            "description": "Google hides each apply link behind its own redirect. With this on, every link is followed one step, so you get <code>https://www.linkedin.com/jobs/view/…</code> instead of <code>https://www.google.com/goto?url=…</code>. It costs nothing extra.",
            "default": true
          },
          "maxJobsPerSearch": {
            "title": "Max jobs per search",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Google gives at most 10. Lower it to keep only the top results of each search.",
            "default": 10
          },
          "maxJobs": {
            "title": "Max jobs in the run",
            "minimum": 0,
            "type": "integer",
            "description": "The run stops searching once it has delivered this many. <code>0</code> means no ceiling besides your spending limit.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}