Indeed Job Search Scraper avatar

Indeed Job Search Scraper

Pricing

Pay per usage

Go to Apify Store
Indeed Job Search Scraper

Indeed Job Search Scraper

Scrape job listings from Indeed.com by keyword and location. Extract job title, company, location, salary, posting date, and job URLs. Uses Cheerio for fast, low-cost scraping. Ideal for job market research, salary analysis, and recruitment lead generation.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Jordan C

Jordan C

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

A fast, CheerioCrawler-based Apify Actor that scrapes job listings from Indeed.com search results.

Features

  • CheerioCrawler — HTTP-based, 10x faster than browser-based scrapers
  • No JavaScript rendering needed — Indeed search results are static HTML
  • Pagination support — automatically pages through results
  • Structured output — clean JSON with job title, company, location, salary, description, and URL
  • PPE (Pay Per Event) — transparent usage-based pricing

Input Parameters

FieldTypeRequiredDefaultDescription
keywordstringJob search term (e.g., 'software engineer')
locationstring""City, state, zip, or 'remote'
maxResultsinteger50Max job listings to scrape (1–1000)

Example Input

{
"keyword": "data scientist",
"location": "New York, NY",
"maxResults": 100
}

Output Dataset Fields

FieldTypeDescription
jobTitlestringJob listing title
companystringEmployer name
locationstringJob location
salarystringSalary range or rate (if available)
descriptionstringShort description snippet
postingDatestringRelative posting date (if available)
jobUrlstringFull URL to the job listing
sourcestringAlways "Indeed"
scrapedAtstringISO 8601 scrape timestamp

How It Works

  1. Constructs search URLs like https://www.indeed.com/jobs?q={keyword}&l={location}
  2. Uses CheerioCrawler to fetch and parse each search results page
  3. Extracts job data using CSS selectors targeting Indeed's data-testid attributes
  4. Follows pagination via the &start= parameter (0, 10, 20, …)
  5. Stops when maxResults is reached or no more pages exist
  6. Pushes structured data to the Apify dataset

Usage

# Install dependencies
npm install
# Run locally
apify run
# Validate input schema
apify validate-schema
# Build for production
npm run build

PPE Charges

EventCharge
search-start$0.005 per search query
job-result$0.002 per job found

Resources