Indeed Jobs Scraper | Worldwide Job Data avatar

Indeed Jobs Scraper | Worldwide Job Data

Pricing

$1.00 / 1,000 indeed offer returneds

Go to Apify Store
Indeed Jobs Scraper | Worldwide Job Data

Indeed Jobs Scraper | Worldwide Job Data

Scrape public Indeed job listings worldwide with keyword, country, location, date, job type, remote status, and Indeed Apply filters.

Pricing

$1.00 / 1,000 indeed offer returneds

Rating

0.0

(0)

Developer

DataScraperES

DataScraperES

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Collect public Indeed job listings by keyword and country, with optional location, date, job-type, remote, and Indeed Apply filters. Each unique offer is returned as a structured Dataset item with available descriptions, compensation, employer details, and application URLs.

What this Actor does

  • Searches one Indeed country site per run with up to 50 keyword phrases.
  • Applies optional location, publication-age, job-type, remote-only, and Indeed Apply filters.
  • Returns up to 1,000 unique jobs per keyword and up to 50,000 items per run.
  • Formats job descriptions as Markdown, HTML, or plain text.
  • Optionally extracts public email addresses visible in job descriptions.
  • Deduplicates offers across keywords while preserving the search phrase associated with each delivered item.
  • Stores run-level counts, limits, failures, and billing reconciliation in the SUMMARY record.

Use cases

  • Source public vacancies for recruitment research.
  • Compare hiring demand across keywords, locations, and countries.
  • Monitor remote, contract, internship, and part-time opportunities.
  • Analyze compensation and employer information when published.
  • Build job-search alerts with Apify Tasks and Schedules.
  • Export listings into spreadsheets, databases, CRMs, or internal dashboards.

How to use

  1. Open the Actor's Input tab.
  2. Add one or more phrases under Search keywords.
  3. Select a supported country and, optionally, enter a location.
  4. Adjust the result limits and filters.
  5. Click Start.
  6. Open Dataset to inspect or export the job listings.

The Actor searches a single country site per run. Create separate runs when you need several countries.

Input

FieldTypeRequiredDefaultDescription
keywordsstring[]YesOne to 50 job-search phrases. Blank and duplicate phrases are removed.
countrystringYes"usa"Indeed country site, such as usa, uk, canada, australia, germany, france, india, brazil, mexico, or spain.
locationstring or nullNonullCity, region, postal code, or another location understood by Indeed.
distanceMilesintegerNo50Search radius from 0 to 500 miles.
maxItemsPerQueryintegerNo25Maximum unique jobs per keyword, from 1 to 1,000.
maxTotalItemsintegerNo5000Global Dataset limit across all keywords, from 1 to 50,000.
offsetintegerNo0Results to skip per keyword, from 0 to 900. Offset plus maxItemsPerQuery cannot exceed 1,000.
datePostedHoursintegerNo0Only jobs published within this many hours, from 0 to 720. Use 0 for any age.
jobTypestringNo"any"any, fullTime, partTime, contract, or internship.
remoteOnlybooleanNofalseKeep only listings identified as remote.
easyApplyOnlybooleanNofalseKeep only jobs marked for Indeed Apply.
descriptionFormatstringNo"markdown"Return descriptions as markdown, html, or plain.
includeEmailsbooleanNofalseExtract public email addresses found in descriptions.

This is the exact input used for the complete output example:

{
"keywords": [
"software engineer"
],
"country": "usa",
"distanceMiles": 50,
"maxItemsPerQuery": 25,
"maxTotalItems": 5000,
"offset": 0,
"datePostedHours": 0,
"jobType": "any",
"remoteOnly": false,
"easyApplyOnly": false,
"descriptionFormat": "markdown",
"includeEmails": false,
"location": null
}

Output

The default Dataset contains one item per unique delivered job. Every successful item includes the search context, job identity, available employer and compensation data, the requested description format, and a retrieval timestamp.

FieldDescription
success, status, sourceResult state and source identifier.
searchKeyword, searchCountry, searchLocationSearch context that produced the item.
jobId, jobUrl, directJobUrlJob identity, Indeed listing URL, and direct application URL when available.
title, companyNamePublic job title and employer name.
companyUrl, companyDirectUrlIndeed company page and public company website when available.
location, locationDisplay, isRemoteStructured location, displayed location, and remote flag.
jobTypes, postedDatePublished job types and posting date when available.
description, emailsJob description in the selected format and optional public emails.
compensationPublished salary or compensation structure when available.
companyIndustry, companyAddresses, companyEmployees, companyRevenueAvailable employer metadata.
companyDescription, companyLogoUrlAvailable employer description and logo.
scrapedAtTimestamp recorded when the item was collected.

This is the complete Dataset item from a real successful run:

{
"success": true,
"status": "success",
"source": "indeed",
"searchKeyword": "software engineer",
"searchCountry": "Usa",
"searchLocation": null,
"jobId": "in-463d1019d5b79ae6",
"jobUrl": "https://www.indeed.com/viewjob?jk=463d1019d5b79ae6",
"directJobUrl": "https://wonder.wd1.myworkdayjobs.com/WG/job/Spyce/Sr-Software-Engineer--Back-End-_JR101230-1",
"title": "Sr. Software Engineer (Back End)",
"companyName": "Wonder",
"companyUrl": "https://www.indeed.com/cmp/Wonder-c9247c04",
"companyDirectUrl": "http://www.wonder.com",
"location": {
"country": "US",
"city": "Charlestown",
"state": "MA"
},
"locationDisplay": "Charlestown, MA, US",
"isRemote": false,
"jobTypes": [
"fulltime"
],
"postedDate": "2026-08-19",
"description": "**About Wonder**\n\nEverything’s on the menu at Wonder. Except compromise.\n\nWonder is the mealtime platform built to feed every craving in one order. With Wonder, you can mix and match hundreds of dishes from 20+ exclusive restaurants in a single order, so everyone gets exactly what they’re craving. Enjoy everything from tacos to Thai with $0 delivery fees, plus dine-in or pick up at a Wonder location near you. Each dish is made to order on-site by our culinary team and served hot.\n\nBehind the scenes, Wonder owns and operates every step of the dining experience, from recipe development to the technology that powers our experience, allowing us to deliver quality, variety, and consistency at scale.\n\n*Join us as we work to make great food more accessible.*\n\n**About Wonder & Wonder Robotics**\n\nEverything’s on the menu at Wonder. Except compromise.\n\nThe Wonder app is the premiere platform to feed every craving, all in one order. Our 25+ award-winning restaurant partners span every cuisine you can think of, from Greek to Thai, and come from the minds of the best chefs in the industry—Bobby Flay, José Andrés, Marcus Samuelsson, and more.\n\nWithin Wonder, the Robotics team is a core pillar of our innovation strategy. We build the automation solutions that help make Wonder’s 'no-compromise' promise possible at scale. Our mission is to use robotics to enable incredible variety and culinary authenticity. By reimagining the kitchen environment, we improve the daily experience of our team members and ensure every customer receives a perfect meal, every time.\n\nThe best in the business are coming to Wonder, working every day to make us the destination for every mealtime moment. Join a team of technology, culinary, and logistics pioneers, backed by top-tier venture capitalists, and help us make great food more accessible.\n\n**About The Opportunity**\n\nWe’re looking for a product-minded Senior Software Engineer to join our backend team to build the brains of our automated restaurants and the foundation upon which our robotic systems rely. In this role, you will help design and implement the expansion of our current systems to accommodate new robotic solutions while maintaining the reliability and performance of our live production restaurants.\n\nYou will work primarily with Elixir and the Phoenix framework to construct real-time distributed systems that serve as critical facilitators between our cloud-based infrastructure, on-site robotic hardware, frontend applications, and the rest of Wonder software. You will partner with cross-functional teams to design and deploy high-impact features, help guide technical discussions, and mentor other engineers.\n\n**The Impact You Will Make**\n\n* Orchestrate the Kitchen: Design and implement solutions that manage complex state across multiple distributed systems and guarantee zero data loss in mission-critical workflows, particularly around order fulfillment, robotic communication and human-machine interaction.\n* Bridge Cloud and Hardware: Design new infrastructure that spans the cloud and on-premise resources, including event-driven architectures, Postgres databases, WebSocket protocols, and containerized applications.\n* Produce High Quality Software: Uphold reliability, advocate for iterative review and testing procedures, manage the release process, and continue to monitor performance.\n* Guide Technical Outcomes: Plan how to build new features by considering product requirements, assessing tradeoffs and collaborating with peers, and specify the tasks needed to complete a project.\n* Improve Processes: bring industry-best practices to the team, automate repetitive tasks, and have a learn-forward attitude.\n* Communicate Effectively: Write thorough and clear specs, fill gaps in documentation, and provide, seek and incorporate feedback.\n\n**What You Bring to the Table**\n\n* Bachelor’s or Master’s degree in Computer Science or a related field.\n* 5+ years of professional software engineering experience building highly concurrent, distributed systems and shipping them to production.\n* Strong system design skills, a product-focused mindset, and a track record of owning features end-to-end.\n* Proficiency in Elixir, including OTP, and the Phoenix framework.\n* Proficiency with PostgreSQL and relational database design.\n* Experience designing, building, and consuming WebSocket events, REST APIs, webhooks, and other message-based systems.\n* Experience designing and deploying infrastructure using Infrastructure as Code. We use Terraform.\n* A pragmatic approach to problem solving and the ability to troubleshoot complex technical obstacles.\n* Excellent communication and interpersonal skills, including the ability to facilitate technical discussions with product, design, and operations partners.\n\nThis role requires a minimum of 3 days a week in the office, with additional days as needed based on project demands.\n\nThis role is based in our Boston office in Charlestown, MA.\n\nBoston: $176,000 - $183,500\n\nWonder uses geographic-specific salary structures, which means the salary offered may vary depending on where the job is located. The final salary offer will take into account various factors, such as the candidate's skills, education, training, credentials, and experience.\n\n**Benefits**\n\nThe benefits applicable to this role include a competitive compensation package with equity and a 401(k). We also offer a choice of medical, dental, and vision plans, company paid short and long term disability coverage, paid time off including flexible time off for exempt employees, paid vacation for non-exempt employees, and paid sick leave in compliance with applicable law in addition to paid parental leave, discounted meals and exclusive perks across the Wonder family of brands.\n\nEligibility, effective dates, and available plan options vary by employment classification and location. To learn more about benefits for this role, visit our Careers page here.\n\n**A Final Note**\n\nAt Wonder, we build the best teams by hiring with an objective lens — evaluating people for their potential while championing diversity, equity, and inclusion. We do not discriminate based on race, color, religion, gender identity or expression, sexual orientation, national origin, age, military service eligibility, veteran status, marital status, disability, or any other protected class. As part of our commitment to fair and compliant hiring practices, Wonder participates in the federal government's E-Verify program to confirm employment eligibility. If you need an accommodation during the interview process, please let your recruiter know.\n\n**We look forward to hearing from you! We'll contact you via email or text to schedule interviews and share information about your candidacy**.",
"emails": null,
"compensation": {
"interval": "yearly",
"min_amount": 176000,
"max_amount": 183500,
"currency": "USD"
},
"companyIndustry": null,
"companyAddresses": "New York, NY",
"companyEmployees": "501 to 1,000",
"companyRevenue": "Decline to state",
"companyDescription": "Join us in pioneering a new category of dining called “Fast-Fine”, and revolutionizing the way people eat.",
"companyLogoUrl": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/91b59a2dc80c0d621e082997108f4aa1",
"scrapedAt": "2026-08-19T19:43:38.941479Z"
}

Run-level information is stored separately in the default Key-Value Store under SUMMARY, including query counts, failures, retries, duplicate totals, output-limit state, charge-limit state, and accepted charge events.

Pricing

This Actor uses pay-per-event pricing:

EventPriceCharged when
indeed-offerUSD 0.001 per offer (USD 1 per 1,000)One unique public Indeed job offer is written to the default Dataset.

Duplicate offers, failed searches, and results that are not written do not trigger this event. If the maximum total charge is reached, the Actor stops emitting additional billable items. The current Pricing tab on the Actor page is authoritative.

API and integrations

Run the Actor through Apify Console, API, CLI, Tasks, Schedules, or webhooks. Dataset results can be exported as JSON, JSONL, CSV, Excel, XML, or RSS.

API request:

curl -X POST "https://api.apify.com/v2/acts/datascraperes~indeed-jobs-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords":["software engineer"],"country":"usa","distanceMiles":50,"maxItemsPerQuery":25,"maxTotalItems":5000,"offset":0,"datePostedHours":0,"jobType":"any","remoteOnly":false,"easyApplyOnly":false,"descriptionFormat":"markdown","includeEmails":false,"location":null}'

JavaScript client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('datascraperes/indeed-jobs-scraper').call({
"keywords": [
"software engineer"
],
"country": "usa",
"distanceMiles": 50,
"maxItemsPerQuery": 25,
"maxTotalItems": 5000,
"offset": 0,
"datePostedHours": 0,
"jobType": "any",
"remoteOnly": false,
"easyApplyOnly": false,
"descriptionFormat": "markdown",
"includeEmails": false,
"location": null
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python client:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("datascraperes/indeed-jobs-scraper").call(
run_input={
"keywords": [
"software engineer"
],
"country": "usa",
"distanceMiles": 50,
"maxItemsPerQuery": 25,
"maxTotalItems": 5000,
"offset": 0,
"datePostedHours": 0,
"jobType": "any",
"remoteOnly": False,
"easyApplyOnly": False,
"descriptionFormat": "markdown",
"includeEmails": False,
"location": None
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
ActorBest for
Glassdoor Jobs Scraper | Global Job ListingsFinding global Glassdoor listings with descriptions, compensation, employer data, and application links.
LinkedIn Jobs Scraper – No LoginAdding public LinkedIn job listings with workplace, experience, applicant, and Easy Apply filters.
LinkedIn Company Profile Scraper - No LoginEnriching employers found in job results with public company profiles and organization details.

Limits and data quality

  • A run accepts up to 50 unique keywords and searches one country site.
  • maxItemsPerQuery is a ceiling, not a guarantee. Source availability and filters can reduce the number returned.
  • The global output limit is 50,000 items, but the user's maximum total charge can stop output earlier.
  • Jobs are deduplicated across keywords using stable public identifiers or URLs.
  • A run can be partial when some keyword searches succeed and others fail; successful Dataset items remain available.
  • Listings can change or disappear, and optional salary, description, employer, email, date, location, or application fields can be null or empty.
  • Remote-only and Indeed Apply filters depend on the public labels available for each listing.
  • The Actor does not access private accounts, applications, or information behind a login.

Frequently asked questions

Can I search several countries in one run?

No. Use one country per run and create separate Tasks or runs for additional countries.

Why did I receive fewer jobs than requested?

The requested values are maximums. The source may expose fewer matching public listings, and filters, duplicates, output limits, or a maximum charge can reduce the total.

Are duplicate jobs charged more than once?

No. Only unique offers actually written to the Dataset trigger indeed-offer.

Can I receive plain text instead of Markdown?

Yes. Set descriptionFormat to plain; use html to preserve HTML instead.

No. Those fields are returned only when published and available for the individual listing.

Can I schedule recurring searches?

Yes. Save the input as an Apify Task and connect it to an Apify Schedule.

Responsible use

Use the Actor only for lawful processing of public job information. Follow applicable laws, privacy requirements, Indeed's terms, and the rights of employers and applicants. Do not use results for spam, harassment, discrimination, or unlawful automated decisions.

Support

If a run fails or returns unexpected data, open an issue from the Actor page. Include the run URL, non-sensitive input, and expected behavior, but never publish API tokens or other secrets.