Indeed Jobs Scraper - Listings, Salary & Company
Pricing
from $4.00 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
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:
- 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. - The scraper pulls matching listings from Indeed via the proven
misceres/indeed-scraperengine. - 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.
- 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.
- 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 flag —
isRemoteis derived from the title, location, and description. - Parsed salary —
salaryMin,salaryMax, andsalaryPeriod(year / month / week / day / hour), plus the originalsalaryRawstring. - 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
postedAttext Indeed shows. - Job URL and apply link — the clean canonical listing URL plus the external
applyUrlwhen 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
| Field | Type | Description |
|---|---|---|
searchQueries | array | Job titles / keywords, one per line. |
location | string | City / state / region, or blank for the whole country. |
country | string | Indeed country domain (US, GB, CA, …). |
maxItemsPerSearch | integer | Max listings per query. Default 100. |
parseCompanyDetails | boolean | Include employer rating + reviews. Default true. |
requireSalary | boolean | Keep only jobs with a salary. Default false. |
minSalary | integer | Minimum annualized salary (0 = no filter). |
employmentType | array | Keep only these employment types. |
remoteOnly | boolean | Keep only remote-looking jobs. Default false. |
postedWithinDays | integer | Keep only jobs posted within N days (0 = no filter). |
startUrls | array | Advanced: 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
- LinkedIn Profile + Email Leads — LinkedIn profile leads
- Google Maps Leads Scraper — Google Maps business leads
- Yelp Leads Scraper — Yelp business leads
- Instagram Leads Scraper — Instagram profile leads
- TikTok Leads Scraper — TikTok creator leads
- YouTube Leads Scraper — YouTube creator leads