Indeed Jobs Scraper
Pricing
from $3.00 / 1,000 results
Indeed Jobs Scraper
Scrape Indeed.com job listings with salaries, company ratings, descriptions, and remote work info. Full JSON output, fast, residential-proxy-ready.
Indeed Jobs Scraper
Pricing
from $3.00 / 1,000 results
Scrape Indeed.com job listings with salaries, company ratings, descriptions, and remote work info. Full JSON output, fast, residential-proxy-ready.
You can access the Indeed 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.1", "x-build-id": "1RuCnvS6DySeiY9cE" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/cirkit~indeed-jobs-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-cirkit-indeed-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/cirkit~indeed-jobs-scraper/runs": { "post": { "operationId": "runs-sync-cirkit-indeed-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/cirkit~indeed-jobs-scraper/run-sync": { "post": { "operationId": "run-sync-cirkit-indeed-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": { "position": { "title": "Search keywords or position", "type": "string", "description": "What to search for on Indeed. Example: 'python developer', 'senior data scientist', 'registered nurse'. Combine multiple terms with a space. Used together with `location` and `country` to build the search. If you only provide `startUrls`, leave this empty." }, "location": { "title": "Location", "type": "string", "description": "City, state, ZIP, or 'remote'. Example: 'Austin, TX', '94103', 'remote'. Leave blank to search the whole country." }, "country": { "title": "Country", "enum": [ "US", "CA", "GB", "AU", "DE", "FR", "NL", "IT", "ES", "BR", "MX", "IN", "IE", "SG", "HK", "NZ", "PL", "SE", "AT", "BE", "CH", "DK", "FI", "GR", "HU", "JP", "KR", "NO", "PT", "RO", "ZA", "TH", "TR", "AE", "AR", "CL", "CO", "CR", "EC", "PE", "UY", "VE", "BH", "EG", "IL", "KW", "LU", "MA", "NG", "OM", "PA", "PH", "PK", "QA", "SA", "TW", "UA", "VN", "ID", "CZ", "CN" ], "type": "string", "description": "Two-letter country code. Indeed has dedicated country sites; this picks the right one. Defaults to US.", "default": "US" }, "maxItemsPerSearch": { "title": "Max jobs per search", "minimum": 1, "maximum": 1000, "type": "integer", "description": "Maximum number of jobs to scrape for each `position` keyword and each `startUrls` entry. Indeed itself caps any single search at about 1000 results; set this lower for cheaper runs, higher (with date splitting handled by Indeed automatically) for larger pulls.", "default": 100 }, "startUrls": { "title": "Start URLs (optional)", "type": "array", "description": "Alternative to `position` + `location`. Paste full Indeed search URLs (https://www.indeed.com/jobs?q=...&l=...) or individual job URLs (https://www.indeed.com/viewjob?jk=...). Each entry is scraped independently and capped by `maxItemsPerSearch`.", "default": [], "items": { "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string", "title": "URL of a web page", "format": "uri" } } } }, "parseCompanyDetails": { "title": "Parse company details and full descriptions", "type": "boolean", "description": "When ON, the scraper fetches each job's detail page to get the full HTML description, company logo, employer activity, and richer company info. When OFF, only the search results are returned (faster, ~3x cheaper). Default ON.", "default": true }, "saveOnlyUniqueItems": { "title": "Save only unique jobs", "type": "boolean", "description": "Deduplicate by Indeed job key. Recommended ON. The same job often appears as both a sponsored and an organic listing on the same page.", "default": true }, "fromage": { "title": "Max job age in days", "minimum": 1, "maximum": 60, "type": "integer", "description": "Only return jobs posted in the last N days. Common values: 1, 3, 7, 14. Leave blank for any age." }, "sort": { "title": "Sort order", "enum": [ "", "date" ], "type": "string", "description": "Sort by `date` (newest first) or omit for Indeed's relevance ranking.", "default": "" }, "radius": { "title": "Search radius (miles)", "minimum": 0, "maximum": 100, "type": "integer", "description": "How far from `location` to expand the search. Default 25." }, "jobType": { "title": "Job type filter", "enum": [ "", "fulltime", "parttime", "contract", "temporary", "internship" ], "type": "string", "description": "Limit to one employment type.", "default": "" }, "experienceLevel": { "title": "Experience level filter", "enum": [ "", "entry_level", "mid_level", "senior_level" ], "type": "string", "description": "Filter to a specific seniority level.", "default": "" }, "remoteOnly": { "title": "Remote jobs only", "type": "boolean", "description": "When ON, only fully remote jobs are returned.", "default": false }, "maxConcurrency": { "title": "Max concurrency", "minimum": 1, "maximum": 20, "type": "integer", "description": "Number of parallel requests. Default 5 is safe; higher values speed up large runs but increase the chance of soft-blocks. Cap 20.", "default": 5 }, "proxyConfiguration": { "title": "Proxy", "type": "object", "description": "Apify proxy configuration. Residential proxies are strongly recommended; datacenter IPs get challenged faster.", "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 Indeed 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: