Indeed Scraper — Jobs, Employers, Reviews & Salaries
Scrape Indeed job listings with full descriptions and parsed salaries — and the employers behind them: company profiles, employee reviews, salary tables, and Q&A, joined on Indeed's own employer id. 62 country domains, no login required.
key features
Both sides of Indeed in one run — jobs and the employers behind them
Joined on Indeed's own employer id, not on company name
Full job descriptions at the base rate, fetched in batches
Every filter verified against a control — non-working ones removed
62 country domains with currency, locale, and distance units handled
Scheduled monitoring — receive only postings new since your last run
use cases
- Recruitment and talent intelligence across roles and markets
- Salary benchmarking from parsed pay and employer salary tables
- Competitor research — open headcount, ratings, and hiring velocity
- Job boards and aggregators needing a clean, deduplicated feed
- Lead generation — every posting is a company spending money to hire
- Candidate matching scored against a skill list
input parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
scrapeMode | string | optional | What to scrape — jobs, companies, or both |
keywords | array | optional | Job titles or search terms |
location | string | optional | City, state, or postcode to search in |
country | string | optional | Indeed country domain (62 supported) |
startUrls | array | optional | Indeed search, job, company, or salary URLs |
includeDescription | boolean | optional | Include the full job description (HTML and text) |
includeCompanyDetails | boolean | optional | Also return employer profiles, reviews, salaries, and Q&A |
strictMatch | boolean | optional | Drop jobs whose title and description don't contain your keywords (Indeed pads results with loosely related and sponsored jobs) |
resumeKeywords | array | optional | Skills from a CV; every job gets a 0-100 match score plus matched and missing skills. Not a search filter |
onlyNewJobs | boolean | optional | Return only postings not seen in previous runs |
maxItems | number | optional | Cap on jobs returned — the hard cap on run spend |
proxyConfiguration | object | optional | Residential proxy recommended |
Output Example
1{
2 "recordType": "job",
3 "source": {
4 "jobKey": "f687cbdb754c430a",
5 "canonicalUrl": "https://www.indeed.com/viewjob?jk=f687cbdb754c430a",
6 "country": "US",
7 "domain": "www.indeed.com",
8 "scrapedAt": "2026-08-27T03:23:45.483Z"
9 },
10 "title": "Registered Nurse (Multiple Openings)",
11 "normalizedTitle": "Registered Nurse",
12 "company": {
13 "name": "AdventHealth Central Texas",
14 "fccId": "11994ad5a40ae7aa",
15 "rating": 3.7,
16 "reviewCount": 4166
17 },
18 "location": {
19 "formatted": "Killeen, TX 76549",
20 "city": "Killeen",
21 "state": "TX",
22 "postalCode": "76549",
23 "country": "US",
24 "isRemote": false
25 },
26 "salary": { "min": 33.28, "max": 61.91, "currency": "USD", "period": "HOURLY", "isEstimate": true }
27}
Five record types share the dataset — jobs, companies, reviews, salaries, and Q&A — told apart by recordType. Jobs join to companies on company.fccId.
Pricing
Pay-per-event — you are billed for the records you keep:
| Event | Price | What it covers |
|---|---|---|
| Job | $0.003 | One job with title, location, parsed salary, and description |
| Job detail (extra) | $0.002 | Optional extra detail beyond the standard record |
| Search request | $0.002 | One search or paging request |
| Company profile | $0.006 | One employer profile with size, revenue, and ratings |
| Company review | $0.004 | One employee review with category ratings |
| Salary record | $0.003 | One salary table row by role and employer |
| Question & answer | $0.003 | One community question with its top answers |
| Employer contact (extra) | $0.01 | Business contact address from the employer’s own site |
Tips
- Scope the search yourself. A query you already narrowed to a city is never silently widened; broad queries are re-run as narrower slices only when you enable widening.
- Use
onlyNewJobsfor monitoring. Skipped postings cost no requests and no charge, so a daily run over a stable query stays cheap. maxItemsis your spend cap. It is the hard ceiling on what a run can charge — set it before raising concurrency.- Turn on
strictMatchwhen feeding a downstream model; padding and sponsored results are the main source of noise in Indeed data.
faq
Can I get jobs and company data in the same run?
How much of a search can it actually collect?
Does it return sponsored and loosely-related postings?
related in ~/business
Google Ads Scraper — Search, YouTube & Shopping Ads
Every Google ad a competitor runs — by domain, advertiser, or brand.
openAnytime Mailbox Scraper — Virtual Mailbox & CMRA Registry
Virtual mailbox locations worldwide, address-verified into a CMRA registry.
openShopify Store Leads — Catalog Size, Apps & Contacts
Qualified Shopify store leads — catalog size, tech stack, and contacts.
open