ZipRecruiter Scraper - Jobs, Salaries & Employer Leads avatar

ZipRecruiter Scraper - Jobs, Salaries & Employer Leads

Pricing

from $4.00 / 1,000 job scrapeds

Go to Apify Store
ZipRecruiter Scraper - Jobs, Salaries & Employer Leads

ZipRecruiter Scraper - Jobs, Salaries & Employer Leads

Scrape ZipRecruiter jobs by keyword and location: title, company, logo, city/state, on-site or remote, and pay as listed plus an annualised salary range. Optional full description, employment type, posted date and employer firmographics, plus deduplicated employer leads. No start fee.

Pricing

from $4.00 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by ZipRecruiter, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "ZipRecruiter" is referenced only to describe the publicly available website this Actor collects data from.

Scrape ZipRecruiter job listings by keyword and location and get back a genuinely complete record: job title, company, company page, logo, city/state, on-site / remote / hybrid, and pay — with every wage normalised to an annual figure so an hourly rate and a yearly band are finally comparable.

Turn on the detail pass and each job also carries the full job description, employment type, posted date and the hiring company's firmographics — company size, year founded, HQ location and website. That is what turns a job feed into a qualified B2B lead list: a company that is hiring is a company that is buying.

No start fee. You pay per job delivered, nothing else.

Why this ZipRecruiter scraper

Standard modeWith Fetch full job details
Fields per job2839
Job title, company, company URL, logo
City, state, on-site / remote / hybrid
Pay as listed ($28 - $35/hr)
Annualised salary min/max
New / Quick-apply / Promoted badges
Stable jobId + canonical job URL
Full job description
Employment type, posted date, valid-through
ZIP code, country
Company size, year founded, HQ, website
Deduplicated employer lead records + leadScore✅ (enriched)
Monitor mode — only jobs new since last run

Standard mode reads everything off the search results, so it is fast and cheap. The detail pass opens each job page for the description and firmographics — richer, one extra render per job. You choose per run.

Salary you can actually sort on

ZipRecruiter prints pay as free text, in whatever unit the employer chose. This actor keeps the raw string and normalises it:

salaryTextsalaryPeriodsalaryMinAnnualsalaryMaxAnnual
$28 - $35/hrHOUR58,24072,800
$1.8K - $2.5K/wkWEEK93,600130,000
$5K/moMONTH60,00060,000
$130K - $165K/yrYEAR130,000165,000

The Minimum annual salary filter compares against the annualised figure, so a $53.50/hr role is correctly kept by a $100,000 floor instead of being silently dropped.

Example output

A real, unedited record from a detail-pass run:

{
"type": "job",
"jobId": "72295d203bf506cc",
"title": "Software Engineer",
"company": "Eden Technologies Inc",
"companyUrl": "https://www.ziprecruiter.com/co/Eden-Technologies-Inc/Jobs/-in-Lockhart,TX",
"companySlug": "Eden-Technologies-Inc",
"companyLogo": "https://www.ziprecruiter.com/svc/fotomat/.../2f1a8774.jpeg",
"location": "Lockhart, TX",
"city": "Lockhart",
"state": "TX",
"postalCode": "78644",
"country": "US",
"workArrangement": "On-site",
"isRemote": false,
"salaryText": "$130K - $165K/yr",
"salaryMin": 130000,
"salaryMax": 165000,
"salaryPeriod": "YEAR",
"salaryCurrency": "USD",
"salaryMinAnnual": 130000,
"salaryMaxAnnual": 165000,
"employmentType": "Full-time",
"postedDate": "2026-06-26",
"validThrough": "2026-09-26",
"isNew": false,
"isQuickApply": true,
"isPromoted": false,
"isUrgentlyHiring": false,
"description": "Eden Technologies is hiring a Software Engineer to …",
"companySize": "11 - 50",
"companyFoundedYear": 2016,
"companyHqLocation": "Austin, TX, US",
"companyWebsite": "https://edentech.example",
"jobUrl": "https://www.ziprecruiter.com/c/Eden-Technologies-Inc/Job/Software-Engineer/-in-Lockhart,TX?jid=72295d203bf506cc",
"searchQuery": "software engineer",
"searchLocation": "Austin, TX",
"scrapedAt": "2026-08-28T01:43:52.000Z"
}

And an employer lead record (turn on Emit employer leads):

{
"type": "employer",
"company": "Methodist Health System",
"companyUrl": "https://www.ziprecruiter.com/co/Methodist-Health-System/Jobs",
"companySize": "5,001 - 10,000",
"companyFoundedYear": 1927,
"companyHqLocation": "Dallas, TX, US",
"companyWebsite": "https://methodisthealthsystem.example",
"jobCount": 7,
"locations": ["Alvarado, TX", "Dallas, TX"],
"sampleTitles": ["Registered Nurse - Emergency Department - Nights", "RN Homecare"],
"remoteJobs": 0,
"minAdvertisedSalaryAnnual": 58240,
"medianAdvertisedSalaryAnnual": 76960,
"maxAdvertisedSalaryAnnual": 111280,
"leadScore": 82
}

Input

{
"searchQueries": ["registered nurse", "nurse practitioner"],
"locations": ["Dallas, TX", "Austin, TX"],
"maxJobs": 200,
"includeJobDetails": true,
"deduplicateEmployers": true,
"salaryMin": 90000
}
FieldDescription
Search queriesJob titles or keywords. Each query runs against every location.
LocationsCity, ST, a state, a ZIP code, or Remote.
Start URLsPaste ZipRecruiter search-result or job URLs directly — supports Link remote text file and file upload.
Max jobsCap across all searches. 0 = no limit (bounded by the run timeout).
Fetch full job detailsAdds description, employment type, posted date and company firmographics. One extra render per job.
Emit employer leadsAlso output one deduplicated employer record per hiring company, with leadScore.
Remote jobs onlyKeep only roles flagged remote.
Employment typeFull-time, part-time, contract, temporary, internship.
Minimum annual salaryAnnualised comparison — see the salary table above.
Monitor modeOnly output jobs that are new since the previous run. Pairs with Schedules.
ProxyResidential required (default). ZipRecruiter blocks datacenter IPs.

Three ready-made dataset views

  • Jobs — title, company, location, arrangement, pay, annualised min/max, new flag, URL.
  • Salaries — pay-focused: raw pay, period, annualised band, currency.
  • Employer leads — company, open-job count, size, founded, HQ, website, median pay, lead score.

Use cases

  • Recruiting & sourcing — see who is hiring for a role in a market right now, with real pay bands.
  • B2B lead generation — hiring companies, deduplicated, scored, with firmographics and a website to enrich against.
  • Compensation benchmarking — annualised pay across hundreds of postings, comparable across hourly and salaried roles.
  • Labour-market research — track hiring volume, remote share and pay by city, role and employer over time.
  • Job boards & alerts — schedule with Monitor mode and publish only genuinely new postings.

Automate & schedule

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/ziprecruiter-scraper').call({
searchQueries: ['registered nurse'],
locations: ['Dallas, TX'],
maxJobs: 200,
includeJobDetails: true,
deduplicateEmployers: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`${items.filter((i) => i.type === 'job').length} jobs, ${items.filter((i) => i.type === 'employer').length} employer leads`);

Integrate with any app

Use with AI assistants (MCP)

Clean, LLM-ready JSON. Call it from Claude, ChatGPT or any agent framework through the Apify MCP server"which companies in Dallas are hiring nurses above $100k, and how big are they?" is a single tool call.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

Pricing

Pay-per-event, no start fee — you are charged only for what is delivered.

EventPrice
job — one job record$0.004
employer — one deduplicated employer lead$0.008

Employer leads are opt-in, so a plain job run is billed on job alone.

More scrapers from scrapesage

Tips

  • Start in standard mode to size a market cheaply, then re-run the shortlist with Fetch full job details for descriptions and firmographics.
  • Split wide markets by city. ZipRecruiter caps how deep a single search paginates, so Dallas, TX + Austin, TX + Houston, TX returns far more than one statewide search.
  • Dedupe on jobId across scheduled runs; dedupe on company for a clean employer list.
  • Employer leads get much richer when the detail pass is on — that is where size, founded year, HQ and website come from.
  • Keep the residential proxy. Datacenter IPs do not clear ZipRecruiter's Cloudflare challenge.

FAQ

Do I need a ZipRecruiter login or API key? No.

Why is a residential proxy required? ZipRecruiter sits behind a Cloudflare managed challenge. Datacenter IPs are refused; the actor runs a real headful browser on residential IPs, which clears it.

How often is pay actually shown? It depends heavily on the role and market — measured 50% to 92% across four test markets (50% for warehouse roles in Atlanta, 92% for electricians in Tampa). ZipRecruiter only displays pay when the employer discloses it; where it is absent the salary fields are null, never estimated.

Why do some company fields come back empty? Firmographics come from the employer's own ZipRecruiter company profile. Measured across test runs, two thirds to three quarters of employers publish size, HQ and website; year founded is the least-completed at 33-58%. Missing values are null, never invented.

Is postedDate exact? On the detail pass it comes from the posting's own structured data, normalised to YYYY-MM-DD. Every date in the column uses that one format.

Can I get only new jobs? Yes — turn on Monitor mode and schedule it. Only postings unseen in previous runs are emitted (and billed).

What does a run cost? 200 jobs in standard mode is $0.80 in event fees plus a few cents of compute. There is no start fee.

Is scraping ZipRecruiter legal? This actor collects publicly displayed job-listing data. You are responsible for using it in compliance with applicable law and ZipRecruiter's terms of use — please review those before running it at scale.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by ZipRecruiter, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

"ZipRecruiter" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official ZipRecruiter product, is not authorised or certified by ZipRecruiter, Inc., and does not distribute ZipRecruiter software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome.


Independent scraper for publicly displayed data. Not affiliated with, endorsed by, or sponsored by ZipRecruiter. "ZipRecruiter" is a trademark of its respective owner, used here for descriptive purposes only.