Amazon Jobs Scraper: amazon.jobs with Pay [USD 0.09/1K] avatar

Amazon Jobs Scraper: amazon.jobs with Pay [USD 0.09/1K]

Pricing

from $0.09 / 1,000 jobs

Go to Apify Store
Amazon Jobs Scraper: amazon.jobs with Pay [USD 0.09/1K]

Amazon Jobs Scraper: amazon.jobs with Pay [USD 0.09/1K]

Scrape amazon.jobs: every job with title, hiring entity, all locations, category, schedule, posting date, apply link, basic and preferred qualifications as fields, and the pay range per location where the posting prints one. Reads past the 10,000-result cap. USD 0.09 per 1,000 jobs.

Pricing

from $0.09 / 1,000 jobs

Rating

0.0

(0)

Developer

Useful API

Useful API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Amazon Jobs Scraper: amazon.jobs postings with pay ranges

Scrape amazon.jobs, the careers site of Amazon and its companies: every job with title, hiring entity ("Amazon.com Services LLC", "Audible, Inc."), all of its locations with their type, category, schedule, posting date, apply link, the description with basic and preferred qualifications as separate fields, and the pay range per location where the posting prints one. Filters by words, country, state, city, category and schedule. Export to CSV, Excel or JSON, or use the API.

USD 0.09 per 1,000 jobs. No login, no browser. Not affiliated with Amazon.

What you get

  • Pay range per job and per location. US and Canadian postings print one pay line per location at the end of the qualifications ("USA, WA, Seattle - 143,700.00 - 194,400.00 USD annually"). The row's pay is the line of the job's own first location, with currency and period from the line; every line is kept in extra.payByLocation. Some European lines (Italy, Poland, Slovakia) are read the same way. In our 20-job "software engineer" test in the US, 20 of 20 rows had a parsed pay range.
  • Qualifications as fields: extra.basicQualifications and extra.preferredQualifications in plain text, and the description HTML with headed sections.
  • Past the 10,000-result cap: amazon.jobs answers at most 10,000 jobs per search. A bigger search is read in slices by country, and a country still over the cap (the USA) by job category.
  • Every job in full from the search answer (100 per request): no job-page requests, so large runs are fast. 300 jobs took 4 requests and 8 s in our test.
  • Newest first, with "Posted within (days)" ending each slice at the first page of older jobs.
  • Workplace type only from Amazon's own location types (remote when every location is virtual, on site when every location is on site).

Input examples

{ "keywords": ["data scientist"], "countries": ["United States", "Canada"], "maxJobs": 500 }

Warehouse and operations jobs in Texas that print pay, new ones only (daily schedule):

{ "keywords": ["warehouse"], "countries": ["US"], "states": ["Texas"], "onlyWithSalary": true, "onlyNewJobs": true }

Example row

From a saved amazon.jobs search answer (empty fields left out, description and qualifications shortened, 2 of the 5 pay lines shown):

{
"jobId": "10583973",
"title": "Software Development Engineer",
"company": "Amazon.com Services LLC",
"location": "Seattle, Washington, USA",
"city": "Seattle",
"region": "WA",
"country": "US",
"remote": false,
"workplaceType": "onsite",
"salaryMin": 143700,
"salaryMax": 194400,
"salaryCurrency": "USD",
"salaryPeriod": "YEAR",
"employmentType": "FULL_TIME",
"employmentTypeText": "full-time",
"category": "Software Development",
"datePosted": "2026-10-20",
"descriptionText": "Amazon Web Services (AWS) is building a central pipeline of Software Development Engineer (SDE) talent for anticipated roles in 2026. This requisition supports hiring across all AWS SDE positions, from ...",
"applyUrl": "https://account.amazon.jobs/jobs/10583973/apply",
"jobUrl": "https://www.amazon.jobs/en/jobs/10583973/software-development-engineer",
"sourceBoard": "Amazon Jobs",
"duplicateKey": "75b00ea869fe9f35",
"extra": {
"jobFamily": "Software Development",
"businessCategory": "aws",
"team": "team-aws-sdm",
"sourceSystem": "JobCreator",
"locations": [
"Seattle, Washington, USA",
"Arlington, Virginia, USA",
"Santa Clara, California, USA",
"Raleigh, North Carolina, USA",
"Cupertino, California, USA"
],
"locationTypes": [
"ONSITE"
],
"basicQualifications": "-3+ years of non-internship professional software development experience\n-2+ years of non-internship design or architecture (design patterns, reliability and scaling) of new and existing systems experience\n...",
"preferredQualifications": "-3+ years of full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations experience\n...",
"payByLocation": [
{
"country": "USA",
"state": "WA",
"city": "Seattle",
"min": 143700,
"max": 194400,
"currency": "USD",
"period": "YEAR"
},
{
"country": "USA",
"state": "CA",
"city": "Cupertino",
"min": 165200,
"max": 223600,
"currency": "USD",
"period": "YEAR"
}
],
"payScope": "own location"
}
}

Good to know

  • Pay comes only from the pay lines the posting prints. We saw them on US, Canadian and some European postings; a posting without one has no pay. "Only jobs that print a pay range" keeps the ones that do (others are skipped and not charged).
  • A job offered in several places matches a state or city filter on any of them; its row shows the first place, and all places are in extra.locations.
  • Schedule types are Amazon's own: part-time means 20 to 29 hours. On 20 Oct 2026 all 36 part-time jobs were outside the USA, so a US part-time search returned none.
  • The posting date comes from the search answer; the job page itself prints no date.
  • Non-English postings are delivered in the language they were written in; language stays empty.
  • Not given: postal code, company logo, closing date, skills.

Who uses it

  • Compensation research: Amazon pay ranges by role, level and city, every day.
  • Recruiters and sourcers: new Amazon and AWS requisitions by team and location.
  • Labour market analysts: hiring by category and country over time.

Output: one row per job

Every Actor in this family writes the same columns, so you can merge boards in one sheet or database.

FieldWhat it holds
jobIdThe board's own job id
title, companyJob title and hiring company (as the board shows them)
companyUrl, companyLogoUrlCompany page and logo on the board, when given
location, city, region, postalCode, countryLocation as shown, and its parts; country is an ISO code (FR, DE, US...)
remote, workplaceTypetrue/false and remote, hybrid or onsite, only when the board says so
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryTextSalary range as numbers, ISO currency, HOUR/DAY/WEEK/MONTH/YEAR; empty when the board gives none (never guessed)
employmentType, employmentTypeTextFULL_TIME, PART_TIME, TEMPORARY, INTERN, APPRENTICE, CONTRACTOR, FREELANCE..., and the board's own wording
experienceLevel, category, skillsWhen the board gives them
datePosted, validThroughISO 8601 dates
descriptionText, descriptionHtmlFull description as plain text and as HTML
applyUrl, jobUrlWhere to apply, and the job's page on the board
sourceBoard, searchLabel, scrapedAtWhich board, which of your searches found it, when
duplicateKeyThe same key for the same ad posted on several boards (or reposted): title without (m/w/d) or H/F tags, company without legal form, city, country. Use it to merge results from several of our board Actors
extraA few fields only this board has

Contact email addresses and phone numbers inside descriptions are removed: this Actor never collects recruiters' personal contact details.

Job alerts: only new jobs, sent where you work

  1. Switch on Only new jobs since the last run and schedule the Actor (daily, hourly). It remembers the jobs it has already delivered for the same searches and filters, in a key-value store on your own account (named job-boards-seen-
  2. Paste a Slack or Discord webhook (or a Zapier or Make webhook, which can email you) into Send new jobs to. After each run that found new jobs you get one message with the count and up to 10 jobs with their links. Free: the message is never billed.

Apify's own integrations (Google Sheets, email, webhooks) work too.

Pricing

Pay per job saved: USD 0.09 per 1,000 jobs (USD 0.00009 a job), plus USD 0.002 per run start. No monthly rental, no charge for jobs skipped as duplicates, already seen or filtered out. Set a maximum cost per run in Apify and the Actor stops just before it, keeping everything saved so far.

Use it through the API

curl -X POST "https://api.apify.com/v2/acts/usefulapi~amazon-jobs-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords":["software engineer"],"countries":["United States"],"maxJobs":20}'

Python: ApifyClient("YOUR_API_TOKEN").actor("usefulapi/amazon-jobs-scraper").call(run_input={...}), then read the dataset items.

Good to know

  • Polite by design: one request at a time per site with a pause between requests, and the site's robots.txt is followed. Runs read public job pages only: no login, no candidate profiles or CVs.
  • What a run summary tells you: the OUTPUT record has jobs saved per search, jobs skipped (duplicates, seen before, too old) and why a run stopped early, if it did.
  • Is it legal? The Actor reads job ads that the board publishes openly, the same pages a job seeker sees. You are responsible for how you use the data (for example, the board's terms and data protection rules in your country).
  • Found a problem? Open an issue on the Issues tab: we answer quickly.