Indeed Job Scraper avatar

Indeed Job Scraper

Pricing

Pay per usage

Go to Apify Store
Indeed Job Scraper

Indeed Job Scraper

Extract job listings from Indeed with job titles, company names, salaries, locations, descriptions, employment types, posting dates, and application URLs. Ideal for job market research, recruitment analytics, salary benchmarking, hiring trends, lead generation, and workforce insights.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

What does Indeed Jobs Scraper do?

Indeed Jobs Scraper collects job postings from Indeed.com into a clean, structured dataset. Enter a keyword and location, or paste an Indeed search URL, and the Actor returns job titles, companies, locations, salaries, employment types, remote flags, apply links, company profile details, and full job descriptions. It is built for job-market research, recruiting automation, lead generation, and data pipelines that need reliable Indeed job data without manual copy-paste.

Why use Indeed Jobs Scraper?

  • Complete, structured records - Each job includes the title, company, location, salary, employment type, remote status, posting date, apply link, and the full description in both HTML and plain text.
  • Flexible search - Run a keyword and location search, paste multiple Indeed search URLs, or submit individual job URLs in a single run.
  • Automation-ready output - Export results to JSON, CSV, Excel, or XML, or send them to Google Sheets, Slack, or a webhook.
  • Built to keep running - The Actor retries temporary failures, adapts when Indeed changes its responses, and falls back to an alternate listing source automatically.
  • No account, login, or cookies required - Start collecting job data immediately.
  • Runs on a schedule - Monitor new postings hourly, daily, or weekly to track hiring trends and fresh openings.

What data can you extract from Indeed?

FieldDescription
titleJob title
companyHiring company name
locationJob location (city, state)
salarySalary or pay range when disclosed
job_typeEmployment type(s) such as Full-time, Part-time, Contract
is_remoteWhether the job is remote (hybrid excluded)
postedAtRelative posting time, for example "3 days ago"
postedDateISO posting date
urlDirect Indeed job URL
apply_urlExternal apply link when available
company_urlCompany profile URL on Indeed
company_industryCompany industry when available
company_num_employeesCompany size when available
company_revenueCompany revenue range when available
company_websiteCompany website when available
description_htmlFull job description in HTML
description_textFull job description in plain text
search_urlThe search page where the job was found
sourceSource platform, always "indeed"
scrapedAtISO timestamp for when the job was collected

How to use Indeed Jobs Scraper

  1. Open the Actor on Apify Store.
  2. Enter a keyword such as "software engineer" and, optionally, a location such as "Remote" or "New York".
  3. Optionally set a posted-date filter, a result limit, and a page limit.
  4. Run the Actor.
  5. Download the dataset or connect it to your workflow.

You can also paste one or more Indeed search or job URLs into startUrls. When URLs are supplied, they take priority over the keyword and location inputs.

Input Parameters

ParameterTypeRequiredDefaultDescription
keywordStringNosoftware engineerJob search term, for example "data analyst" or "product manager"
locationStringNo-Location filter, for example "New York" or "Remote". Empty means nationwide
startUrlsArrayNo-Indeed search or job URLs. Takes priority over keyword and location
posted_dateStringNo-Date filter: 24h, 7d, 30d, or anytime
results_wantedIntegerNo20Maximum number of jobs to save
maxPagesIntegerNo-Stop after this many pages (about 100 jobs per page). Empty for automatic
collectDetailsBooleanNotrueInclude full job descriptions in each record
proxyConfigurationObjectNoApify ResidentialResidential proxy is on by default because Indeed blocks datacenter IP ranges. Disable it for local or unblocked networks

Output Data

FieldTypeDescription
titleStringJob title
companyStringHiring company name
locationStringJob location
salaryStringSalary or pay range when disclosed
job_typeArrayEmployment type(s)
is_remoteBooleanTrue when the job is remote
postedAtStringRelative posting time
postedDateStringISO posting date
urlStringIndeed job URL
apply_urlStringExternal apply link when available
company_urlStringCompany profile URL
company_industryStringCompany industry when available
company_num_employeesStringCompany size when available
company_revenueStringCompany revenue range when available
company_websiteStringCompany website when available
description_htmlStringFull job description in HTML
description_textStringFull job description in plain text
search_urlStringSearch page URL where the job was found
sourceStringSource platform, always "indeed"
scrapedAtStringISO timestamp for when the job was collected

Usage Examples

Collect up to 100 software engineering jobs in a location, posted in the last week.

{
"keyword": "software engineer",
"location": "Remote",
"posted_date": "7d",
"results_wanted": 100,
"collectDetails": true
}

Multiple search URLs

Collect jobs from more than one Indeed search page in a single run.

{
"startUrls": [
"https://www.indeed.com/jobs?q=software+engineer&l=Remote",
"https://www.indeed.com/jobs?q=data+scientist&l=New+York"
],
"results_wanted": 200
}

Fresh postings only

Track only jobs posted in the last 24 hours and cap the run to five pages.

{
"keyword": "registered nurse",
"location": "Texas",
"posted_date": "24h",
"maxPages": 5,
"results_wanted": 500
}

Single job lookup

Fetch full details for one Indeed job URL.

{
"startUrls": [
"https://www.indeed.com/viewjob?jk=30dd3ce95631da0a"
],
"results_wanted": 1
}

Sample Output

{
"title": "Senior Software Engineer",
"company": "Tech Corp",
"location": "Austin, TX",
"salary": "$140,000 - $180,000 a year",
"job_type": ["Full-time"],
"is_remote": true,
"postedAt": "3 days ago",
"postedDate": "2026-10-12T18:30:00.000Z",
"url": "https://www.indeed.com/viewjob?jk=abc123",
"apply_url": "https://techcorp.com/careers/123",
"company_url": "https://www.indeed.com/cmp/Tech-Corp",
"company_num_employees": "1,001 to 5,000",
"company_website": "https://techcorp.com",
"description_html": "<p>We are looking for a senior engineer to join our platform team.</p>",
"description_text": "We are looking for a senior engineer to join our platform team.",
"search_url": "https://www.indeed.com/jobs?q=software+engineer&l=Remote",
"source": "indeed",
"scrapedAt": "2026-10-15T12:00:00.000Z"
}

Tips for Best Results

  • Start with a small results_wanted such as 20 to validate your keyword and location before running large jobs.
  • Use posted_date to focus on fresh listings for monitoring workflows.
  • Use startUrls when you want exact control over the search, for example to apply a specific location or category filter on Indeed.
  • Set maxPages to cap long runs and control cost.
  • Set collectDetails to false for faster, lighter runs when you only need job summaries and links.
  • Schedule the Actor to collect new postings on a recurring basis.
  • If a specific field is empty for a job, the employer likely did not publish that detail on Indeed.

Integrations

  • Google Sheets - Send job data to a spreadsheet for analysis.
  • Webhooks - Notify your systems when a run finishes.
  • Make or Zapier - Connect results to no-code automations.
  • Slack - Post new job batches to a channel.
  • API - Access datasets programmatically from your own applications.
  • Exports - Download results as JSON, CSV, Excel, or XML.

Frequently Asked Questions

Can I export Indeed job data to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other formats directly from the run page or the API.

Do I need an Indeed account or cookies?

No. The Actor collects public job data without an Indeed login, cookies, or account.

Can I run this Actor on a schedule?

Yes. You can schedule the Actor in Apify Console to run hourly, daily, weekly, or at another interval, which is useful for monitoring new job postings.

How many jobs can I collect in one run?

You control the limit with results_wanted, up to the Actor's configured maximum. Use maxPages as an additional cap for very large runs.

Why are some fields empty for a job?

Some employers do not publish a salary, company size, revenue, or website. When the source listing omits a detail, the corresponding field is empty.

Is a proxy required?

On Apify, yes. Indeed blocks datacenter IP ranges, so the Actor enables the Apify Residential proxy by default to collect data reliably. If you run it locally or from an unblocked network, you can turn the proxy off. If an unproxied run on Apify returns no jobs, the Actor automatically retries once through Apify Residential proxy.

Scraping public web data can be legal, but you are responsible for complying with applicable laws, Indeed's terms, and privacy rules. Use the data responsibly.

Support

For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.

This Actor is designed for legitimate collection of publicly available job data from Indeed. Users are responsible for using the data responsibly and complying with applicable laws and website terms.