Ziprecruiter Scraper Ppe avatar

Ziprecruiter Scraper Ppe

Pricing

from $3.80 / 1,000 results

Go to Apify Store
Ziprecruiter Scraper Ppe

Ziprecruiter Scraper Ppe

Pay-per-event ZipRecruiter scraper. Extract job titles, salaries, companies, locations, descriptions, and apply links across 13 countries. Search by keyword, filter by job type, posting date, and salary range. Get 50+ clean fields per job including company profile, GPS coordinates, and benefits.

Pricing

from $3.80 / 1,000 results

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

ZipRecruiter Scraper - Pay Per Event

by SilentFlow

Pay only for the data you get! Proxies included, no compute costs.

Extract job listings, salaries, companies, locations, descriptions, and application links from ZipRecruiter, by URL or search query, at scale.

✨ Why use this scraper?

  • 💰 Pay per result: No compute costs, only pay for the jobs you get
  • 🌐 Proxies included: Residential proxy costs are built in, no extra configuration
  • 🔍 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

🎯 Use cases

IndustryApplication
Job Market AnalyticsTrack hiring trends, salary ranges, and demand by role across cities
Recruitment IntelligenceMonitor competitor job postings and compensation packages
Career ResearchAggregate job opportunities matching specific skills and locations
HR & StaffingBuild pipelines of open positions for staffing agencies
Salary BenchmarkingCompare salary data across regions and employment types
Market ResearchAnalyze which companies are hiring and in what roles

📥 Input parameters

URL Scraping

ParameterTypeDescription
startUrlsarrayZipRecruiter job URLs or search result URLs
ParameterTypeDescription
searchesarraySearch queries (e.g. "software engineer", "data analyst")
locationstringLocation for search (e.g. "New York, NY", "Remote"), required when using searches

Sorting & Filtering

ParameterTypeDefaultDescription
sortstringrelevanceSort order: relevance, date, distance, salary
jobTypestring,Employment type: full_time, part_time, contract, internship, temporary
postedWithinstringanytimeDate filter: today, 3days, week, month, anytime
salaryRangestring,Minimum salary filter (e.g. "50000" for $50K+)

Limits

ParameterTypeDefaultDescription
maxItemsinteger50Maximum total jobs to return
maxPagesinteger5Maximum search result pages per query (~20 jobs per page)

Options

ParameterTypeDefaultDescription
includeDetailsbooleantrueFetch each job detail page for full data (description, salary, benefits, coordinates)

Advanced

ParameterTypeDefaultDescription
concurrencyinteger5Parallel workers for detail page fetching
requestTimeoutinteger30Seconds per request
debugModebooleanfalseEnable verbose logging

📊 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

CategoryFields
Identifiersid, url
Job Infotitle, description, company, companyUrl, companyLogo
Locationlocation, city, state, country, postalCode
Coordinateslatitude, longitude
CompensationsalaryMin, salaryMax, salaryInterval, salaryCurrency, salaryText
Benefitsbenefits
EmploymentemploymentType, industry, category, skills, experienceRequirements
DatespostedDate, validThrough, postedHumanDate
ApplicationdirectApply, applyUrl
MetascrapedAt, 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 ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run_input = {
"searches": ["software engineer"],
"location": "New York, NY",
"sort": "date",
"maxItems": 50,
}
run = client.actor("silentflow/ziprecruiter-scraper-ppe").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-ppe').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

MetricValue
Fields per job30+
Jobs per search page~20
Max pages per search queryConfigurable (default: 5)
ProxiesResidential, included in the price

💡 Tips for best results

  1. Use includeDetails: true to get the full dataset, description, structured salary, benefits, GPS coordinates, and apply link
  2. Combine filters: use jobType, postedWithin, and salaryRange together to get exactly what you need
  3. Location is required for searches: always provide location when using the searches parameter
  4. Start small: set maxItems: 10 for your first run to verify the output format before scaling up
  5. 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