Indeed Job Scraper — ✅ Pay Per Result · Cloudflare-Safe
Pricing
from $5.00 / 1,000 job scrapeds
Indeed Job Scraper — ✅ Pay Per Result · Cloudflare-Safe
Scrape Indeed jobs in 10 countries — title, company, structured salary (min/max/currency/period), location, description, posted date. HTTP-first with browser fallback handles Cloudflare. Filter by date, type, remote, experience, salary. Tiered Pay Per Result pricing.
Pricing
from $5.00 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
bootforge
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
Indeed Job Scraper — Pay Per Result · 50% Cheaper · 10 Countries
Bulk-scrape Indeed job listings with structured salary, full descriptions, and every filter you'd use on the site itself. HTTP-first with automatic browser fallback when Cloudflare challenges — no manual proxy juggling, no captcha headaches.
Use cases: ATS feed building · job-market research · recruitment lead-gen · salary benchmarking · competitor hiring intelligence.
Why this scraper?
- $1.50 per 1,000 jobs — half the price of the leading Indeed scraper, with the same fields.
- 10 country storefronts — US, GB, CA, AU, IE, DE, FR, IT, NL, ES.
- Structured salary — min, max, currency, period (yearly/hourly/etc.) parsed from the raw text.
- Full filter set — date posted, job type, remote/hybrid, experience level, salary floor.
- Cloudflare-safe — HTTP-first with automatic browser fallback when challenged.
- Two input modes — keyword search OR pre-built search URL (paste from your browser).
Input
| Field | Type | Default | Description |
|---|---|---|---|
search_queries | string[] | — | Keywords to search |
search_urls | string[] | — | Pre-built Indeed URLs (country auto-detected) |
country | enum | US | Storefront country |
location | string | — | City / region / "Remote" |
job_type | enum | — | full-time, contract, etc. |
date_posted | enum | — | last 24h, week, etc. |
workplace_type | enum | — | remote, hybrid, on-site |
salary_min | int | — | Annual salary floor |
fetch_descriptions | bool | true | Fetch full description per job |
max_results | int | 200 | Cap (hard limit 10000) |
proxy | object | required | Apify residential or your own |
(One of search_queries or search_urls is required.)
Output (real sample from a live run)
{"job_id": "d39bbe15770aa014","url": "https://www.indeed.com/viewjob?jk=d39bbe15770aa014","title": "Senior Developer I- Full Stack Python Developer (Investment Technology)","company_name": "Neuberger Berman","company_rating": null,"company_review_count": null,"company_logo_url": null,"location": "Hybrid work in New York, NY","workplace_type": null,"employment_type": null,"is_easy_apply": null,"salary_min": 115000.0,"salary_max": 130000.0,"salary_currency": "USD","salary_period": "yearly","salary_raw": "$115,000 - $130,000 a year","description_text": "Neuberger Berman's Investment Technology team is seeking a technically strong, full stack Python developer with 5+ years of experience...","description_html": "<div id='jobDescriptionText' class='jobsearch-JobComponent-description'>...</div>","posted_relative": null,"posted_iso": null,"apply_url": null,"country": "US","scraped_at": "2026-05-07T08:18:24+00:00"}
Pricing
| Event | Price | Notes |
|---|---|---|
| Run start | $0.002 / GB-RAM | Engine setup (HTTP warmup, optional browser launch, first cookies) |
| Per job | $0.0015 | One JobResult |
→ ~$1.50 per 1,000 jobs.
FAQ
How does this handle Cloudflare? The scraper tries HTTP first (cheapest path). When Cloudflare challenges, it transparently escalates to a stealth browser (Camoufox) which solves the challenge automatically. Sticky cookies are reused across requests to amortize the browser cost.
Do I need a residential proxy? Strongly recommended. Datacenter IPs hit Cloudflare challenges on every request, which forces browser fallback (slower & costlier). Residential IPs usually pass at the HTTP layer.
Why isn't country X supported? We support the 10 largest English/European Indeed markets (US, GB, CA, AU, IE, DE, FR, IT, NL, ES). If you need another country, open an issue — adding a country is a 1-line change.
Can I just paste an Indeed search URL?
Yes — use the search_urls input. Country is auto-detected from the URL host (e.g. uk.indeed.com → GB).
Why are some fields like posted_iso or is_easy_apply empty in the sample?
The Indeed DOM doesn't always surface those on every job. We extract what's reliably present; missing fields are emitted as null rather than fabricated. Fill rates are tracked over time and additional extractors are added when patterns stabilize.
Related Actors
- LinkedIn Jobs Scraper — same job-market intelligence, LinkedIn flavor
- LinkedIn Profile Scraper — profile data for sourcing
- Trustpilot Scraper — competitor reviews
- TikTok Shop Product Scraper — e-commerce intelligence