Indeed Job Scraper — Salaries, Remote & Full Details avatar

Indeed Job Scraper — Salaries, Remote & Full Details

Pricing

from $2.00 / 1,000 job results

Go to Apify Store
Indeed Job Scraper — Salaries, Remote & Full Details

Indeed Job Scraper — Salaries, Remote & Full Details

Scrape Indeed.com job listings by keyword or URL. Returns job title, company, parsed salary range, remote/hybrid flag, job type, benefits & full description. MCP/API-ready.

Pricing

from $2.00 / 1,000 job results

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

27

Total users

2

Monthly active users

12 hours ago

Last modified

Share

💼 Indeed Job Scraper — Salaries, Remote & Full Details

This Apify Actor is for recruiters, analysts, and workflow builders who need Indeed.com job listings from a keyword search or a direct Indeed search URL. It accepts a job title, skill, keyword, role, or an existing Indeed results page and returns one dataset record per listing. Each record can include job title, company name, company rating, location, remote or hybrid signal, job type, parsed salary range, raw salary text, benefits, description, job URL, source URL, and scrape timestamp. The output is structured for spreadsheets, CRMs, AI pipelines, and Apify MCP workflows.

Best fit and connected workflows

This Actor fits workflows that begin with an Indeed search query or a saved Indeed results page and need one structured record per job listing.

Use it when:

  • A role name, skill, or keyword is the starting point and you want live Indeed search results by location.
  • A ready-made Indeed search URL already includes filters such as salary, date posted, or other search settings.
  • You want numeric salary fields for sorting, comparison, or downstream analysis.
  • You want is_remote and work_type to separate remote, hybrid, and on-site roles.
  • You want a direct job_url for manual review, shortlist creation, or follow-up workflows.
  • You plan to pass the dataset into spreadsheets, CRMs, enrichment steps, or AI agents.

If your next workflow centers on a different job board or geography, a connected route can start with one of these verified related Actors:

  • Use APEC Jobs Scraper for sourcing that is centered on the APEC job board and its regional audience when the next workflow needs that Actor's focused input and output contract.
  • Use Ashby Jobs Scraper for career pages powered by Ashby when that board is the right source.
  • Use Bayt Jobs Data Scraper for MENA Listings for MENA-focused sourcing and research around Bayt listings when the next workflow needs that Actor's focused input and output contract.

Practical scenario

Maya, a recruiter, starts with data analyst and Austin, TX. She runs the Actor and reviews records that include job_title, company_name, company_rating, salary_min, salary_max, salary_period, work_type, posted_at, and job_url. She uses the parsed salary fields to compare compensation, checks is_remote and work_type to separate remote and hybrid roles, and opens job_url for the shortlist. Her next action is to export selected listings into a spreadsheet or CRM for outreach.

Input fields

FieldTypeDescription
searchQuerystringJob title, skill, keyword, or role to search for. Use this when starting from a text query.
locationstringCity, state, ZIP code, or Remote to filter the search geographically.
startUrlsarrayDirect Indeed search URLs. Use this when starting from an existing Indeed results page.
maxResultsintegerMaximum number of listings to collect. Minimum is 1 and maximum is 1000. Default is 50.
countrystringIndeed country site: www, uk, ca, au, in, de, fr, sg, or nz. Default is www.
proxyConfigurationobjectProxy settings for the run. Residential proxies are the default configuration.

Focused input example

{
"searchQuery": "software engineer",
"location": "Austin, TX",
"maxResults": 25,
"country": "www"
}

Output fields

Each dataset item represents one Indeed job listing.

FieldTypeDescription
job_idstringIndeed's unique job identifier from the jk parameter in the job URL.
job_titlestringJob title shown on Indeed.
company_namestringHiring company or employer name.
company_ratingnumber or nullIndeed star rating when available.
locationstringJob location shown on Indeed.
is_remotebooleanTrue when the job is fully remote.
work_typestring or nullRemote, Hybrid, or On-site when available.
job_typestring or nullFull-time, Part-time, Contract, Temporary, or Internship when available.
salary_minnumber or nullParsed minimum salary.
salary_maxnumber or nullParsed maximum salary.
salary_currencystring or nullISO 4217 currency code when available.
salary_periodstring or nullPay period such as year, month, week, hour, or day.
salary_textstring or nullRaw salary text from the listing.
descriptionstringJob description snippet or full text available from the search results page.
posted_atstring or nullRelative time since the job was posted.
benefitsarray or nullBenefits mentioned in the listing.
job_urlstringDirect link to the full job listing on Indeed.com.
source_urlstringIndeed search results page URL used for the scrape.
scraped_atstringISO 8601 UTC timestamp of when the record was collected.

Illustrative output record

{
"job_id": "a1b2c3d4e5f67890",
"job_title": "Senior Software Engineer",
"company_name": "Acme Corporation",
"company_rating": 4.2,
"location": "Austin, TX",
"is_remote": false,
"work_type": "Hybrid",
"job_type": "Full-time",
"salary_min": 90000,
"salary_max": 130000,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "$90,000 - $130,000 a year",
"description": "We are looking for a Senior Software Engineer to join our team...",
"posted_at": "3 days ago",
"benefits": [
"Health insurance",
"401(k)",
"Paid time off"
],
"job_url": "https://www.indeed.com/viewjob?jk=a1b2c3d4e5f67890",
"source_url": "https://www.indeed.com/jobs?q=software+engineer&l=Austin%2C+TX&start=0",
"scraped_at": "2026-04-09T10:30:00.000Z"
}

How it works

The Actor accepts either a keyword-based Indeed search or direct Indeed URLs. The input schema supports nine country domains: United States, United Kingdom, Canada, Australia, India, Germany, France, Singapore, and New Zealand.

The live manifest identifies this Actor as a Playwright-based template with stealth behavior and Cloudflare bypass through residential proxies. The dataset view is configured as a table with common job-listing columns, which makes the output easy to scan before export or downstream processing.

Pricing

This Actor uses Pay per event pricing plus Apify platform usage.

The primary billed event is Job Result, which is charged for each job scraped. There is also a one-time Actor start event. The live Pricing tab in the Apify Console shows the current event prices and the Apify platform usage charges for the execution environment.

Example in words: if a execution collects fifty job results, the Job Result event is applied fifty times, and the run also includes Apify platform usage for the execution.

For current pricing details, open the live Pricing tab in the Apify Console.

Use with AI agents (MCP)

This Actor is available through Apify MCP as a tool for structured Indeed job retrieval. The exact Actor identity is khadinakbar/indeed-job-scraper.

Tool description: search Indeed jobs by keyword or direct search URL and return structured job records with salary parsing, work arrangement, benefits, and listing links.

Find Indeed job listings for "data analyst" in Austin, TX, return up to 20 results, and include salary and remote fields so I can compare roles by compensation and work arrangement.

Output interpretation:

  • jobListings points to the dataset items endpoint for the run output.
  • Each dataset record is one listing, which is useful for ranking, filtering, and downstream enrichment.
  • job_url is the direct listing link, while source_url shows the results page used for collection.
  • salary_min, salary_max, and salary_period help normalize salary text into sortable values.
  • is_remote and work_type help classify remote, hybrid, and on-site roles.
  • Pagination follows the number of listings collected up to maxResults.
  • Cost guidance follows the same pay-per-event model described in Pricing, so agent workflows can size requests by expected job count.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/indeed-job-scraper').call({
searchQuery: 'software engineer',
location: 'Austin, TX',
maxResults: 10,
country: 'www',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Read ${items.length} job listings from the dataset`);
console.log(items[0]);

Best results and outcome guidance

  • Use searchQuery when the starting point is a role, skill, or keyword.
  • Use startUrls when you already have an Indeed results page with filters applied.
  • Keep country aligned with the Indeed market you want to study.
  • Set maxResults to match the sample size or pipeline batch you need.
  • Review salary_text together with the parsed salary fields when salary formatting matters.
  • Use is_remote and work_type together for routing and segmentation.
  • Start from job_url when a listing needs manual review or a deeper workflow step.

Continue the workflow

  • Then use InfoJobs Jobs Scraper to extend 💼 Indeed Job Scraper — Salaries, Remote & Full Details with a neighboring job-market research source when the brief calls for Infojobs data.
  • Then use HiringCafe Jobs Scraper to extend 💼 Indeed Job Scraper — Salaries, Remote & Full Details with a neighboring job-market research source when the brief calls for Hiringcafe data.

Design note

I found that job_id, job_title, company_name, location, is_remote, job_url, source_url, and scraped_at are required fields in the dataset schema, which makes each record a stable one-row job listing.

FAQ

When should I use searchQuery instead of startUrls?

Use searchQuery when the starting point is a role, skill, or keyword. Use startUrls when you already have an Indeed search results URL with filters applied.

Which fields help separate remote and hybrid roles?

Use is_remote for fully remote listings and work_type for the listed arrangement such as Remote, Hybrid, or On-site.

Can I analyze compensation directly from the output?

Yes. The Actor returns both raw salary text and parsed salary fields, including salary_min, salary_max, salary_currency, and salary_period when available.

Which country markets are supported?

The country field supports www, uk, ca, au, in, de, fr, sg, and nz.

How can I connect this to another workflow?

Use job_url for listing-level follow-up, export the dataset into a spreadsheet, or feed the records into an AI agent that enriches, filters, or ranks jobs. For job-board-specific sourcing, the related Actors above provide the next routing step.

Responsible use

Use this Actor for publicly accessible job listings and lawful data collection workflows. Follow applicable laws, Indeed terms, and your own internal policies for storage, sharing, and downstream use of job data.