Indeed Jobs Scraper
Scrape job postings from 13 Indeed country sites - titles, employers with rating and review count, locations, salary where published, remote flag.
Scrape job postings from 13 Indeed country sites - titles, employers with rating and review count, locations, salary where published, remote flag. No recruiter or applicant data, ever.
$4.00 / 1,000 · 100.0% success over 11 public runs in the last 30 days.
Run it on Apify → Free to try - runs bill per result on your own account.
What you give it
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
what |
string | What to search for, exactly as you would type it on Indeed. | software engineer |
where |
string | City, region or postal code. Leave empty to search the whole country. | Berlin |
country |
string | Which Indeed site to search. | us |
radiusKm |
integer | How far around the location to look. Ignored without a location. | - |
postedWithinDays |
integer | Only jobs posted in the last N days. | - |
remoteOnly |
boolean | Only postings Indeed flags as remote. | False |
sortByDate |
boolean | Sort by date instead of by Indeed's relevance ranking. | False |
maxItems |
integer | Stop after this many jobs. | 200 |
What you get back
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
A real result row from a recent run:
{
"city": "Berlin",
"companyName": "MaibornWolff GmbH",
"companyRating": 5,
"companyReviewCount": 4,
"dateListed": "2026-09-14T13:22:41.929Z",
"datePosted": "2026-09-14T05:00:00.000Z",
"isRemote": false,
"isSponsored": true,
"jobId": "9d296cb04b5eb30a",
"jobTypes": [
"Vollzeit",
"Teilzeit"
],
"location": "10117 Berlin",
"postCode": "10117",
"postedLabel": "vor 11 Tagen",
"region": "BE",
"salaryCurrency": "EUR",
"salaryMax": null,
"salaryMin": null,
"salaryPeriod": null,
"salaryText": null,
"snippet": "Unser 15-köpfiges Data Engineering & BI-Team transformiert unsere Kunden zu datengetriebenen Unternehmen. In unseren Projekten bewerten wir ...",
"title": "Senior Data Engineer (m/w/d)",
"url": "https://de.indeed.com/viewjob?jk=9d296cb04b5eb30a"
}
| Field | Type | Meaning |
|---|---|---|
jobId |
string | Indeed job key. |
title |
string | Job title as posted. |
url |
string | Job page URL, tracking stripped. |
companyName |
['string', 'null'] | Employer's name. |
companyRating |
['number', 'null'] | Employer rating on Indeed, when rated. |
companyReviewCount |
['number', 'null'] | How many reviews that rating rests on. |
location |
['string', 'null'] | Location as displayed. |
city |
['string', 'null'] | City. |
region |
['string', 'null'] | State or region code. |
postCode |
['string', 'null'] | Postal code when given. |
isRemote |
boolean | Indeed's remote flag. |
datePosted |
['string', 'null'] | When the job was posted (ISO 8601, UTC). |
dateListed |
['string', 'null'] | When this listing entered Indeed's index. |
postedLabel |
['string', 'null'] | Indeed's own relative wording, in the site's language. |
jobTypes |
array | Employment types as Indeed tags them. |
snippet |
['string', 'null'] | Listing summary, markup stripped. |
salaryText |
['string', 'null'] | Salary exactly as published. |
salaryMin |
['number', 'null'] | Lower bound when Indeed extracted one. |
salaryMax |
['number', 'null'] | Upper bound when Indeed extracted one. |
salaryCurrency |
['string', 'null'] | Salary currency. |
salaryPeriod |
['string', 'null'] | YEARLY, MONTHLY or HOURLY when published. |
isSponsored |
boolean | Paid placement flag. |
Health
100.0% success over 11 public runs in the last 30 days. Live record, failures included: status page.
Full documentation, examples and the AI-assistant prompt live on the store page.