Indeed Jobs Scraper avatar

Indeed Jobs Scraper

Pricing

from $15.00 / 1,000 searches

Go to Apify Store
Indeed Jobs Scraper

Indeed Jobs Scraper

Search Indeed jobs and get listings: title, company, location, salary, snippet and link. Uses Apify Residential Proxy + stealth to bypass anti-bot. For recruiting and job-market research.

Pricing

from $15.00 / 1,000 searches

Rating

0.0

(0)

Developer

Bruno

Bruno

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Indeed Job Listings Scraper

Search Indeed by keyword + location and get clean, structured job listings — on any Indeed country site (indeed.com, br.indeed.com, uk.indeed.com, …).

What you get

One record per job:

  • title, company, location
  • salary — when Indeed shows one (estimated or posted)
  • job_type — Full-time / Contract / CLT / PJ / …
  • snippet — the job description preview (tags stripped)
  • posted (e.g. "3 days ago") and posted_date (YYYY-MM-DD when available)
  • is_sponsored, company_rating
  • job_key and a direct link (/viewjob?jk=…)
  • query, domain, source (how the record was parsed)

Input

{
"queries": ["software engineer", "data analyst"],
"location": "New York, NY",
"domain": "indeed.com",
"maxItems": 50
}
  • queries (required) — job titles / keywords.
  • location — city / state / ZIP; empty searches the whole country.
  • domain — which Indeed site (indeed.com, br.indeed.com, uk.indeed.com, …). The proxy country is matched to the domain automatically.
  • maxItems — cap per query; the actor paginates &start=N (steps of 10) until reached.
  • country — optional 2-letter proxy country override.

How it works

Indeed is aggressive about bot detection (Cloudflare "Just a moment" / CAPTCHA), so this actor drives a real headless browser (Playwright + stealth) behind an Apify residential proxy with a real user-agent and browser fingerprints. It reads Indeed's embedded window.mosaic.providerData["mosaic-provider-jobcards"] JSON when present (falling back to the visible DOM cards), and paginates with &start=N. If a page is blocked or empty after retries it emits an honest error record rather than inventing jobs.