Indeed Scraper — Jobs, Salaries & Company Data
Pricing
from $0.06 / 1,000 job scrapeds
Indeed Scraper — Jobs, Salaries & Company Data
Scrape Indeed jobs in 59 countries from $0.07 per 1,000 — title, company, structured salary, coordinates, skills, benefits, education, certifications and company enrichment. Reads Indeed's own API: no browser, minutes not hours. Pay per result.
Pricing
from $0.06 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
bootforge
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
13 days ago
Last modified
Categories
Share
Indeed Job Scraper
The Indeed Job Scraper is an Apify actor that extracts job listings from Indeed by keyword search or pre-built search URL, across 59 country storefronts — including the United States, United Kingdom, Canada, Germany, France, Japan, India, Singapore, Brazil, Mexico and Australia. It returns title, company, structured salary (min, max, currency, pay period), location with latitude/longitude, workplace type, full description (text + HTML), posting date, and company enrichment — website, social links, industry, CEO, and employer size tier.
It queries Indeed's own job-search API — no browser, no CAPTCHA service, no rendering. A 200-job run with full descriptions finishes in minutes on the 512 MB default, which is also why it costs so little to run.
Use it to build an ATS feed, run job-market research, benchmark salaries, generate recruitment leads, or track competitor hiring — exported to JSON, CSV, or Excel.
Table of contents
- What the Indeed scraper does
- Use cases
- How to scrape Indeed jobs
- Indeed scraper input
- Indeed job data output
- How much it costs
- Recommended proxies for Indeed
- Why this Indeed scraper
- FAQ
- Rate this actor
- Related actors
What the Indeed scraper does
- 🔎 Keyword search — search any term and paginate through every matching job across 59 countries.
- 🔗 Pre-built search URLs — paste a filtered Indeed URL from your browser; the country is auto-detected from the host.
- 💷 Structured salary —
min,max,currency, andperiod(yearly/monthly/weekly/daily/hourly) parsed from the raw text, not left as a free string. - 📍 Geo coordinates —
latitude/longitudeplus city, region and postal code on every job, so results map and radius-filter directly. - 🏢 Company enrichment — website, Twitter/Instagram/Facebook, industry, CEO, HQ and Indeed employer size tier, alongside the rating breakdown.
- 🧠 Skills, benefits, education, certifications — Indeed ships these as one flat untyped bag; we split it into separate fields so you can filter on them.
- 🧩 Server-side filters — date posted, job type, workplace type and salary floor are applied by Indeed, so you don't pay to fetch rows you'd throw away.
- ⚡ No browser — the run reads Indeed's API, so it needs 512 MB and finishes in minutes instead of hours.
- 📄 Full descriptions — optional per-job detail fetch for the complete description in both text and HTML.
Use cases
ATS and job-board feeds — Structured salary (min, max, currency, pay period) rather than a free-text string is what makes listings comparable and sortable. Full description in both text and HTML means the same row serves a parser and a rendered job page.
Salary benchmarking by role and market — Ten country storefronts from one input makes it practical to compare what a title pays in the US against the UK, Germany, or Australia without running four different tools.
Competitor hiring intelligence — What a company is hiring for, and where, is a reliable read on what it's building. Workplace type, posting dates, and the is_high_volume_hiring flag show whether a team is expanding or backfilling.
Recruitment lead generation — Companies posting heavily in a niche are the ones with budget to fill roles. Every row carries the company's own website, industry and size tier, so a job feed doubles as a lead list without a second enrichment step.
Mapping and radius analysis — latitude/longitude on every job means results plot straight onto a map, or filter by true distance rather than by matching a location string.
How to scrape Indeed jobs
- Click Try for free and open the actor.
- Enter one or more
search_queriesor pastesearch_urls. - Choose your
country(59 storefronts — see the list below) and optionallocation. - Optional: add filters (
job_type,workplace_type,date_posted,salary_min). - Click Start and watch results stream into the dataset.
- Export as JSON, CSV, or Excel, or pull from the Apify API.
Search by keyword:
{"search_queries": ["python developer"],"country": "US","location": "New York","date_posted": "week","max_results": 200}
Scrape a filtered search URL (country auto-detected from the host):
{"search_urls": ["https://uk.indeed.com/jobs?q=data+scientist&l=London&sc=0kf%3Aattr(DSQF7)%3B"],"fetch_descriptions": true}
Indeed scraper input
| Field | Type | Default | Description |
|---|---|---|---|
search_queries | string[] | — | Keywords to search. At least one of queries or URLs is required. |
search_urls | string[] | — | Pre-built Indeed search URLs; country auto-detected from the host. |
country | enum | US | Storefront — 59 supported (see below). Each maps to a country TLD (US → indeed.com, GB → uk.indeed.com, SG → sg.indeed.com). |
location | string | — | City, state, postcode, or Remote. |
job_type | enum | — | full-time, part-time, contract, temporary, internship. |
workplace_type | enum | — | remote, hybrid, on-site. |
date_posted | enum | — | 24h, 3d, week, 2weeks. |
salary_min | int | — | Annual salary floor, in the country's currency. |
fetch_descriptions | bool | true | Fetch the detail page for each job's full description (text + HTML). |
max_results | int | 200 | Cap across all queries (hard limit 10,000). |
max_concurrency | int | 8 | In-flight requests (1–20). Higher = faster but more blocking risk. |
max_requests_per_minute | int | 60 | Request-rate ceiling across all workers. |
request_delay | int | 0 | Fixed delay (seconds) between requests. |
proxyProvider | object | Apify residential | default (residential proxy included), dataimpulse, apify, custom (uses proxyUrls), or disabled. |
proxyUrls | object | Apify residential | Your own gateway URLs, one per entry. Only read when proxyProvider is custom. |
proxy | object | Apify residential | Proxy configuration (see below). |
Indeed job data output
Each job is one dataset row. Sample from a live run:
{"job_id": "a499aa89f203fdc0","url": "https://www.indeed.com/viewjob?jk=a499aa89f203fdc0","title": "Senior Data Engineer","company_name": "Wells Fargo","company_url": "https://www.indeed.com/cmp/Wells-Fargo","company_rating": 3.6,"company_review_count": 47727,"company_logo_url": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/0eeb19f54dae27ec1c6fcf27c9e62781","company_id": "8b979ddd69dc88d9","company_tier": "ENTERPRISE","company_website": "https://www.wellsfargojobs.com/en/well-life/","company_twitter": "https://twitter.com/WellsFargo","company_instagram": "https://www.instagram.com/wellsfargo","company_facebook": "https://www.facebook.com/wellsfargo","company_industry": null,"company_ceo": "Charlie Scharf, CEO and President","company_hq": "San Francisco, CA","rating_count": 47726,"rating_work_life_balance": 3.6,"rating_management": 3.3,"location": "Iselin, NJ 08830","workplace_type": "hybrid","employment_type": "Full-time","latitude": 40.56443,"longitude": -74.32623,"city": "Iselin","region": "NJ","postal_code": "08830","ref_num": "JOB_POSTING-3-942563_LOCATION_JP109348","employer_url": "https://wd1.myworkdaysite.com/recruiting/wf/WellsFargoJobs/job/CHARLOTTE-NC/Senior-Data-Engineer_R-555078","occupations": ["Data & Database Occupations", "Technology Occupations", "Data Developers"],"language": "en","is_expired": false,"is_urgent_hire": false,"is_high_volume_hiring": false,"salary_min": 100000.0,"salary_max": 196000.0,"salary_currency": "USD","salary_period": "yearly","salary_raw": "$100,000 - $196,000 a year","description_text": "About this role:\n\nWells Fargo is seeking a Senior Data Engineer within the Commercial & Corporate & Investment...","description_html": "<div><p><b>About this role:</b></p><p></p><p>\nWells Fargo is seeking a Senior Data Engineer...</p></div>","posted_relative": "Today","posted_iso": "2026-08-10T05:00:00Z","apply_url": "http://www.indeed.com/rc/clk?jk=a499aa89f203fdc0&bb=L7_w5bPNrKxToieJbdKwVASLRF7...","country": "US","scraped_at": "2026-08-10T18:21:20+00:00"}
| Field | Description |
|---|---|
job_id, url | Indeed job key and canonical view URL. |
title, company_name | Always present (empty-value cards are dropped, not shipped). |
company_url, company_rating, company_review_count, company_logo_url | Company page, star rating, review count and logo. |
company_id, company_tier | Indeed's own employer key (a stable join key across jobs) and the employer's plan tier (ENTERPRISE, FREE, …). |
company_website, company_twitter, company_instagram, company_facebook | The employer's own site and social profiles, where Indeed holds them. |
company_industry, company_ceo, company_hq | Firmographics from the Indeed company profile. |
rating_count, rating_work_life_balance, rating_management | Rating breakdown behind the headline company_rating. |
location, workplace_type, employment_type | Job metadata. workplace_type is remote/hybrid/on-site; employment_type is Full-time, Contract, Internship, etc. |
latitude, longitude, city, region, postal_code | Resolved geo for the posting. |
ref_num | The employer's own requisition ID from their ATS — the key to join against an internal system. |
employer_url | The job on the employer's own careers site (Workday, Greenhouse, …), as opposed to apply_url's Indeed redirect. |
occupations | Indeed's normalized occupation taxonomy for the role. |
skills | Skills the posting asks for, e.g. Python, Terraform, Communication skills. |
benefits | Benefits offered, e.g. Health insurance, 401(k) matching, Paid time off. |
education | Education requirements, e.g. Bachelor's degree in computer science. |
certifications | Licences and certifications, e.g. RN License, Driver's License. |
schedule | Shift pattern, e.g. Monday to Friday, Night shift, On call. |
experience_level | Entry level, Mid-level or Senior level (the most senior stated). |
experience_years | Years of experience required, as an integer. |
language, is_expired | Posting language and whether Indeed has expired the listing. |
is_urgent_hire, is_high_volume_hiring | Indeed's hiring-demand signals. |
salary_min, salary_max, salary_currency, salary_period, salary_raw | Structured salary plus the original text. |
description_text, description_html | Full description (only when fetch_descriptions is on). |
posted_relative, posted_iso, apply_url | Posting metadata. |
country, scraped_at | Storefront and capture timestamp. |
Fields Indeed doesn't surface on a given job are emitted as null rather than fabricated — fill rates are tracked over time and extractors are added as patterns stabilize.
How much it costs
This actor uses pay-per-event pricing — you pay for what you scrape, not for time.
| Event | USD |
|---|---|
| Actor start (per GB memory) | $0.0005 |
| Job scraped — Free / Bronze | $0.00007 |
| Job scraped — Silver and above | $0.00006 |
| Typical run (default 512 MB) | Cost |
|---|---|
| 200 jobs | ~$0.02 |
| 1,000 jobs | ~$0.07 |
| 10,000 jobs | ~$0.70 |
| 100,000 jobs | ~$7.00 |
The run defaults to 512 MB, so the start fee is a single $0.0005 event however long the run is. No browser is launched, so what you pay is the per-job price, not compute time.
Recommended proxies for Indeed
A proxy is optional. The proxy input prefills Apify Proxy residential, which works out of the box, but the API path does not depend on it. Residential IPs are worth keeping on large runs — Indeed rate-limits them far less aggressively than datacenter ranges.
If you run your own scrapers outside Apify and need residential proxies for job boards, we use DataImpulse (referral link) — pay-as-you-go residential IPs with per-country targeting and no monthly minimum.
Why this Indeed scraper
- Richer rows than a SERP scrape — geo coordinates, employer requisition ID, the company's own website and socials, industry, size tier and the direct ATS link all come back on the same row, because the actor reads Indeed's API rather than parsing the search page.
- Filters cost you nothing — date, job type, workplace type and salary floor are applied by Indeed before results are returned, so you aren't billed for rows you'd discard client-side.
- Fast and small — no browser, no CAPTCHA service, 512 MB. Runs finish in minutes, which is why the run-start fee is one event rather than four.
- Structured salary — min/max/currency/period parsed from raw pay text, with the original string kept as
salary_raw. - Two input modes — keyword search or a pasted, pre-filtered search URL with the country auto-detected.
- Validated output — every row is Pydantic-validated; mis-extracted cards (empty title/company, inverted salary range, out-of-range rating) are dropped, not shipped.
- Open source — the underlying
indeed-scraperPython package ships a Typer CLI and a FastAPI server; the Apify wrapper is a thin layer.
FAQ
How fast is a run? A 200-job run with full descriptions takes a few minutes; the actor reads Indeed's API, so there is no page render and no CAPTCHA step. If you need it faster, raise max_requests_per_minute and max_concurrency; if you see blocks, lower them.
How does this scraper handle Cloudflare? It doesn't have to — the API path this actor uses isn't behind Cloudflare's challenge, and no browser or third-party CAPTCHA service is involved.
Which proxies work best for Indeed? A proxy is optional and Apify residential works out of the box. On large runs prefer residential IPs with per-country targeting — datacenter ranges get rate-limited sooner. For your own scrapers we recommend DataImpulse.
Which countries are supported? 59 storefronts:
United States (US), United Kingdom (GB), Canada (CA), Australia (AU), Ireland (IE), Germany (DE), France (FR), Italy (IT), Netherlands (NL), Spain (ES), United Arab Emirates (AE), Argentina (AR), Austria (AT), Belgium (BE), Bahrain (BH), Brazil (BR), Switzerland (CH), Chile (CL), Colombia (CO), Costa Rica (CR), Czechia (CZ), Denmark (DK), Ecuador (EC), Egypt (EG), Finland (FI), Greece (GR), Hong Kong (HK), Hungary (HU), Indonesia (ID), Israel (IL), India (IN), Japan (JP), South Korea (KR), Kuwait (KW), Luxembourg (LU), Mexico (MX), Malaysia (MY), Nigeria (NG), Norway (NO), New Zealand (NZ), Oman (OM), Panama (PA), Peru (PE), Philippines (PH), Pakistan (PK), Poland (PL), Portugal (PT), Qatar (QA), Romania (RO), Saudi Arabia (SA), Sweden (SE), Singapore (SG), Thailand (TH), Turkey (TR), Taiwan (TW), Ukraine (UA), Uruguay (UY), Vietnam (VN), South Africa (ZA)
Each maps to a country-specific Indeed TLD. Need another? Open an issue — adding one is a small change.
Can I just paste an Indeed search URL? Yes. Use search_urls after applying filters on Indeed.com. The country is auto-detected from the URL host (e.g. uk.indeed.com → GB), so you don't need to set country separately.
Why are some fields empty? They simply aren't on every listing: roughly a fifth of jobs carry no employment-type chip, and not every employer has a company profile. Missing fields are emitted as null rather than fabricated.
Is scraping Indeed legal? This actor collects only publicly available job-listing data. You are responsible for complying with Indeed's terms and applicable laws. Do not collect personal data without a lawful basis.
Rate this actor ⭐
If the Indeed Job Scraper saved you time, please leave a review on its Apify Store page — ratings help other people find it and tell us what to build next. Hit a bug or missing field? Open an issue or contact us through the actor's Issues tab and we'll fix it fast — recency and reliability are what keep this actor ranking.
Related actors
Building a full job-market pipeline? Pair this actor with our other scrapers — same proxy config format, same Pydantic-validated output, all open source.
- LinkedIn Jobs Scraper — scrape LinkedIn job listings with company enrichment, salary, and recruiter info. The natural pair for cross-board coverage.
- LinkedIn Profile Scraper — scrape LinkedIn profiles for sourcing and recruitment lead-gen.
- TikTok Shop Product Scraper — e-commerce product and pricing intelligence.