ZipRecruiter Jobs Scraper - Salary, Company, Full Details avatar

ZipRecruiter Jobs Scraper - Salary, Company, Full Details

Pricing

from $0.44 / 1,000 jobs

Go to Apify Store
ZipRecruiter Jobs Scraper - Salary, Company, Full Details

ZipRecruiter Jobs Scraper - Salary, Company, Full Details

ZipRecruiter job search: title, company, pay with its source (employer, parsed or estimate), employment type, remote/hybrid, benefits, 1-click apply, reposts. Every site filter, past the ~800-job limit, monitor mode. Full description + employer profile add-on. US, Canada, UK, IE, DE, FR, IN, AU

Pricing

from $0.44 / 1,000 jobs

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

What does ZipRecruiter Jobs Scraper do?

ZipRecruiter Jobs Scraper exports job listings from ZipRecruiter search: one row per job with the title, company, location, pay (and where that pay figure came from), employment type, remote / hybrid / on-site, benefits, 1-click-apply flag, repost flag, post dates and links. Recruiters, staffing agencies, sales teams selling to hiring companies, labor-market analysts and job-board builders use it to track who is hiring, where, and for how much.

ZipRecruiter scraper · ZipRecruiter job scraper · ZipRecruiter API alternative · ziprecruiter.com job data export

  • Every ZipRecruiter search filter: keywords, any US or Canadian location, distance, posted within (days or any number of hours), employment type, experience level, remote / hybrid / on-site, 1-click apply, minimum and maximum pay.
  • Past the ~800-job limit: ZipRecruiter stops every search at about 800 jobs, and each request returns a slightly different sample. Deep search splits a capped search into narrower ones and re-walks it while that still finds new jobs, merging everything without duplicates (measured: 2,500 unique nurse jobs from one US search ZipRecruiter caps at ~800; 774 driver jobs where a plain walk finds 363).
  • Honest pay: each pay figure says whether the employer published it, ZipRecruiter parsed it from the text, or ZipRecruiter estimated it. Hidden estimates are never shipped as pay.
  • Full job details (add-on): the complete description (text, HTML or Markdown), education and experience asked for, and the employer's profile: website, industry, size, headquarters, founded year, social links and Breakroom worker rating.
  • Monitor mode: schedule it and get only the jobs posted since the last run.
  • ZipRecruiter's other countries: the UK, Ireland, Germany, France, India and Australia boards too.
  • No login, no cookies, no browser.

What data can you get from ZipRecruiter?

💼 Job title title🏢 Company company📍 Location, city, state, ZIP, county
💵 Pay text, min / max, interval salaryText📅 Yearly pay salaryMinAnnual / salaryMaxAnnual🔎 Pay source salarySource (employer / parsed / estimate)
🕒 Full-time, part-time, contract… employmentType🏠 On-site / remote / hybrid workplaceType🩺 Benefits (medical, dental, PTO…) benefits
⚡ 1-click apply isQuickApply🔁 Reposted isRepost + firstPostedDate🗓️ Posted date datePosted + "3 days ago"
⭐ Employer highlights ("Respectful managers")🏷️ Badges (Urgently hiring, Signing bonus)📝 Search-result summary descriptionSnippet
🔗 Job page, apply link, share link🖼️ Company logo, company page🆔 Job id, company id, opening id
📄 Full description (details)🎓 Education, months of experience (details)🌐 Employer website, industry, size, HQ (details)
📣 Employer social links (details)📊 Breakroom rating + responses (details)✉️ Emails / phones / links in the text (optional)

How to scrape ZipRecruiter with ZipRecruiter Jobs Scraper

  1. Create a free Apify account (it comes with monthly free credit).
  2. Open ZipRecruiter Jobs Scraper and type one or more job titles and locations, or paste ZipRecruiter search URLs.
  3. Pick filters: distance, posted within, employment type, experience, workplace, pay.
  4. Turn on Full job details if you need descriptions and employer profiles.
  5. Click Start. A 20-job search finishes in a few seconds.
  6. Download the jobs as JSON, CSV, Excel or HTML, or send them to Google Sheets, a webhook or your app.

⬇️ Input

ParameterTypeDescription
searchQueriesarrayJob titles or keywords; each runs in every location. Default: none (an example search runs).
locationsarray"Austin, TX", a ZIP code, a state, "United States", or a Canadian place ("Toronto, ON"). Empty = the whole country.
countrystringus (ziprecruiter.com: US + Canada, every filter) or a country board: uk, ie, de, fr, in, au. Default us.
startUrlsarrayZipRecruiter search URLs (their filters are kept), listing pages (/Jobs/Registered-Nurse/-in-Austin,TX), company pages (/co/<Company>/Jobs), job pages, country-board searches and jobs.
companyNamestringOnly this employer's jobs. Matched to ZipRecruiter's company record and searched with its company filter.
radiusstring5, 10, 25, 50, 100 miles or any distance. Default: ZipRecruiter's 25 miles.
postedWithin / postedWithinHoursstring / integerLast 1, 3, 5, 7, 10, 14 or 30 days, or any number of hours (e.g. 6).
employmentTypesarrayfull_time, part_time, contract, contract_to_hire, temporary, per_diem, internship, other.
experienceLevelsarrayno_experience, junior, mid, senior.
workplaceTypesarrayon_site, remote, hybrid.
applyTypestringany, quick_apply (1-click apply on ZipRecruiter), external (apply on the employer's site).
salaryMin / salaryMaxintegerYearly pay bounds, ZipRecruiter's own pay filter.
salarySourcestringany, shown (only jobs that show pay), employer (only employer-published pay).
includeKeywords / excludeKeywords / excludeCompaniesarrayKeep or drop jobs by words in the title and summary, or by company.
skipRepostsbooleanDrop reposted jobs.
includeDetailsbooleanFull description + education / experience + employer profile. Charged per job that gets a description.
descriptionFormat / descriptionMaxLengthstring / integertext, html, markdown or all; optional length cut.
extractContactsbooleanEmails, phone numbers and links the employer wrote in the description (turns on details).
deepSearchbooleanGo past ZipRecruiter's ~800-job limit: split capped searches and re-walk them while they still add new jobs.
maxItems / maxItemsPerSearchintegerTotal cap (default 100) and cap per search. You pay only for jobs delivered.
monitorMode / monitorStoreNameboolean / stringDeliver only jobs not delivered by earlier runs with the same settings.
compactbooleanCore fields only.
useUnblockerbooleanLast-resort route when ZipRecruiter refuses every other one (default on).
proxyConfigurationobjectOptional. By default the actor goes direct and switches to residential proxies only when needed.

Input JSON

{
"searchQueries": ["registered nurse", "travel nurse"],
"locations": ["Austin, TX", "Dallas, TX"],
"postedWithin": "7",
"employmentTypes": ["full_time"],
"salarySource": "shown",
"includeDetails": true,
"maxItems": 500
}

Put the job title in the query and the place in the location

"nurse Austin" as a query searches for those words everywhere; "registered nurse" + "Austin, TX" uses ZipRecruiter's location and distance filter. A blank query with a location returns every job in that place.

Use ZipRecruiter's filters before your own

Employment type, experience, workplace, 1-click apply, pay range, distance and posted-within are applied by ZipRecruiter itself, so a filtered search is fast and fully counted. Keyword, company-exclusion, pay-source and repost filters are checked on each row afterwards.

Paste a search URL to copy its filters

Set up a search on ziprecruiter.com, copy the URL from the address bar and paste it into ZipRecruiter URLs: query, location, distance, days, employment type, remote, experience, pay and 1-click apply are all read from it.

⬆️ Output

One row per job. A real row from the prefilled search (registered nurse, Austin, TX), shortened:

{
"jobId": "3iYJqr_TXBJKKWqCCEyfNA",
"title": "RN Registered Nurse (Homecare)",
"company": "Care Options for Kids",
"location": "Austin, TX",
"postalCode": "78701",
"workplaceType": "On-site",
"employmentType": "Full-time",
"salaryText": "$32 - $39/hr",
"salaryMin": 32,
"salaryMax": 39,
"salaryInterval": "hour",
"salaryMinAnnual": 64000,
"salaryMaxAnnual": 78000,
"salarySource": "employer",
"benefits": ["Medical", "Vision", "Dental", "Paid time off", "Retirement"],
"datePosted": "2026-09-25T13:41:47Z",
"isRepost": false,
"postedAgo": "18 days ago",
"applyType": "apply on employer site",
"isQuickApply": false,
"url": "https://www.ziprecruiter.com/c/Care-Options-for-Kids/Job/RN-Registered-Nurse-(Homecare)/-in-Austin,TX?jid=8f51e375d5aca5b8",
"searchQuery": "registered nurse",
"position": 1
}

With Full job details, the same row also carries description, educationRequired, experienceMonths, companyWebsite, companyIndustry, companySize, companyFounded, companyHeadquarters, companySocialLinks, breakroomRating and more.

Fields and how often they are filled

Measured on 2,500 jobs (deep search "nurse", United States) and 61 jobs with details, 2026-10-14. A field is empty when ZipRecruiter does not publish it for that job.

FieldFilledField (details)Filled
title, company, employmentType, workplaceType, datePosted, applyUrl, descriptionSnippet100%description100%
location, city99%companyWebsite, companySize77%
postalCode80%companyHeadquarters75%
benefits54%companyIndustry72%
salaryText / salaryMin / salaryMax / salarySource52%companySocialLinks69%
companyLogo55%educationRequired59%
employerHighlights22%companyAddress46%
isRepost = true20% of jobscompanyFounded, companyDescription41-43%
1-click apply40% of jobsexperienceMonths39%
jobBadgesunder 3%breakroomRating36%

Pay sources on those 2,500 jobs: employer-published 816, parsed from the description 409, ZipRecruiter estimate 70, no pay shown 1,205.

How can I use ZipRecruiter job data?

  • 🧲 Staffing and recruiting agencies: find employers hiring for the roles you place, with pay and urgency badges.
  • 📈 Sales teams: companies that post many jobs are growing; the employer website and size come with details.
  • 💵 Compensation analysts: pay ranges by title and city, with the pay source so estimates can be excluded.
  • 🗺️ Labor-market research: remote vs on-site, contract vs full-time, reposts as a sign of hard-to-fill roles.
  • 🔔 Job alerts and job boards: monitor mode on a schedule delivers only new postings.
  • 🤖 AI agents: compact rows through the API or MCP.

How much does it cost to scrape ZipRecruiter?

Pay per result, no start fee:

EventPriceWhen
Job$0.00044 per job ($0.44 per 1,000)every job row
Job details$0.00002 per job ($0.02 per 1,000)each job that gets its full description (Full job details on)
RunCost
20 jobs (the prefilled demo)$0.0088
100 jobs$0.044
100 jobs with full details$0.046
1,000 jobs$0.44

Duplicates, filtered-out jobs and jobs a monitor run already delivered are not charged. Apify's free monthly credit covers thousands of jobs.

Integrations, API, scheduling and MCP

Run it on a schedule with monitor mode to receive only new jobs. Send results to Google Sheets, Slack, Make, Zapier or n8n, or trigger webhooks when a run finishes. Call it from code with the Python or JavaScript client, or let AI assistants use it through the MCP server.

More job scrapers

All our actors: apify.com/scrapersdelight.

Limits and empty runs

  • ZipRecruiter returns at most ~800 jobs per search (offset 780 gave 22 jobs, 1,200 gave none). Use deep search, more locations or narrower filters for more.
  • ZipRecruiter answers each request from a slightly different sample, and the total it reports moves with it (one "driver" search reported 346 to 462 across consecutive pages). A plain walk reads to the largest total seen; deep search re-walks the search and keeps the new jobs. Duplicates are never delivered twice.
  • Speed on a direct connection: 20 jobs in about 3 seconds, 2,500 with deep search in about a minute. Details are read about one per 1.6 seconds, because ZipRecruiter rate-limits that request (100 jobs with details: 163 seconds); after ~150 in a row ZipRecruiter pauses the connection for ~2.5 minutes and the actor continues through a residential proxy or waits.
  • When ZipRecruiter refuses direct requests, the actor switches to residential proxies, and as a last resort to Apify's Unblocker, which reads search pages of 20 jobs (about a minute each). Employer highlights are not on those pages.
  • Country boards list title, company, place, date and a snippet (France: no snippet); details add the description, expiry date and coordinates. They have no pay, employment or experience filters.
  • An empty run costs nothing. RUN_SUMMARY lists, per search, ZipRecruiter's own total, jobs delivered, duplicates and filtered counts, and the route used.

❓ FAQ

How much does ZipRecruiter Jobs Scraper cost?

$0.44 per 1,000 jobs, plus $0.02 per 1,000 jobs when you turn on full details. No start fee; an empty run costs nothing.

How many jobs can ZipRecruiter Jobs Scraper get?

ZipRecruiter shows up to ~800 jobs per search. With deep search the actor splits a capped search and re-walks it, merging the results: one "nurse" search across the United States returned 2,500 unique jobs, and "driver" 774 where a single walk returns 363.

Can ZipRecruiter Jobs Scraper get the full job description?

Yes. Turn on Full job details: the full description (text, HTML or Markdown) plus education, experience, and the employer's website, industry, size, headquarters, social links and Breakroom rating.

Does ZipRecruiter Jobs Scraper show where the salary comes from?

Yes. salarySource says employer, job description (parsed by ZipRecruiter) or ZipRecruiter estimate, and Pay shown can keep only employer-published pay.

Can ZipRecruiter Jobs Scraper monitor new jobs?

Yes. Turn on Only new jobs (monitor) and schedule the run; each run delivers only jobs earlier runs with the same settings did not deliver.

Does ZipRecruiter Jobs Scraper work for Canada, the UK and other countries?

Canada works through ziprecruiter.com with a Canadian location. Set Country for ZipRecruiter's UK, Ireland, Germany, France, India and Australia boards.

Does ZipRecruiter Jobs Scraper need a login, cookies or an API key?

No. It reads the same public job search a visitor sees, without an account.

Can I use ZipRecruiter Jobs Scraper with the Apify API?

Yes. Start runs and read results with the Apify API or its Python and JavaScript clients; every input above is a JSON key.

Can AI agents use ZipRecruiter Jobs Scraper through MCP?

Yes. Add it to the Apify MCP server; the compact option keeps rows short.

Why did ZipRecruiter Jobs Scraper return no results?

Usually the filters exclude everything or the location was not recognised. Open RUN_SUMMARY: it shows ZipRecruiter's own total for each search and why jobs were filtered.

Your feedback

Found a bug or need a field? Open an issue on the Issues tab; we read every one.