Ziprecruiter Scraper
Pricing
$24.99/month + usage
Ziprecruiter Scraper
ZipRecruiter job scraper with search, filters, and detail enrichment. Extract titles, salaries, companies, locations, descriptions, and apply links across 13 countries. Filter by job type, posting date, and salary. Get 50+ structured fields per job including company profile and GPS coordinates.
Pricing
$24.99/month + usage
Rating
0.0
(0)
Developer

SilentFlow
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
by SilentFlow
Extract job listings, salaries, companies, locations, descriptions, and application links from ZipRecruiter, by URL or search query, at scale.
โจ Why use this scraper?
- ๐ Search by keyword + location: Find jobs by title, company, or skill with geographic targeting
- ๐ฏ Filters & sorting: Filter by job type, posting date, salary, sort by relevance, date, or salary
- ๐ Rich structured data: 30+ fields per job including salary range, GPS coordinates, benefits, and apply link
- โก Fast concurrent scraping: Configurable parallel workers for high-throughput data collection
- ๐ Flexible input: Scrape by search query or paste ZipRecruiter URLs directly
๐ฏ Use cases
| Industry | Application |
|---|---|
| Job Market Analytics | Track hiring trends, salary ranges, and demand by role across cities |
| Recruitment Intelligence | Monitor competitor job postings and compensation packages |
| Career Research | Aggregate job opportunities matching specific skills and locations |
| HR & Staffing | Build pipelines of open positions for staffing agencies |
| Salary Benchmarking | Compare salary data across regions and employment types |
| Market Research | Analyze which companies are hiring and in what roles |
๐ฅ Input parameters
URL Scraping
| Parameter | Type | Description |
|---|---|---|
startUrls | array | ZipRecruiter job URLs or search result URLs |
Search
| Parameter | Type | Description |
|---|---|---|
searches | array | Search queries (e.g. "software engineer", "data analyst") |
location | string | Location for search (e.g. "New York, NY", "Remote"), required when using searches |
Sorting & Filtering
| Parameter | Type | Default | Description |
|---|---|---|---|
sort | string | relevance | Sort order: relevance, date, distance, salary |
jobType | string | , | Employment type: full_time, part_time, contract, internship, temporary |
postedWithin | string | anytime | Date filter: today, 3days, week, month, anytime |
salaryRange | string | , | Minimum salary filter (e.g. "50000" for $50K+) |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxItems | integer | 50 | Maximum total jobs to return |
maxPages | integer | 5 | Maximum search result pages per query (~20 jobs per page) |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
includeDetails | boolean | true | Fetch each job detail page for full data (description, salary, benefits, coordinates) |
Advanced
| Parameter | Type | Default | Description |
|---|---|---|---|
concurrency | integer | 5 | Parallel workers for detail page fetching |
requestTimeout | integer | 30 | Seconds per request |
debugMode | boolean | false | Enable verbose logging |
Proxy
| Parameter | Type | Default | Description |
|---|---|---|---|
proxy | object | Residential | Proxy configuration for scraping |
๐ Output data
Job example
{"id": "503842941","url": "https://www.ziprecruiter.com/jobs/503842941-software-engineer-a-google","title": "Software Engineer","description": "<p>We are looking for a Software Engineer to join our team...</p>","company": "Google","companyUrl": "https://www.google.com","companyLogo": "https://photos.ziprecruiter.com/google-logo.png","location": "New York, NY","city": "New York","state": "NY","country": "US","postalCode": "10001","latitude": 40.7128,"longitude": -74.006,"salaryMin": 120000,"salaryMax": 180000,"salaryInterval": "YEAR","salaryCurrency": "USD","salaryText": "$120,000 - $180,000/yr","benefits": ["Health insurance", "401(k)", "Paid time off"],"employmentType": "FULL_TIME","industry": "Technology","category": "Software Development","skills": "","experienceRequirements": "","postedDate": "2026-02-25","validThrough": "2026-03-25","postedHumanDate": "3 days ago","directApply": true,"applyUrl": "https://www.ziprecruiter.com/jobs/apply/...","scrapedAt": "2026-02-28T18:45:10Z","dataType": "job"}
๐๏ธ Data fields
| Category | Fields |
|---|---|
| Identifiers | id, url |
| Job Info | title, description, company, companyUrl, companyLogo |
| Location | location, city, state, country, postalCode |
| Coordinates | latitude, longitude |
| Compensation | salaryMin, salaryMax, salaryInterval, salaryCurrency, salaryText |
| Benefits | benefits |
| Employment | employmentType, industry, category, skills, experienceRequirements |
| Dates | postedDate, validThrough, postedHumanDate |
| Application | directApply, applyUrl |
| Meta | scrapedAt, dataType |
๐ Examples
Search for jobs in New York
{"searches": ["software engineer"],"location": "New York, NY","maxItems": 50,"maxPages": 3}
Full-time jobs posted this week
{"searches": ["data analyst"],"location": "San Francisco, CA","jobType": "full_time","postedWithin": "week","sort": "date","maxItems": 100}
High-salary remote jobs
{"searches": ["machine learning engineer"],"location": "Remote","salaryRange": "150000","maxItems": 50}
Scrape a ZipRecruiter search URL
{"startUrls": [{ "url": "https://www.ziprecruiter.com/jobs/search?search=nurse&location=Chicago%2C+IL" }],"maxItems": 100,"includeDetails": true}
๐ป Integrations
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run_input = {"searches": ["software engineer"],"location": "New York, NY","sort": "date","maxItems": 50,}run = client.actor("silentflow/ziprecruiter-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["company"], item["salaryText"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('silentflow/ziprecruiter-scraper').call({searches: ['software engineer'],location: 'New York, NY',sort: 'date',maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => console.log(item.title, item.company, item.salaryText));
๐ Performance & limits
| Metric | Value |
|---|---|
| Fields per job | 30+ |
| Jobs per search page | ~20 |
| Max pages per search query | Configurable (default: 5) |
| Proxy | Configurable (residential recommended) |
๐ก Tips for best results
- Use
includeDetails: trueto get the full dataset, description, structured salary, benefits, GPS coordinates, and apply link - Combine filters: use
jobType,postedWithin, andsalaryRangetogether to get exactly what you need - Location is required for searches: always provide
locationwhen using thesearchesparameter - Start small: set
maxItems: 10for your first run to verify the output format before scaling up - Use
postedWithin: "week"to focus on fresh job listings with active applications
โ FAQ
Q: What types of ZipRecruiter URLs are supported?
A: Job detail pages (/jobs/...) and search result pages (/jobs/search?...).
Q: Do I need a ZipRecruiter account or API key? A: No. The scraper works without any ZipRecruiter credentials.
Q: What's the difference between includeDetails: true and false?
A: With includeDetails: false, search results return basic info (title, company, location, URL). With true, each job gets a full detail fetch, adding description, structured salary, benefits, coordinates, and more.
Q: Can I search for remote jobs?
A: Yes. Set location to "Remote" to find remote positions.
Q: How many results can I get per search?
A: ZipRecruiter typically shows ~20 results per page with many pages available. Use maxPages to control pagination depth.
๐ฌ Support
- Feature requests: Let us know what you need
- Custom solutions: Contact us for enterprise integrations or high-volume needs
Check out our other scrapers: SilentFlow on Apify