Indeed Jobs Scraper — Job Listings, Salaries & Companies
Pricing
Pay per usage
Indeed Jobs Scraper — Job Listings, Salaries & Companies
Scrape job listings from Indeed.com. Extract job titles, companies, salaries, locations, descriptions, and posting dates. Filter by keyword, location, job type, and date posted. Handles pagination automatically.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Ricardo Akiyoshi
Actor stats
0
Bookmarked
17
Total users
8
Monthly active users
6 days ago
Last modified
Categories
Share
Indeed Scraper — Job Listings, Salaries & Companies
Scrape job listings from Indeed.com at scale. Extract job titles, company names, salaries, locations, descriptions, posting dates, and direct application URLs. Filter by keyword, location, job type, and date posted. No login or API key required.
Important: Proxy Required — Indeed aggressively blocks automated access from datacenter IPs. This actor requires residential or premium proxies to work reliably. Configure
proxyConfigurationwith"apifyProxyGroups": ["RESIDENTIAL"]in your input. Without proper proxy configuration, most requests will be blocked or return CAPTCHAs.
What It Does
- Keyword search — Enter any job title, skill, or company name and get structured data for every Indeed listing
- Location filtering — Narrow results to any city, state, ZIP code, or "remote" to find location-specific jobs
- Salary extraction — Get posted salary ranges when available on Indeed listings
- Job type filtering — Filter by full-time, part-time, contract, temporary, internship, or commission roles
- Date filtering — Find recently posted jobs from the last 24 hours, 3 days, 7 days, or 14 days
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "software engineer" | Job title, keyword, or company name to search on Indeed |
location | string | "New York, NY" | City, state, ZIP code, or "remote" |
maxResults | integer | 10 | Maximum number of job listings to extract (max 1,000) |
jobType | string | — | Filter by: fulltime, parttime, contract, temporary, internship, or commission |
datePosted | string | — | Recency filter: 1 (24 hours), 3 (3 days), 7 (7 days), 14 (14 days) |
sortBy | string | "relevance" | Sort results by: relevance or date |
proxyConfiguration | object | {"useApifyProxy": true} | Proxy settings for avoiding blocks |
Output Example
Each job listing includes the following fields:
{"jobTitle": "Senior Software Engineer","company": "Stripe","location": "San Francisco, CA","salary": "$180,000 - $250,000 a year","jobType": "Full-time","description": "We're looking for a Senior Software Engineer to join our Payments Infrastructure team. You'll design and build the systems that move billions of dollars across the global financial network. Requirements: 5+ years of experience with distributed systems, strong proficiency in Go or Java, and experience with payment processing or financial systems.","datePosted": "3 days ago","jobUrl": "https://www.indeed.com/viewjob?jk=abc123def456","jobKey": "abc123def456","searchQuery": "software engineer","searchLocation": "San Francisco, CA","scrapedAt": "2026-03-03T09:30:22.456Z"}
Use Cases
- Job market research — Analyze hiring trends, salary ranges, and demand for specific skills across locations
- Salary benchmarking — Collect salary data for specific job titles and locations to negotiate compensation
- Recruiting intelligence — Monitor which companies are hiring and what roles they are filling
- Career planning — Track job availability in your field across multiple cities to plan relocations
- HR analytics — Build datasets of job requirements, qualifications, and compensation for workforce planning
- Academic research — Study labor market dynamics, skill demand shifts, and geographic hiring patterns
API Usage
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('sovereigntaylor/indeed-scraper').call({searchQuery: 'data scientist',location: 'Remote',maxResults: 100,jobType: 'fulltime',datePosted: '7',sortBy: 'date',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_API_TOKEN')run = client.actor('sovereigntaylor/indeed-scraper').call(run_input={'searchQuery': 'data scientist','location': 'Remote','maxResults': 100,'jobType': 'fulltime','datePosted': '7','sortBy': 'date',})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl "https://api.apify.com/v2/acts/sovereigntaylor~indeed-scraper/runs" \-X POST \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"searchQuery": "data scientist","location": "Remote","maxResults": 100,"jobType": "fulltime","datePosted": "7","sortBy": "date"}'
Pricing
This actor uses pay-per-event pricing — you only pay for jobs successfully scraped.
| Event | Price |
|---|---|
| Job listing scraped | $0.003 |
Example: Scraping 500 Indeed job listings = 500 x $0.003 = $1.50
Limitations
- Indeed aggressively blocks automated access — residential proxies are recommended for reliable results
- Salary information is only available when the employer has posted it (roughly 30-50% of listings include salary)
- Job descriptions are extracted from search result cards and may be truncated — full descriptions require visiting individual job pages
- Indeed may return different results based on IP location even when a specific location filter is set
- Some job listings are sponsored/promoted and may appear at the top of results
- Maximum 1,000 listings per run
- Only supports Indeed.com (US) — international Indeed sites are not supported
Related Actors
- LinkedIn Jobs Scraper — Scrape job listings from LinkedIn
- Google Maps Scraper — Extract business listings and contact info from Google Maps
- Twitter/X Followers Scraper — Scrape follower lists from Twitter/X accounts
- Reddit Scraper — Scrape Reddit posts and comments for job market discussions