Indeed Jobs Scraper 💼 Salaries, Filters & Company Data
Pricing
from $1.20 / 1,000 jobs
Indeed Jobs Scraper 💼 Salaries, Filters & Company Data
Indeed jobs scraper: extract job listings, salaries, company details and full job descriptions. Native salary-range filter (+ remote, date, type, level), every result page, structured JSON, 60+ countries, no login. $2/1K, $5 free credit ≈ 2,500 jobs.
Pricing
from $1.20 / 1,000 jobs
Rating
5.0
(3)
Developer
FactDen
Maintained by CommunityActor stats
4
Bookmarked
11
Total users
5
Monthly active users
0.07 hours
Issues response
13 hours ago
Last modified
Categories
Share
Indeed Jobs Scraper | Salaries, Filters & Company Data API (2026)
Scrape Indeed job listings at scale — with salaries, full descriptions, and free company profiles — across 60+ countries. This Indeed scraper is the only one with a native salary-range filter, it returns every result page (not just the first), and it enriches each employer with a free company profile in a separate dataset.
⚡ No login, no proxy setup, no anti-bot tuning, no CAPTCHA work — it's a pure-API scraper (no fragile browser/HTML path), all handled inside the actor.
💰 $2 / 1,000 jobs · company profiles are free · free trial. New Apify users get a $5 credit (~2,500 jobs) on the first run.
Contents: What's different · Indeed API vs this · Use cases · Input · Output · Pricing · FAQ
What's different about this Indeed scraper
Most Indeed scrapers do the same basic search. These are the things competitors don't offer:
- 🏆 Native salary-range filter — filter at the source by minimum/maximum annual salary. Almost every other scraper makes you pull everything and filter afterward.
- 🏆 Every result page — auto date-window sharding breaks past Indeed's ~1,000-result depth ceiling, with honest retrieved-vs-estimated coverage reporting (no silent truncation).
- 🏆 Free company profiles — rating, review count, company size, industry, CEO, founded, revenue, website, and socials, in a separate dataset you're not billed for.
- 🏆 Pure-API & reliable — talks to Indeed's structured API, not a scraped HTML page, so there's no browser/Cloudflare surface to break.
Quick start (30 seconds): open the Input tab (it's pre-filled), set a keyword + location, click Start. Results stream into the Output tab — download as JSON, CSV, or Excel.
No-setup checklist — what other scrapers make you handle yourself:
- No login or Indeed account (public data only)
- No proxy configuration (Apify proxy bundled)
- No anti-bot tuning (handled inside the actor)
- No CAPTCHA handling
- No code for the form-based flow
Indeed's official API vs this scraper
Indeed's Publisher API is closed to new applicants and never exposed job-search filters or company data the way this actor does.
| Indeed Publisher API | This actor | |
|---|---|---|
| Access | Closed / approval-gated | Apify account (free signup) |
| Setup time | Application + review | ~30 seconds |
| Salary-range filter | — | ✅ native |
| All result pages (past the ~1,000 cap) | — | ✅ auto date-sharding |
| Free company profiles | — | ✅ separate dataset, unbilled |
| Remote / date / type / level filters | limited | ✅ |
| Schedule / webhook delivery | bring your own | ✅ native via Apify |
What does the Indeed Jobs Scraper do?
Enter a search (or paste Indeed search/job URLs, or job keys) and it returns:
- Jobs — one structured row per listing, with the full description inline (no extra request).
- Companies (optional, free) — one deduped row per unique employer, with profile + ratings + firmographics.
Output renders in the run's Output tab with a dataset dropdown (Jobs / Companies). Download as JSON, CSV, or Excel, or pull via the Apify API.

Who it's for
- Recruiting & sourcing — monitor live openings by role, location, and company; build talent pipelines.
- Salary benchmarking — per-job pay ranges and compensation trends by title + market (with the native salary-range filter).
- Market & competitive research — track competitor hiring activity, hiring demand, company growth, and ratings.
- Skills & labor-market analysis — measure demand for specific skills, roles, and experience levels by region.
- Lead generation — find companies actively hiring, with firmographics.
- Data enrichment & ML — append company ratings/firmographics to your datasets, or feed job-recommendation/matching models and academic employment research.
More ideas on Apify's industry pages.
Common use cases
Salary benchmarking for a role and market
Use the native salary-range filter — the only Indeed scraper that supports this at the source. Pull 500 listings for a specific title and location, then analyze salary distribution across companies, regions, and experience levels. No post-download filtering needed.
{ "query": "software engineer", "location": "San Francisco, CA", "salaryMin": 150000, "maxItems": 500 }
Monitor new job postings daily
Run on a schedule with datePosted: "1" and sort: "date" to catch postings from the last 24 hours. Pair with an Apify webhook to push new listings directly into Slack, a Google Sheet, or your ATS the moment each run completes.
{ "query": "data analyst", "location": "Remote", "remote": "remote", "datePosted": "1", "sort": "date" }
Jobs + free company data for lead generation
Set scrapeCompany: true and you get a free second dataset with each employer's rating, size, industry, CEO, revenue, and website — joinable to jobs by companyKey. Useful for finding fast-growing companies hiring in your niche.
{ "query": "registered nurse", "location": "Chicago, IL", "scrapeCompany": true, "maxItems": 200 }
Refresh known listings by job key
If you already have jk= values from a previous run or Indeed URL, pass them via jobKeys for a fast exact lookup — no search needed.
{ "jobKeys": ["6e4040455f842cbd", "cc2175979cc7dfce"], "scrapeCompany": true }
Track a competitor's hiring activity
Paste Indeed company-search URLs directly into startUrls to monitor exactly which roles a specific employer is filling. Combine with scheduling to detect when competitors open new engineering, sales, or leadership roles.
Scrape jobs across multiple countries
The country field switches between 60+ Indeed country indexes. Run the same keyword across US, UK, CA, and AU in parallel using Apify task chaining to build a global salary and demand picture for a role.
How to scrape Indeed jobs
- Click Try for free on the Apify Store page.
- Enter a search keyword (job title, skills, or company) and a location (city, state, postal code, or "remote"). Or paste Indeed search/job URLs directly into
startUrls, or pass job keys viajobKeysfor exact lookups. - Pick a country (60+ supported). The country switches the Indeed regional index — make sure your location matches.
- Set optional filters: salary range (
salaryMin/salaryMax), remote/hybrid, date posted, job type, experience level. - Toggle Company profiles on (default) to get a free second dataset with employer firmographics.
- Click Start. Results stream into the Output tab in real time — switch the dropdown between Jobs and Companies to inspect either dataset.
- Download as JSON, CSV, Excel, or pull via the Apify API.
Typical run speed: ~500 jobs/minute. A 1,000-job run finishes in roughly 2 minutes and costs ~$2.01.
Input
| Field | Type | Notes |
|---|---|---|
query | string | Job title / keywords (e.g. "software engineer") |
location | string | City, region, postal code, or "remote" — must match the chosen country |
country | enum | 60+ Indeed country sites (US, GB, CA, AU, IN, DE, FR, …) |
maxItems | int | Cap per run; 0 = no limit (date-sharded past the ~1,000 ceiling) |
sort | enum | relevance / date |
radius | int | Distance from location (unit auto by country) |
datePosted | enum | last 1 / 3 / 7 / 14 days |
jobType | array | full-time, part-time, contract, temporary, internship, per diem |
remote | enum | remote / hybrid |
experienceLevel | enum | entry / mid / senior |
salaryMin / salaryMax | int | Native annual salary-range filter |
scrapeCompany | bool | Add the free company-profile dataset (default on) |
startUrls | array | Indeed search or job URLs to scrape directly |
jobKeys | array | Indeed jk= values for exact lookup |
Output
Two datasets, joinable by companyKey. Company rows are free — you're billed per job only.
Jobs dataset
One structured row per listing. Key fields: title, company, salary, salaryMin/salaryMax, jobType, remote, datePosted, occupations, description (full text inline), easyApply, url. Download as JSON, CSV, or Excel from the Output tab.
Companies dataset (free)
One deduped row per unique employer — only populated when scrapeCompany is on. Key fields: company, rating, reviewCount, industry, employees, revenue, ceo, founded, website, socials. Not billed — you pay per job row only.

Jobs (one representative row):
{"jobKey": "6d50b3ebeb3fb122","title": "Senior Software Engineer","company": "Plaid","companyRating": 4.1,"companyReviewCount": 312,"companyPageUrl": "https://www.indeed.com/cmp/Plaid","location": "New York, NY","city": "New York", "state": "NY", "countryCode": "US","latitude": 40.7142, "longitude": -74.0059,"salary": "$120,000 - $160,000 a year","salaryMin": 120000, "salaryMax": 160000, "salaryPeriod": "YEAR", "currency": "USD","jobType": ["Full-time"],"occupations": ["Software Development Occupations", "Back End Developers"],"remote": "remote","datePosted": "2026-06-10","benefits": ["Health insurance", "401(k)"],"description": "…full job description…","isUrgentHire": false,"easyApply": true,"url": "https://www.indeed.com/viewjob?jk=6d50b3ebeb3fb122"}
Companies (when scrapeCompany is on — free):
{"companyKey": "2434d16763f36e79","company": "Plaid","rating": 4.1,"reviewCount": 312,"industry": "Internet and Software","employees": "1,001-5,000","revenue": "$100M-$500M","ceo": "Zach Perret","founded": 2013,"website": "https://plaid.com","companyPageUrl": "https://www.indeed.com/cmp/Plaid","facebook": "…", "twitter": "…", "instagram": "…"}

You can download the dataset in JSON, CSV, Excel, or via the API.
Free sample dataset
Want to see the data before you run? Grab a ready-made 1,000-job + 536-company sample (CSV + JSONL), joinable by companyKey. Covers US software engineering roles with salary data and full company firmographics — no Apify account needed.

- HuggingFace: fact-den/indeed-job-postings-2026
- Kaggle: indeed-jobs-2026-salaries-company-data
Pricing — how much does it cost to scrape Indeed?
Pay-per-event: $0.01 per run + $2 per 1,000 job rows. Company-profile rows are free, and platform compute is included (no separate usage charge).
| Example | Cost |
|---|---|
| 100 jobs | ~$0.21 |
| 1,000 jobs | ~$2.01 |
| 10,000 jobs | ~$20.01 |
Tiered discounts apply automatically by Apify plan: $2.00 → $1.80 (Starter) → $1.50 (Scale) → $1.20 / 1,000 on Business (40% off). The Apify Free plan includes $5/month of usage — about 2,500 jobs free every month.
Run on a schedule / Indeed jobs API
This actor doubles as an Indeed jobs API — call it from the Apify API or the Python / JS clients, and use Apify Schedules + Webhooks for incremental pulls (set datePosted to the last day and run daily).
Python
from apify_client import ApifyClient# Get your token from https://console.apify.com/account/integrations?fpr=factdenclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("factden/indeed-jobs-scraper").call(run_input={"query": "software engineer", "location": "New York, NY","salaryMin": 150000, "maxItems": 200,})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["title"], job["company"], job.get("salary"))
FAQ
Does this scraper get all jobs or just the first page?
All result pages, up to your maxItems cap. The actor auto-shards by date window to break past Indeed's ~1,000-result depth ceiling, then reports retrieved-vs-estimated totals on every run so you always know your actual coverage. There is no silent truncation — if Indeed returns fewer results than estimated, the run log explains why.
Can I filter Indeed jobs by salary range?
Yes — a native salaryMin/salaryMax filter applied at the source, which most Indeed scrapers don't support. You get only jobs matching the pay band, without downloading everything and filtering afterward. Works on US Indeed; salary filter availability varies by country index and by how many employers post structured pay data.
Is the company data really free?
Yes. Company-profile rows are written to a separate Companies dataset that is not billed — you only pay per job row. The free company data includes rating, review count, industry, employee count, revenue range, CEO, founded year, website, and socials.
What is the occupations field?
Indeed's internal job-category taxonomy assigned per listing (e.g. "Software Development Occupations", "Back End Developers"). It is populated automatically on every job row and is useful for filtering, segmenting, or grouping results by role category without parsing free-text job titles. Multiple occupations can appear per listing when Indeed assigns overlapping categories.
Which countries does this scraper support?
60+ Indeed country indexes — US, UK, CA, AU, IN, DE, FR, NL, ES, IT, JP, and many more. The country field switches the regional Indeed index. Always make sure your location value belongs to the chosen country, otherwise results may be empty or incorrect.
Do I need an Indeed account, API key, or proxy?
No. Only a free Apify account is required. No Indeed login, no API key, and no proxy configuration — Apify's built-in proxy handles all anti-bot requirements automatically. You can run your first scrape in under 30 seconds with zero setup.
How much does it cost to scrape 10,000 Indeed jobs?
$0.01 (run start) + 10,000 × $0.002 = $20.01 at base tier. Company-profile rows are free. Tiered discounts reduce the per-job price: $1.80/1K (Starter) → $1.50/1K (Scale) → $1.20/1K on Business (40% off). The $5 monthly free credit covers ~2,500 jobs.
How do I filter by date posted?
Use the datePosted field: "1" = last 24 hours, "3" = last 3 days, "7" = last 7 days, "14" = last 14 days. Combine with sort: "date" to get newest-first results. For daily monitoring, set datePosted: "1" in a scheduled run to capture only new postings each day.
Can I scrape jobs from a specific company on Indeed?
Yes. Paste Indeed company-search URLs directly into startUrls (e.g. https://www.indeed.com/cmp/Google/jobs) to scrape all open roles from a specific employer. You can also pass jobKeys for exact lookup of known listings by their jk= value — useful for refreshing or monitoring a curated list of specific postings.
How do I run this on a schedule to monitor new jobs?
Open Apify Console → Schedules, add a cron (e.g. 0 8 * * * for 8 AM daily), and set datePosted: "1" in the input override. Wire an Apify webhook on ACTOR.RUN.SUCCEEDED to push new listings into Slack, Google Sheets, or your ATS automatically on each run.
Can I scrape Indeed UK, Australia, or Canada?
Yes. Set country to GB, AU, or CA and use a location that matches. The actor switches to the correct regional Indeed index automatically. Salary filters and company data are supported across all country indexes, though salary data availability varies by country.
Is scraping Indeed legal?
This actor collects only publicly available job data — no logins, no private data, no account credentials. Personal data (names, emails) is not collected. You are responsible for complying with Indeed's Terms of Service and applicable regulations (GDPR, CCPA, etc.) in your jurisdiction. See Apify's guide: is web scraping legal?.
Related Actors
Working with job data and labor market research? These actors pair well with Indeed Jobs Scraper:
Cross-platform job coverage
- LinkedIn Jobs Scraper — LinkedIn job listings with company details; highest user base of any job scraper on Apify
- Glassdoor Jobs Scraper — Glassdoor jobs with company reviews and salary reports in one dataset
- Google Jobs Scraper — Google Jobs aggregator results, which pulls from multiple boards simultaneously
Our other actors
- G2 Reviews Scraper — B2B SaaS competitive intelligence, battlecards, and AI/RAG pipelines
- Trip.com & Ctrip Hotel Reviews Scraper — hotel reviews from both international and Chinese-market sources
Built by factden on the Apify platform. Try the Indeed Jobs Scraper free with Apify's $5 monthly credit.
Keywords: indeed scraper, indeed jobs scraper, indeed api, scrape indeed, indeed job listings, indeed salary scraper, indeed company data, job board scraper.