Indeed Job Scraper - Salary, Jobs & Company Data
Pricing
from $1.30 / 1,000 results
Indeed Job Scraper - Salary, Jobs & Company Data
Scrape Indeed.com job listings fast via mobile API — no browser needed. Get title, company, salary, skills, experience level, remote model & more. Just $1.30 per 1,000 results. Built for recruiters, HR benchmarking & salary-research SaaS teams. No login, no blocks.
Pricing
from $1.30 / 1,000 results
Rating
0.0
(0)
Developer
Ahmed Jasarevic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Indeed Job Scraper
Scrape job listings from Indeed.com with full job details — job title, company, location, salary range, job type, experience level, skills, description, posted date, company rating, benefits and remote/work model. Built for HR/compensation benchmarking teams, recruiters, salary-research SaaS builders and gig-economy analysts.
The actor runs on the Apify platform — you get API access, scheduling, integrations (Zapier, Make, Google Sheets), proxy rotation and monitoring out of the box.
Why use Indeed Job Scraper?
- Compensation benchmarking — collect salary ranges and job types across markets to build pay-band models.
- Recruiting research — monitor what competitors are hiring for, where, and at what level.
- Salary-research SaaS — feed structured job data (salary, experience, skills) into your own product.
- Gig-economy / labor-market analysis — track posting volume, remote-work adoption and benefit trends over time.
Instead of fighting the Cloudflare-gated indeed.com HTML, this actor talks to the same private GraphQL API that the Indeed mobile app uses (apis.indeed.com/graphql) with the app's static API key and an iPhone User-Agent — the approach popularized by the open-source JobSpy project. That endpoint returns structured JSON, paginates by cursor at 100 jobs per page, and needs no browser, no challenge solving and no login. If the mobile API is ever unavailable, the actor automatically falls back to fetching the regular search pages over plain HTTP (CheerioCrawler) and parsing the embedded window.mosaic / _initialData JSON blobs.
How to use Indeed Job Scraper
- Open the actor's Input tab.
- Enter a search query (e.g.
software engineer) and a location (e.g.New York, NYorRemote). - Optionally set max items and max search pages.
- Click Start and wait for the run to finish.
- Download the dataset as JSON, HTML, CSV or Excel from the Dataset tab.
Input
| Field | Type | Default | Description |
|---|---|---|---|
searchQuery | string | software engineer | Job title or keyword to search for. |
location | string | New York, NY | City, state, or Remote. |
country | string | com | Indeed country domain (com, ca, co.uk, de, fr, au, in, ...). |
maxItems | integer | 50 | Max job listings to scrape (free users capped at 10). |
maxPages | integer | 5 | Max API result pages to fetch (up to 100 jobs each). |
useApifyProxy | boolean | true | Route through the Apify proxy (recommended — Indeed blocks datacenter IPs). |
proxyGroups | array | ["BUYPROXIES94952"] | Apify proxy groups to use. |
Output
Each dataset item is one job listing:
{"jk": "a1b2c3d4e5f6g7h8","jobTitle": "Senior Software Engineer","company": "Acme Corp","companyWebsite": "https://www.acme.com","companySize": "10,000+","applyUrl": "https://careers.acme.com/job/123?utm_source=indeed","location": "New York, NY 10012","salary": "$150,000 - $180,000 a year","jobType": "Full-time","experienceLevel": "Senior level","skills": ["javascript", "react", "aws", "docker"],"jobDescription": "We are looking for a Senior Software Engineer...","postedDate": "2026-08-20T05:00:00.000Z","companyRating": null,"benefits": ["401(k)", "Health insurance", "Paid time off"],"remoteModel": "Remote","url": "https://www.indeed.com/viewjob?jk=a1b2c3d4e5f6g7h8","dateScraped": "2026-08-23T13:18:47.771Z"}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Data table
| Field | Description |
|---|---|
jk | Indeed's unique job identifier |
jobTitle | Title of the job posting |
company | Hiring company name |
companyWebsite | Corporate website (employer dossier) |
companySize | Employee count label (employer dossier) |
companyIndustry | Industry label (employer dossier) |
applyUrl | Direct recruiter/company apply URL when available |
location | Job location (city, state, country) |
salary | Salary range or hourly rate as displayed |
jobType | Employment type (Full-time, Part-time, Contract, ...) |
experienceLevel | Inferred level (Entry/Mid/Senior/Internship) |
skills | Skills detected in the description |
jobDescription | Full job description text |
postedDate | Posting date as shown on Indeed |
companyRating | Indeed company rating (out of 5) |
benefits | Benefits mentioned in the posting |
remoteModel | Remote / Hybrid / On-site |
url | Direct link to the job posting |
dateScraped | ISO timestamp of when it was scraped |
How much does it cost to scrape Indeed?
This actor uses plain HTTP requests to a JSON API (no browser), so compute usage is very low. The mobile API returns 100 jobs per page, so 50–500 jobs typically finish in seconds, costing a fraction of a cent on the Apify platform — proxy traffic is usually the main cost driver. Free (non-paying) users get a capped preview of 10 items per run. Use maxItems and maxPages to control cost.
Tips and advanced options
- Reduce cost: lower
maxItems/maxPagesfor quick checks. - Avoid bans: keep
useApifyProxyon and use a residential proxy group inproxyGroupsfor the highest success rate — Indeed blocks most datacenter IPs. - Other countries: change
countrytoca,co.uk,de,fr,au,in, etc. to scrape Indeed's local sites. - Remote jobs: set
locationtoRemoteto focus on remote listings.
FAQ, disclaimers and support
- Is scraping Indeed legal? Scraping publicly available job listings is generally acceptable, but you should review Indeed's Terms of Service and respect rate limits. This actor is provided for legitimate research and recruiting use.
- Known limitations:
companyRatingis not exposed by the mobile API (it staysnull); benefits are extracted from job attribute tags when Indeed provides them. If the mobile API is unavailable, the actor falls back to HTML crawling, which is slower (~10 jobs per page) and may hit block pages without residential proxies — affected pages are retried with a fresh IP and skipped if they keep failing. - Support: report issues on the Issues tab of this actor. Need a custom solution (e.g. different fields, other job boards)? Contact the author.