Indeed job scraper
Pricing
from $0.98 / 1,000 indeed scrapers
Indeed job scraper
Extract job listings from Indeed at scale. Get titles, companies, salaries, locations, descriptions, and posting dates in clean JSON/CSV. Search by keyword, location, or job type — no coding required. Fast, reliable, and built to handle pagination and anti-blocking automatically.
Pricing
from $0.98 / 1,000 indeed scrapers
Rating
0.0
(0)
Developer
Jordan Byte
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Indeed Jobs Scraper (Apify Actor)
Scrapes job listings from Indeed by talking directly to Indeed's internal GraphQL API (the same one Indeed's own mobile app uses) — no headless browser, so it's fast and cheap to run on Apify's compute units.
Input
All fields are set from the Actor's input UI (or INPUT.json for local
runs) — nothing is hardcoded.
| Field | Type | Default | Notes |
|---|---|---|---|
search | string | — | Required. Job title / keywords. |
location | string | "" | City, state, or zip. Empty = nationwide. |
country | select | usa | usa / uk / canada / india / australia / germany / france |
distance | integer | 50 | Search radius in miles. |
remote | boolean | false | Remote jobs only. |
job_type | select | (any) | fulltime / parttime / contract / internship |
hours_old | integer | (none) | Only jobs posted within N hours. Overrides job_type/remote (Indeed API limitation). |
results | integer | 100 | Max jobs to scrape. |
offset | integer | 0 | Skip first N results. |
markdown_descriptions | boolean | false | Keep raw HTML descriptions instead of plain text. |
proxyConfiguration | object | Apify Residential proxy | Recommended for larger runs. |
Output
Each job is pushed as one row to the default dataset with the fields:
url, title, employer, companyUrl, companyUrlDirect, datePosted, employmentType, isRemote, description, jobLocation, city, state, country, salary, salaryMin, salaryMax, salaryCurrency, salaryInterval, applyLink, logoUrl, companyIndustry, companyNumEmployees, companyRevenue, companyDescription, emailsDownload results from the Run's Dataset tab as JSON / CSV / Excel / etc.
Running locally
pip install -r requirements.txtapify run
Put your test input in storage/key_value_stores/default/INPUT.json, e.g.:
{"search": "motorsport","location": "","country": "uk","distance": 50,"results": 50}
Running tests
pip install -r requirements-dev.txtpytest test/ -v
Tests run against fixtures captured from real Indeed API responses
(test/fixtures/), including edge cases seen in production data such as a
null employer and jobs with no salary listed.
Notes
- This relies on an internal, unofficial Indeed API and static API key extracted from Indeed's mobile app traffic. Indeed can change or block this at any time without notice — there's no SLA.
- For higher volumes, turn on the proxy configuration in the input to reduce the chance of rate limiting.
- No database, email, or Slack integrations — this is a clean, stateless actor: input in, dataset out, exactly what the Apify platform (and Store buyers) expect.

