{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Jobs Scraper - Salary, Highlights & Apply Links",
    "description": "Scrape Google Jobs (Google for Jobs) by search query and location. Output: one item per job with title, company, location, source board (via), posted date, employment type, salary, remote flag, full description, job highlights and every apply link. Filters: date posted, employment type, remote.",
    "version": "1.0",
    "x-build-id": "dYe9sB3GiThqmJaSe"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/artificially~google-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-artificially-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/artificially~google-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-artificially-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/artificially~google-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-artificially-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": "Required. One job search per entry, written the way you would type it into Google, usually a job title or skill. The word \"jobs\" is added automatically when missing. Example: [\"software engineer\", \"registered nurse\"]. Each search returns its own jobs, deduplicated across searches.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, region or country added to every search as \"in <location>\". Example: \"London\", \"Austin, TX\", \"Germany\". Leave empty to let Google use the country below."
          },
          "country": {
            "title": "Country (Google edition)",
            "type": "string",
            "description": "Two-letter country code of the Google edition to search (Google's gl parameter), which decides the country of the results. Verified: us, uk, ca, fr. Germany (de) is currently answered with a captcha by Google and returns nothing (not charged). Default: us.",
            "default": "us"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Interface language code (Google's hl parameter). Examples: en, de, fr, es, pt. Default: en. Dates, salary periods and employment types are parsed best in English.",
            "default": "en"
          },
          "datePosted": {
            "title": "Date posted",
            "enum": [
              "any",
              "today",
              "3days",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Only jobs posted within this window. Allowed values: any, today (last 24 hours), 3days, week, month. Default: any.",
            "default": "any"
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Only these employment types. Allowed values: full-time, part-time, contractor, internship, temporary. Example: [\"full-time\", \"contractor\"]. Each selected type runs its own Google search. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "full-time",
                "part-time",
                "contractor",
                "internship",
                "temporary"
              ],
              "enumTitles": [
                "Full-time",
                "Part-time",
                "Contractor",
                "Internship",
                "Temporary"
              ]
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Set to true to search for remote jobs and keep only jobs Google marks as work from home or whose location/title says remote or anywhere.",
            "default": false
          },
          "maxResultsPerQuery": {
            "title": "Max jobs per search",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Stop each search after saving this many jobs, from 1 to 500. Google shows about 10 jobs per results page; above 10 the actor opens more pages and related searches (by employment type, recency and seniority) until the number is reached or no new jobs appear. Example: 50. Default: 10.",
            "default": 10
          },
          "maxResults": {
            "title": "Max results (total)",
            "minimum": 1,
            "type": "integer",
            "description": "Stop the whole run after saving this many jobs across all searches. Example: 100. Leave empty for no total limit (the run also stops at your maximum cost per run)."
          },
          "expandQueries": {
            "title": "Widen searches to reach the limit",
            "type": "boolean",
            "description": "When true (default) and a search needs more jobs than Google's first page, the actor also runs related searches (e.g. \"... full time\", \"... senior\", \"... in the last week\") and keeps only new jobs. Set to false to run exactly the searches you entered.",
            "default": true
          },
          "includeDescription": {
            "title": "Include job description",
            "type": "boolean",
            "description": "Return the full job description as plain text in description. Set to false for smaller items.",
            "default": true
          },
          "onlyNewSinceLastRun": {
            "title": "Only new jobs since last run (monitoring)",
            "type": "boolean",
            "description": "Set to true to remember the job IDs returned for this exact input (searches, location, country, language and filters) and return only jobs not seen in earlier runs. Ideal with Apify Schedules: you pay only for new postings.",
            "default": false
          },
          "compactOutput": {
            "title": "Compact output (for AI agents)",
            "type": "boolean",
            "description": "Set to true to save a slim item per job with only jobId, title, company, location, via, isRemote, employmentType, salary (min, max, currency, period), postedAt, applyUrl and shareUrl. Description, highlights and the full apply-link list are dropped. Recommended when an AI agent or LLM reads the results. Leave false for the full item.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Searches in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many searches run at the same time, from 1 to 10. Default: 3.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Keep the Apify GOOGLE_SERP proxy group selected: it is Apify's official proxy for Google Search pages and is needed to get job results. Its cost is included in the per-job price.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "GOOGLE_SERP"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}