ZipRecruiter Jobs Scraper - Salary, Company, Full Details
Pricing
from $0.44 / 1,000 jobs
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
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
- Create a free Apify account (it comes with monthly free credit).
- Open ZipRecruiter Jobs Scraper and type one or more job titles and locations, or paste ZipRecruiter search URLs.
- Pick filters: distance, posted within, employment type, experience, workplace, pay.
- Turn on Full job details if you need descriptions and employer profiles.
- Click Start. A 20-job search finishes in a few seconds.
- Download the jobs as JSON, CSV, Excel or HTML, or send them to Google Sheets, a webhook or your app.
⬇️ Input
| Parameter | Type | Description |
|---|---|---|
searchQueries | array | Job titles or keywords; each runs in every location. Default: none (an example search runs). |
locations | array | "Austin, TX", a ZIP code, a state, "United States", or a Canadian place ("Toronto, ON"). Empty = the whole country. |
country | string | us (ziprecruiter.com: US + Canada, every filter) or a country board: uk, ie, de, fr, in, au. Default us. |
startUrls | array | ZipRecruiter 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. |
companyName | string | Only this employer's jobs. Matched to ZipRecruiter's company record and searched with its company filter. |
radius | string | 5, 10, 25, 50, 100 miles or any distance. Default: ZipRecruiter's 25 miles. |
postedWithin / postedWithinHours | string / integer | Last 1, 3, 5, 7, 10, 14 or 30 days, or any number of hours (e.g. 6). |
employmentTypes | array | full_time, part_time, contract, contract_to_hire, temporary, per_diem, internship, other. |
experienceLevels | array | no_experience, junior, mid, senior. |
workplaceTypes | array | on_site, remote, hybrid. |
applyType | string | any, quick_apply (1-click apply on ZipRecruiter), external (apply on the employer's site). |
salaryMin / salaryMax | integer | Yearly pay bounds, ZipRecruiter's own pay filter. |
salarySource | string | any, shown (only jobs that show pay), employer (only employer-published pay). |
includeKeywords / excludeKeywords / excludeCompanies | array | Keep or drop jobs by words in the title and summary, or by company. |
skipReposts | boolean | Drop reposted jobs. |
includeDetails | boolean | Full description + education / experience + employer profile. Charged per job that gets a description. |
descriptionFormat / descriptionMaxLength | string / integer | text, html, markdown or all; optional length cut. |
extractContacts | boolean | Emails, phone numbers and links the employer wrote in the description (turns on details). |
deepSearch | boolean | Go past ZipRecruiter's ~800-job limit: split capped searches and re-walk them while they still add new jobs. |
maxItems / maxItemsPerSearch | integer | Total cap (default 100) and cap per search. You pay only for jobs delivered. |
monitorMode / monitorStoreName | boolean / string | Deliver only jobs not delivered by earlier runs with the same settings. |
compact | boolean | Core fields only. |
useUnblocker | boolean | Last-resort route when ZipRecruiter refuses every other one (default on). |
proxyConfiguration | object | Optional. 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.
| Field | Filled | Field (details) | Filled |
|---|---|---|---|
| title, company, employmentType, workplaceType, datePosted, applyUrl, descriptionSnippet | 100% | description | 100% |
| location, city | 99% | companyWebsite, companySize | 77% |
| postalCode | 80% | companyHeadquarters | 75% |
| benefits | 54% | companyIndustry | 72% |
| salaryText / salaryMin / salaryMax / salarySource | 52% | companySocialLinks | 69% |
| companyLogo | 55% | educationRequired | 59% |
| employerHighlights | 22% | companyAddress | 46% |
| isRepost = true | 20% of jobs | companyFounded, companyDescription | 41-43% |
| 1-click apply | 40% of jobs | experienceMonths | 39% |
| jobBadges | under 3% | breakroomRating | 36% |
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:
| Event | Price | When |
|---|---|---|
| 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) |
| Run | Cost |
|---|---|
| 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
- 🏢 Glassdoor Jobs Scraper — jobs with company ratings
- 💼 LinkedIn Jobs Scraper — LinkedIn job postings
- 🧩 ATS Jobs Scraper — jobs straight from company career pages
- 🇬🇧 Reed Jobs Scraper — UK jobs from reed.co.uk
- 🇦🇺 SEEK Jobs Scraper — Australia and New Zealand jobs
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_SUMMARYlists, 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.