Indeed job scraper avatar

Indeed job scraper

Pricing

from $0.98 / 1,000 indeed scrapers

Go to Apify Store
Indeed job scraper

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

Jordan Byte

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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.

FieldTypeDefaultNotes
searchstringRequired. Job title / keywords.
locationstring""City, state, or zip. Empty = nationwide.
countryselectusausa / uk / canada / india / australia / germany / france
distanceinteger50Search radius in miles.
remotebooleanfalseRemote jobs only.
job_typeselect(any)fulltime / parttime / contract / internship
hours_oldinteger(none)Only jobs posted within N hours. Overrides job_type/remote (Indeed API limitation).
resultsinteger100Max jobs to scrape.
offsetinteger0Skip first N results.
markdown_descriptionsbooleanfalseKeep raw HTML descriptions instead of plain text.
proxyConfigurationobjectApify Residential proxyRecommended 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, emails
.

Download results from the Run's Dataset tab as JSON / CSV / Excel / etc.

Running locally

pip install -r requirements.txt
apify 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.txt
pytest 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.