Indeed Jobs Scraper avatar

Indeed Jobs Scraper

Pricing

from $0.31 / 1,000 item extracteds

Go to Apify Store
Indeed Jobs Scraper

Indeed Jobs Scraper

Export public Indeed job listings with salaries, descriptions, benefits, company details, and apply URLs for recruiting and labor-market analysis.

Pricing

from $0.31 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Collect public Indeed job listings as structured records for recruiting, labor-market research, lead generation, and job-board ingestion. Search by role and location, set a hard result limit, and export job titles, employers, locations, stable job keys, source URLs, and collection timestamps.

Input example

{
"query": "software engineer",
"location": "Austin, TX",
"maxItems": 5
}

Output example

{
"jobKey": "099517afcda05290",
"jobTitle": "Software Engineer",
"company": "Example Company",
"location": "Austin, TX",
"url": "https://www.indeed.com/viewjob?jk=099517afcda05290",
"sourceUrl": "https://www.indeed.com/jobs?q=software%20engineer&l=Austin%2C%20TX",
"scrapedAt": "2026-07-10T13:20:00.000Z"
}

Ready-to-run examples

Start with a published task, open its input, and run it as-is or adapt the query and location:

View all ready-to-run Indeed Jobs Scraper examples.

What data it exports

Each dataset row represents one public job listing. It includes:

  • Identity: jobKey, jobTitle, company, location, url.
  • Pay: salaryText, salaryMin, salaryMax, salaryCurrency, salaryPeriod.
  • Job details: jobDescription, benefits, schedule, postedAt, ageText.
  • Workplace: remote and hybrid flags.
  • Company: companyRating and companyReviews when displayed.
  • Application: applyUrl and applySource when available.
  • Provenance: query, rank, sourceUrl, scrapedAt, and diagnostics.

Results can be downloaded as JSON, CSV, Excel, XML, or RSS from the Dataset tab.

Use cases

  • Build a focused recruiting pipeline for a role and market.
  • Track hiring demand across cities and job families.
  • Feed fresh public vacancies into a job board or internal dashboard.
  • Create repeatable labor-market datasets with stable provenance.
  • Monitor employer hiring activity over time.

Who is it for?

  • Recruiters sourcing candidates for defined roles and markets.
  • Labor-market analysts comparing hiring demand, pay, and work arrangements.
  • Job aggregators maintaining structured, refreshable vacancy feeds.
  • Sales and research teams monitoring employer hiring activity.

Input settings

FieldTypeDescription
querystringRole, skill, keyword, or company to find.
locationstringCity, region, postal code, or Remote.
countrystringIndeed country site and matching proxy geography.
startUrlsstring[]Optional Indeed search or public job URLs.
datePostedstringAny date or the past 1, 3, 7, or 14 days.
remotebooleanReturn remote jobs only.
jobTypestringFull-time, part-time, contract, temporary, or internship.
salaryMinintegerOptional minimum annual salary.
maxItemsintegerHard maximum of 1–1,000 unique jobs.

Input recipes

These input recipes show how to export Indeed jobs data for common recruiting and labor-market monitoring workflows.

Remote engineering roles

{ "query": "backend engineer", "location": "Remote", "maxItems": 5 }

Local healthcare hiring

{ "query": "registered nurse", "location": "Chicago, IL", "maxItems": 10 }

Pricing

The Actor uses pay-per-event pricing with a small run-start event and a per-job result event. Platform tier eligibility determines the applicable rate. Failed pages and jobs that are not saved are not charged as results. See the live Apify Pricing tab for current rates.

API usage and Indeed jobs API

Use this Actor when you need an Indeed jobs API-style workflow for repeatable exports without maintaining your own parser.

Start a run with the Apify API:

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~indeed-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query":"data analyst","location":"New York, NY","maxItems":5}'

Use the returned run's defaultDatasetId to fetch items.

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/indeed-jobs-scraper').call({
query: 'data engineer', location: 'Boston, MA', maxItems: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/indeed-jobs-scraper').call(run_input={
'query': 'data engineer', 'location': 'Boston, MA', 'maxItems': 25,
})
items = client.dataset(run['defaultDatasetId']).list_items().items

MCP and AI agents

Connect compatible AI clients through https://mcp.apify.com?tools=fetch_cat/indeed-jobs-scraper.

Add the hosted MCP server to Claude Code:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/indeed-jobs-scraper"

Or run the Actors MCP server directly:

$npx -y @apify/actors-mcp-server --actors fetch_cat/indeed-jobs-scraper

Example prompts: “Find five data analyst jobs in Austin posted this week and return each company, salary, and apply URL.” “Export 20 remote software engineer jobs from Indeed with posting dates and benefits.”

Example MCP client configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/indeed-jobs-scraper"
}
}
}

Try prompts such as “Find 25 remote data-engineering jobs posted this week” or “Compare salary ranges for registered nurses in Chicago.”

Tips

  • Use a specific role plus a real city for focused results.
  • Keep the first run small, inspect the output, then increase the limit.
  • Schedule repeated runs with the same input to monitor new vacancies.
  • Deduplicate historical exports by jobKey.

Limits and data availability

The Actor reads public job pages without a login. Listing availability and field completeness vary by country, query, and the details each employer publishes. Search-card records can have partial salary, benefits, description, or application fields; the diagnostics field identifies partial-detail results. Indeed can change page availability or pagination, and maxItems remains a hard ceiling rather than a guarantee that every query has that many public jobs.

FAQ

What data can I export with indeed jobs scraper?
You can export public job titles, employer names, locations, descriptions, salary fields when available, job type, benefits, apply URLs, Indeed URLs, rank, source URL, and scrape timestamps.

Why can a search return fewer jobs than requested?
The requested market may have fewer public listings, or Indeed may change availability while the run is active.

How do I update an existing dataset?
Run the Actor on a schedule and merge by jobKey, retaining scrapedAt for freshness.

Can I export to a spreadsheet?
Yes. Open the Dataset tab and choose CSV or Excel.

Can I run Indeed Jobs Scraper through an API, schedule, or MCP client?
Yes. Run it through the Apify API, SDK, CLI, scheduler, webhooks, or MCP-compatible clients using the same JSON input.

How much does it cost to use Indeed Jobs Scraper?
The Actor uses a small start event and a per-item event for saved public jobs. Check the live Pricing tab for current rates before large runs.

Support

If a valid search fails or output fields look incorrect, open an issue on the Actor page. Include the run ID or run URL, the complete input JSON, expected and actual output, and one public Indeed URL that reproduces the problem.