Indeed Jobs Scraper - Listings, Salary & Company avatar

Indeed Jobs Scraper - Listings, Salary & Company

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Indeed Jobs Scraper - Listings, Salary & Company

Indeed Jobs Scraper - Listings, Salary & Company

Scrape Indeed job listings by title + location — job title, company, location, parsed salary (min/max/period), employment type, remote flag, posting date, job URL & apply link. Dedup, filters & a 0-100 job score. No login, no auto-apply. Export CSV/JSON/Excel.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

Flash Scrape

Flash Scrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Categories

Share

This Indeed jobs scraper turns any job search into a clean, analysis-ready feed of job listings — one row per job, with the title, company, location, a parsed salary (min / max / period), employment type, a remote flag, the posting date, the canonical job URL and the external apply link. Search Indeed by job title and location (or paste Indeed search URLs), filter down to the roles worth keeping, and export to CSV, JSON, or Excel.

Built for job seekers, recruiters, job-board aggregators, and labor-market analysts who want a spreadsheet of jobs — not a raw scrape. It reads only public listings: no login, no cookies, and it never auto-applies to anything.


How to scrape Indeed jobs

You don't need an Indeed account, an API key, or any code:

  1. Enter one or more job titles / keywords (e.g. software engineer, registered nurse) and a location (e.g. Austin, TX, or leave blank for the whole country), and pick the country.
  2. The scraper pulls matching listings from Indeed via the proven misceres/indeed-scraper engine.
  3. Each listing is cleaned: the salary string is parsed into numbers, the employment type is normalized, a remote flag is derived, and tracking junk is stripped from the URL.
  4. Duplicates are removed, your filters are applied, and every job gets a 0–100 job score so the freshest, best-paid, most complete listings sort to the top.
  5. You get a clean table to download as CSV, JSON, or Excel — or pull via API.

Need full control? Paste raw Indeed search-results URLs into startUrls and the actor scrapes those directly.


What data you get

Every row is one job, best-scored first:

  • Job title and company — exactly as listed on Indeed.
  • Location and a remote flagisRemote is derived from the title, location, and description.
  • Parsed salarysalaryMin, salaryMax, and salaryPeriod (year / month / week / day / hour), plus the original salaryRaw string.
  • Employment type — normalized to Full-time / Part-time / Contract / Temporary / Internship / etc.
  • Company rating and review count — the employer's Indeed reputation (when "include company details" is on).
  • Posting date — the relative postedAt text Indeed shows.
  • Job URL and apply link — the clean canonical listing URL plus the external applyUrl when present.
  • A 0–100 job score — blends salary presence, recency, description completeness, active/expired status, and company rating.

Filters & options

Trim the scrape to only the jobs worth keeping — applied after scraping:

  • Only jobs with a salary — drop listings with no pay info.
  • Minimum salary (annualized) — keep only jobs at or above a yearly figure; hourly/weekly/monthly pay is annualized for a fair comparison.
  • Employment type — keep only Full-time, Contract, etc.
  • Remote jobs only — keep only listings that look remote.
  • Posted within N days — keep only fresh listings.
  • Max jobs per search — cap volume and cost per query.

Input

FieldTypeDescription
searchQueriesarrayJob titles / keywords, one per line.
locationstringCity / state / region, or blank for the whole country.
countrystringIndeed country domain (US, GB, CA, …).
maxItemsPerSearchintegerMax listings per query. Default 100.
parseCompanyDetailsbooleanInclude employer rating + reviews. Default true.
requireSalarybooleanKeep only jobs with a salary. Default false.
minSalaryintegerMinimum annualized salary (0 = no filter).
employmentTypearrayKeep only these employment types.
remoteOnlybooleanKeep only remote-looking jobs. Default false.
postedWithinDaysintegerKeep only jobs posted within N days (0 = no filter).
startUrlsarrayAdvanced: raw Indeed search URLs to scrape directly.

Example input:

{
"searchQueries": ["software engineer", "backend developer"],
"location": "Remote",
"country": "US",
"maxItemsPerSearch": 100,
"requireSalary": true,
"minSalary": 90000,
"employmentType": ["Full-time"],
"remoteOnly": true,
"postedWithinDays": 7
}

JSON output sample

{
"job_score": 92,
"jobTitle": "Senior Backend Engineer",
"companyName": "Acme Corp",
"location": "Austin, TX (Remote)",
"isRemote": true,
"salaryRaw": "$140,000 - $170,000 a year",
"salaryMin": 140000,
"salaryMax": 170000,
"salaryPeriod": "year",
"employmentType": "Full-time",
"companyRating": 4.1,
"companyReviews": 832,
"postedAt": "2 days ago",
"jobUrl": "https://www.indeed.com/viewjob?jk=abc123",
"applyUrl": "https://acme.com/careers/apply/abc123",
"companyLogoUrl": "https://...",
"descriptionText": "We're hiring a backend engineer to…",
"isExpired": false,
"jobId": "abc123"
}

Results render as a clean, sortable table on the Output tab and export to CSV, JSON, or Excel.


Use with AI agents & automation

This Indeed jobs scraper plugs straight into your stack. Use the Apify MCP server so AI agents (Claude, ChatGPT, Cursor) can pull fresh job listings as a tool call. Schedule runs and pipe results through Make, n8n, or Zapier to track new openings, populate a job board, or feed a hiring dashboard — or sync the dataset to Google Sheets for a live, always-fresh jobs list. Every run produces clean, flat JSON, so it drops into agentic workflows with no glue code.


Pricing

Pay-per-result — you're charged only for the cleaned job listings delivered after your filters. Set maxItemsPerSearch and use the filters to keep cost predictable. See the Apify Store page for the current per-result price.


FAQ

Does this apply to jobs for me? No. It only collects public job listings into a spreadsheet. It never logs in and never submits applications — you stay in control of where you apply.

Do I need an Indeed account or API key? No. Searching and scraping work with no login and no key.

Will every job show a salary? No — many Indeed listings hide pay. Use requireSalary to keep only the ones that show it, and the salary parser fills salaryMin/salaryMax whenever a figure is present.

How does the remote filter work? isRemote is inferred from the title, location, and description (remote / work from home / WFH / telecommute). remoteOnly keeps just those.

Can I search multiple titles and locations? Yes — pass several searchQueries; each is searched in your chosen location and country. For full control, paste raw Indeed search URLs into startUrls.

Is scraping Indeed legal? This collects public listings only. Indeed's terms restrict automated access and Indeed uses anti-bot defenses, so expect occasional partial runs. Use the data for personal/research/recruiting purposes and follow Indeed's terms and your local data-protection law.

Can I export to CSV or Google Sheets? Yes — export to CSV, JSON, or Excel from the Output tab, or sync the dataset to Google Sheets via Make, n8n, or Zapier.


Other Flash Scrape scrapers