Indeed Jobs Scraper 💼 Salaries, Filters & Company Data avatar

Indeed Jobs Scraper 💼 Salaries, Filters & Company Data

Pricing

from $1.20 / 1,000 jobs

Go to Apify Store
Indeed Jobs Scraper 💼 Salaries, Filters & Company Data

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

FactDen

Maintained by Community

Actor stats

4

Bookmarked

11

Total users

5

Monthly active users

0.07 hours

Issues response

12 hours ago

Last modified

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 APIThis actor
AccessClosed / approval-gatedApify account (free signup)
Setup timeApplication + 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 filterslimited
Schedule / webhook deliverybring 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.

Indeed Jobs Scraper input form on Apify Console — search keyword, location, country, the native salary-range filter, and a free company-profiles toggle

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

  1. Click Try for free on the Apify Store page.
  2. 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 via jobKeys for exact lookups.
  3. Pick a country (60+ supported). The country switches the Indeed regional index — make sure your location matches.
  4. Set optional filters: salary range (salaryMin/salaryMax), remote/hybrid, date posted, job type, experience level.
  5. Toggle Company profiles on (default) to get a free second dataset with employer firmographics.
  6. Click Start. Results stream into the Output tab in real time — switch the dropdown between Jobs and Companies to inspect either dataset.
  7. 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

FieldTypeNotes
querystringJob title / keywords (e.g. "software engineer")
locationstringCity, region, postal code, or "remote" — must match the chosen country
countryenum60+ Indeed country sites (US, GB, CA, AU, IN, DE, FR, …)
maxItemsintCap per run; 0 = no limit (date-sharded past the ~1,000 ceiling)
sortenumrelevance / date
radiusintDistance from location (unit auto by country)
datePostedenumlast 1 / 3 / 7 / 14 days
jobTypearrayfull-time, part-time, contract, temporary, internship, per diem
remoteenumremote / hybrid
experienceLevelenumentry / mid / senior
salaryMin / salaryMaxintNative annual salary-range filter
scrapeCompanyboolAdd the free company-profile dataset (default on)
startUrlsarrayIndeed search or job URLs to scrape directly
jobKeysarrayIndeed 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.

Indeed Jobs Scraper Jobs output — Overview table with title, company, rating, reviews, job category, location, salary, type, remote, and date-posted columns

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": "…"
}

Indeed Jobs Scraper Companies dataset — free company profiles with rating, review count, employee size, and website, joined to jobs by companyKey

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.

Indeed Jobs Dataset 2026 — 1,000 job postings plus 536 company profiles, with salaries and firmographics

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).

ExampleCost
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=factden
client = 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.

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?.

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


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.