ZipRecruiter Job Scraper
Pricing
from $1.00 / 1,000 jobs
ZipRecruiter Job Scraper
Scrape job listings from ZipRecruiter, including title, company, location, description, and employment type. Search by keyword with optional locations and radius filters.
Pricing
from $1.00 / 1,000 jobs
Rating
0.0
(0)
Developer
Scraptivo
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
ZipRecruiter Job Scraper collects job listings from ZipRecruiter and turns them into structured data for market research, salary benchmarking, and automated job alerts. Provide search terms with optional locations and a radius, run the Actor, and export titles, companies, descriptions, employment types, and geo-coordinates to JSON, CSV, Excel, or your preferred integration. Use it to analyze hiring demand, track compensation trends, and feed recruitment pipelines. Pricing starts at $1 per 1,000 jobs.
What can you automate with ZipRecruiter Job Scraper?
- Build a job database — Collect titles, companies, locations, descriptions, and employment types from any ZipRecruiter search query.
- Monitor hiring demand — See which skills, roles, and locations employers are posting for, in real time.
- Track compensation trends — Pull structured, normalized listings for salary benchmarking across regions and industries.
- Schedule recurring collection — Run daily or weekly on the Apify Scheduler to keep job data fresh.
- Feed recruitment workflows — Push structured job data through the Apify API or a webhook into a CRM, dashboard, or internal tool.
Who is this scraper for?
| Team | Workflow |
|---|---|
| Market researchers | Analyzing job-market trends, in-demand skills, and hiring volume. |
| Recruiters and agencies | Building prospect lists of active openings by role and location. |
| Data analysts | Feeding normalized job data into analytics dashboards and models. |
| Job-board operators | Aggregating listings into their own platform or recommendation engine. |
What data can you collect from ZipRecruiter?
| Data group | Example fields | How it helps |
|---|---|---|
| Job identity | title, url, datePosted, validThrough, description | Identify and deduplicate records with the stable job url. |
| Employer | companyName, companyUrl, companySameAs | Understand who is hiring and enrich company profiles. |
| Location | locationLocality, locationRegion, locationCountry, locationPostalCode, latitude, longitude | Map openings geographically. |
| Employment | employmentType, directApply | Filter by full-time/part-time/contract and application type. |
How to use ZipRecruiter Job Scraper
- Open the ZipRecruiter Job Scraper on Apify.
- Enter one or more Search Queries such as "Python Developer" or "Data Scientist".
- Optionally add Locations and a Search Radius in miles.
- Set Max Jobs to control the number of listings (0 = unlimited).
- Run the Actor and export the dataset or connect it to your workflow.
{"searchQueries": ["Web Developer"],"locations": ["Berlin"],"radius": 0,"maxJobs": 20,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Example workflow
Track weekly Web Developer openings in Berlin
- Schedule a run every Monday with
searchQueries=["Web Developer"]andlocations=["Berlin"]. - Export the dataset to a spreadsheet and keep
title,companyName,datePosted, andurl. - Compare this week's postings against last week's to spot new openings and closed roles.
- Deduplicate user-side against the stable job
url.
Automate and integrate your results
- Schedules — Job postings change daily. Run daily for close hiring monitoring or weekly for market research. Create separate scheduled tasks per search query so each keeps its own dataset.
- Webhooks — Enable a webhook on run completion to push fresh listings into a CRM, Google Sheets, or Slack pipeline.
- Exports and API — Download results as JSON, CSV, or Excel from the Apify Console, or call the Actor from the API:
curl "https://api.apify.com/v2/acts/scraptivo/ziprecruiter-scraper/runs?token=YOUR-APIFY-TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries": ["Web Developer"],"locations": ["Berlin"],"radius": 0,"maxJobs": 20,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}'
- Deduplication — The Actor appends new results on every run and does not deduplicate across runs. Use the stable job
urlwhen merging results.
Input reference
| Field | Type | Required | Default | What it controls |
|---|---|---|---|---|
searchQueries | Array of strings | No | [] | Job titles, skills, or keywords to search. |
startUrls | Array of URLs | No | — | Full ZipRecruiter search URLs (ignored when searchQueries is provided). |
locations | Array of strings | No | [] | Cities, regions, or "Remote"; combined with each search query. |
radius | Integer | No | 0 | Search radius in miles from each location (0 = any distance). |
maxJobs | Integer | No | 0 | Maximum job listings to scrape (0 = unlimited). |
proxyConfiguration | Proxy object | No | Apify proxy, RESIDENTIAL | Proxy settings for the run. |
Output example
Each dataset item is one job listing:
{"title": "Web Developer","url": "https://www.ziprecruiter.com/jobs/web-developer-123","datePosted": "2025-01-15","validThrough": "2025-03-15","description": "We are looking for a skilled Web Developer to join our team...","employmentType": "FULL_TIME","directApply": true,"companyName": "Tech Corp","companyUrl": "https://techcorp.com","locationLocality": "Berlin","locationRegion": "Berlin","locationCountry": "DE","locationPostalCode": "10115","latitude": "52.5200","longitude": "13.4050"}
How much does it cost to scrape ZipRecruiter?
The Actor uses pay-per-event pricing. Each job record pushed to the dataset counts as one job event, billed at $0.001 per job — that is $1 per 1,000 jobs. A one-time actor-start event is also charged per run (one event per GB of memory, minimum one). Compute units consumed are deducted from your Apify plan, and volume discounts on paid Apify plans reduce the per-1,000 rate. When your event spending limit is reached, the run stops gracefully.
Reliability and responsible use
- Proxy requirement — The Actor defaults to the Apify proxy with the RESIDENTIAL group. Residential IPs are recommended for reliable access to ZipRecruiter.
- Retries and rate limits — The Actor includes built-in retry logic and handles rate limiting gracefully.
- Conditional fields — Location coordinates and postal codes are populated when available; some fields are nullable.
- Public data — The Actor collects publicly visible job listings from ZipRecruiter.
- Responsible use — Only use the data in ways that comply with ZipRecruiter's terms of service and applicable law.
Frequently asked questions
Can I scrape ZipRecruiter by keyword and location?
Yes. Enter any keyword in searchQueries and optionally add locations and a radius in miles. Each search query is combined with each location for targeted results.
Can I schedule the ZipRecruiter Job Scraper to run automatically?
Yes. Open the Scheduler tab in Apify Console and set a recurring schedule — daily for close hiring monitoring or weekly for market research. Create separate scheduled tasks per search query.
What counts as one result?
A job record pushed to the dataset counts as one job result ($1 per 1,000 jobs). A small one-time actor-start event is also charged at the start of each run.
Why are some fields empty?
Fields such as locationPostalCode, latitude, and longitude are populated only when the platform provides them. A null value usually means ZipRecruiter has no data for that field.
How do I avoid duplicate records?
The Actor appends results on every run and does not deduplicate across runs. Use the stable job url as the key when merging a fresh run into existing data.
Do I need a proxy?
The Actor works out of the box with the default Apify residential proxy, which is recommended for reliable access to ZipRecruiter.
Related Scraptivo automations
- LinkedIn Job Scraper — Collect job listings from LinkedIn with search and filter options.
- Upwork Jobs Scraper — Scrape freelance job postings from Upwork for market research.
- Glassdoor Jobs Scraper — Extract job listings and company data from Glassdoor.
Support and custom workflows
Need a different field, source, or delivery workflow? Contact Scraptivo at scraptivo@gmail.com. Include the Actor name, sample URL, required fields, and expected volume so we can assess the request.