Indeed Jobs Scraper
Pricing
from $3.99 / 1,000 results
Indeed Jobs Scraper
Indeed public job listings. Direct extraction when available; otherwise returns labelled Google-indexed job titles, snippets and individual job URLs. Full detail fields may be unavailable.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Jobs Scraper
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
2
Monthly active users
14 days ago
Last modified
Categories
Share
Overview
Interface with Indeed, the planet's largest employment search engine, to compile job market intelligence at scale. This actor navigates Indeed's search results pages to extract standardized job data including titles, employers, locations, salary estimates, and application pathways from across virtually every industry.
Features
- Worldwide job market data from 60+ countries
- Estimated salary range extraction by Indeed
- Employer review rating integration
- Job snippet and key requirement highlights
- Configurable Apify residential/datacenter proxy routing with request and response analytics
- CAPTCHA detection and session rotation
- Automatic retry on failures with exponential backoff
- Deduplication of results by application URL
- Dataset validation with auto-fix capability
Supported Inputs
| Field | Type | Default | Description |
|---|---|---|---|
keyword | string | "software engineer" | Search terms for job discovery |
location | string | "" | Geographic filter for results |
country | string | "US" | Country code for proxy routing |
maxItems | integer | 50 | Upper limit on extracted listings |
proxyEnabled | boolean | true | Toggle proxy rotation on/off |
sortBy | string | "relevance" | Result ordering (relevance/date/salary) |
jobType | string | "" | Employment type filter |
experienceLevel | string | "" | Seniority level filter |
datePosted | string | "" | Recency filter (24h/3d/7d/14d/30d) |
remoteOnly | boolean | false | Restrict to remote positions only |
includeCompanyDetails | boolean | true | Fetch extra company information |
includeSalary | boolean | true | Include compensation data |
Output Format
Each scraped listing produces a JSON object with these fields:
{"jobTitle": "Senior Software Engineer","companyName": "Example Corp","location": "US","salary": "$120,000 - $160,000","jobType": "Full-time","experienceLevel": "Senior","postedDate": "2 days ago","applyUrl": "https://www.indeed.com/job/12345","companyUrl": "https://www.indeed.com/company/example","description": "We are looking for a skilled engineer...","requirements": ["JavaScript", "Node.js", "React"],"benefits": ["Health Insurance", "Remote Work"],"sourcePortal": "Indeed","country": "US","scrapedAt": "2025-01-15T10:30:00.000Z"}
Proxy Handling
Proxy routing is controlled by proxyMode (auto, residential, datacenter, or none) and can be disabled with proxyEnabled: false. auto tries residential before datacenter, with country-targeted and general variants when configuring the route. It does not silently switch routes after a blocked response. RUN_SUMMARY.proxyAnalytics reports the selected route, observed proxy groups, direct/proxy request counts, HTTP status counts, and blocked responses. Apify manages proxy sessions and rotation.
Retry Logic
The crawler does not retry failed page requests in the current configuration. Failures are logged, and the optional, labelled Google Search fallback is attempted only when direct extraction returns no rows.
Anti-block Handling
The Actor does not claim to bypass CAPTCHA or access controls. Blocked responses are recorded in proxy analytics; indexed fallback records, when used, are explicitly marked as index-only.
Sample Input
{"keyword": "data analyst","location": "US","maxItems": 25,"proxyEnabled": true,"sortBy": "date","remoteOnly": false}
Sample Output
{"jobTitle": "Data Analyst","companyName": "TechCorp International","location": "US","salary": "Competitive","jobType": "Full-time","experienceLevel": "Mid-level","postedDate": "1 day ago","applyUrl": "https://www.indeed.com/job/example-123","companyUrl": "","description": "Seeking a detail-oriented data analyst to join our growing team...","requirements": ["SQL", "Python", "Tableau"],"benefits": ["Health Insurance", "Flexible Hours"],"sourcePortal": "Indeed","country": "US","scrapedAt": "2025-01-15T14:22:00.000Z"}
Usage
Local Development
# Install dependenciesnpm install# Set Apify token (required for proxy)export APIFY_TOKEN=your_token_here# Run the actornpm start# Validate scraped datanode dataset-validator.js
Apify Platform
# Login to Apifyapify login# Push actor to platformapify push# Run from Apify Console or API
Deployment
- Ensure all dependencies are installed:
npm install - Authenticate with Apify:
apify login - Deploy the actor:
apify push - Configure input in the Apify Console
- Schedule runs or trigger via API / webhooks
Limitations
- Results depend on the portal's current HTML structure; layout changes may require selector updates
- Some job details (salary, benefits) may not be available for all listings
- Rate limiting by the portal may reduce throughput during high-volume scrapes
- CAPTCHA challenges may interrupt scraping on heavily protected pages
- Indeed may modify their anti-bot measures, requiring periodic updates
- Maximum items per run is capped at 1000 to prevent excessive resource usage
- Proxy costs apply when using Apify residential or datacenter proxies