Indeed Jobs Scraper
Pricing
from $4.00 / 1,000 dataset items
Indeed Jobs Scraper
Scrape Indeed job listings at scale — job title, company, ratings, location, salary range, full description and apply links — across 25 country sites. Structured JSON ready for Sheets, your ATS or CRM. Ideal for recruiters, job boards and labor-market research. Pay only for the results you get.
Extract structured job data from Indeed — the world's largest job site — by keyword, location and country. Get job titles, companies, salary ranges, company ratings, full descriptions and apply links as clean JSON, ready for your ATS, CRM, spreadsheet or data pipeline.
No Indeed login, no browser automation to maintain — just fast, structured results across 25 Indeed country sites.
Who uses this
- Recruiters & staffing agencies — build talent-market maps, monitor which roles competitors are hiring for, and feed openings into your ATS.
- Job boards & aggregators — supplement your inventory with fresh Indeed postings, deduplicated and normalized.
- Labor-market & HR analysts — track hiring demand, salary benchmarks and remote-work trends by role, city and country.
- PropTech / SaaS / AI developers — a stable JSON schema to power job-search products, salary tools and AI agents.
Output fields
| Field | Type | Description |
|---|---|---|
jobkey | string | Indeed's unique job identifier |
title | string | Job title |
company | string | Employer name |
company_rating | number | Employer star rating (0–5) |
company_review_count | number | Number of employer reviews |
location | string | Formatted job location |
city / state / postal_code / country | string | Parsed location parts |
remote | boolean | Whether the job is remote |
salary_min / salary_max | number | Salary range when published |
salary_currency | string | Salary currency |
salary_unit | string | Pay period (year, hour, …) |
salary_text | string | Salary as shown on Indeed |
employment_type | string | Full-time, contract, etc. (detail mode) |
job_types | array | Job-type tags |
snippet_text | string | Short summary from the search card |
description_text | string | Full job description (detail mode) |
posted_relative | string | e.g. "3 days ago" |
date_posted | string | ISO date the job was posted (detail mode) |
sponsored | boolean | Whether the listing is a paid ad |
indeed_applyable | boolean | Whether Easy Apply is available |
url | string | Link to the job on Indeed |
scraped_at | string | ISO-8601 timestamp of extraction |
High-value use cases
- Competitive hiring intelligence — track a competitor's open roles by searching their company name and location weekly.
- Salary benchmarking — collect
salary_min/salary_maxfor a role across cities to build compensation bands. - Lead lists for staffing — pull fresh openings in a niche (e.g. "registered nurse", "Dallas, TX") and route them to recruiters.
- Remote-work trend tracking — filter
remote=trueroles over time. - AI job-search assistants — feed normalized JSON to an LLM to answer "find me senior Python jobs in Berlin posted this week".
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | — | Required. Job title or keywords. |
location | string | — | City, state, ZIP or "Remote". |
country | enum | us | Which Indeed country site to search (25 supported). |
maxItems | integer | 50 | Stop after this many jobs. |
fetchDetails | boolean | false | Enrich each job with full description, precise salary and address. |
jobType | enum | any | Full-time, part-time, contract, temporary, internship. |
maxAgeDays | integer | — | Only jobs posted within N days. |
radius | integer | — | Search radius around the location. |
sort | enum | relevance | relevance or date (newest first). |
includeSponsored | boolean | true | Include promoted job ads. |
proxyConfiguration | object | Residential | Proxy settings — use Residential. |
Example input
{"query": "software engineer","location": "New York, NY","country": "us","maxItems": 50,"fetchDetails": true,"sort": "date","proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
Example output
{"jobkey": "a1b2c3d4e5f6","title": "Senior Software Engineer","company": "Acme Corp","company_rating": 4.1,"company_review_count": 320,"location": "New York, NY 10003","city": "New York","state": "NY","country": "us","remote": false,"salary_min": 140000,"salary_max": 180000,"salary_currency": "USD","salary_unit": "YEAR","salary_text": "$140,000 - $180,000 a year","employment_type": "FULL_TIME","snippet_text": "We are looking for a senior engineer to...","posted_relative": "2 days ago","indeed_applyable": true,"url": "https://www.indeed.com/viewjob?jk=a1b2c3d4e5f6","scraped_at": "2026-07-17T12:00:00+00:00"}
Scheduling & integrations
- Schedule runs (hourly/daily/weekly) from the Apify Console to keep a fresh jobs feed.
- Webhooks notify your app when a run finishes.
- Export to Google Sheets, Make, Zapier, Amazon S3 or pull via the Apify API.
MCP / AI assistants
Prefer live access from an AI assistant (Claude, Cursor, ChatGPT)? Use the companion Indeed MCP Server actor, which exposes job search, detail lookup and location autocomplete as Model Context Protocol tools.
FAQ
How many jobs can I get per search?
Indeed gates anonymous access beyond roughly the first result page per query
(~15–45 jobs including sponsored). To collect more, vary query, location,
jobType, maxAgeDays and country across runs — this also yields broader,
less-duplicated coverage.
Why should I use Residential proxies? Indeed is protected by Cloudflare and blocks datacenter IPs. Residential proxies make requests look like real users and dramatically improve reliability.
Is the data fresh? Yes — every run fetches live pages directly from Indeed at run time.
Do I need an Indeed account or API key? No. The actor reads publicly visible job pages.
Is scraping Indeed legal? The actor collects only publicly available job postings. You are responsible for complying with Indeed's terms and applicable laws in your jurisdiction.
Something broke — how fast is support? Report issues on the actor's Issues tab; fixes are typically shipped quickly.