Google Jobs Scraper
Pricing
$3.00 / 1,000 job scrapeds
Google Jobs Scraper
Scrape Google for Jobs. 22+ fields per posting (title, company, salary, apply links, remote flag). US/BR/MX/CA/UK/IN/AU/JP/SG. Pay $0.003 per job.
Google Jobs Scraper
Pricing
$3.00 / 1,000 job scrapeds
Scrape Google for Jobs. 22+ fields per posting (title, company, salary, apply links, remote flag). US/BR/MX/CA/UK/IN/AU/JP/SG. Pay $0.003 per job.
You can access the Google Jobs Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in Integrations settings in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.0", "x-build-id": "e8xyNPeisARZIqGXw" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/gio21~google-jobs-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-gio21-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/gio21~google-jobs-scraper/runs": { "post": { "operationId": "runs-sync-gio21-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/gio21~google-jobs-scraper/run-sync": { "post": { "operationId": "run-sync-gio21-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": "Search queries", "uniqueItems": true, "type": "array", "description": "One or more job-search keywords; each query runs independently and results are merged + deduped. Example: [\"software engineer\", \"data scientist\"]. For broad coverage, combine several specific queries with a location. Required field.", "default": [ "software engineer" ], "items": { "type": "string" } }, "location": { "title": "Location", "type": "string", "description": "City, state or region to search within, e.g. \"San Francisco, CA\". Leave empty for country-wide results. Pairing a query with a location is the most reliable mode." }, "countryCode": { "title": "Country", "enum": [ "us", "br", "mx", "ca", "gb", "in", "au", "jp", "sg" ], "type": "string", "description": "ISO-2 country code that scopes the Google domain and locale, e.g. \"us\". One of: us, br, mx, ca, gb, in, au, jp, sg. EU/EEA countries are intentionally excluded (Google disabled the Jobs widget there after antitrust rulings). Use this field, not `country`.", "default": "us" }, "languageCode": { "title": "Language", "type": "string", "description": "ISO 639-1 language code for the results UI/locale, e.g. \"en\", \"pt\", \"es\". Match it to your chosen country for best results. Use this field, not `language`.", "default": "en" }, "maxItems": { "title": "Max jobs", "minimum": 50, "maximum": 10000, "type": "integer", "description": "Hard cap on the total number of jobs scraped across all queries, after dedup. Example: 500. Google shows ~100 per filter slice; setting this above 500 triggers automatic search-matrix expansion (rotating date/type filters) to get more.", "default": 500 }, "datePosted": { "title": "Date posted", "enum": [ "all", "today", "3days", "week", "month" ], "type": "string", "description": "Filter listings by posting recency. One of: all, today, 3days, week, month. Example: \"week\" returns jobs posted in the past 7 days. Default \"all\" (no recency filter).", "default": "all" }, "jobType": { "title": "Job type", "uniqueItems": true, "type": "array", "description": "Filter by one or more employment types. Allowed values: FULLTIME, PARTTIME, CONTRACTOR, INTERN. Example: [\"FULLTIME\", \"CONTRACTOR\"]. Leave empty for all types.", "items": { "type": "string", "enum": [ "FULLTIME", "PARTTIME", "CONTRACTOR", "INTERN" ], "enumTitles": [ "Full-time", "Part-time", "Contractor", "Intern" ] }, "default": [] }, "workFromHome": { "title": "Remote / work from home only", "type": "boolean", "description": "When true, returns only remote / work-from-home roles. Example: true. Default false (all roles, remote and on-site). Combine with `jobType` and `datePosted` to narrow further.", "default": false }, "maxCost": { "title": "Max matrix expansion cost (USD)", "minimum": 0.25, "maximum": 20, "type": "number", "description": "Hard ceiling, in USD, for proxy bandwidth cost when search-matrix expansion kicks in (only when maxItems > 500). Example: 2 caps a large run at ~$2. Default 2, min 0.25, max 20.", "default": 2 }, "proxyConfiguration": { "title": "Proxy configuration", "type": "object", "description": "Advanced. The actor uses Brightdata Scraping Browser by default; this proxy is only used as a fallback. Leave as-is unless you have a reason to change it. Example: { \"useApifyProxy\": true, \"apifyProxyGroups\": [\"RESIDENTIAL\"] }.", "default": { "useApifyProxy": true, "apifyProxyGroups": [ "RESIDENTIAL" ] } } } }, "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 } } }, "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Google Jobs Scraper from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: