ZipRecruiter Job Post Scraper avatar

ZipRecruiter Job Post Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
ZipRecruiter Job Post Scraper

ZipRecruiter Job Post Scraper

Scrape job posts from ZipRecruiter

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Blue Puppy

Blue Puppy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

What does ZipRecruiter Job Search Scraper do?

ZipRecruiter Job Search Scraper extracts job listings from ZipRecruiter by keyword, location, radius, and posting date. It returns structured job data such as title, company, location, salary, employment type, benefits, posting date, company logo, apply URL, canonical job URL, and optionally the full job description.

Run it on Apify to get API access, scheduling, integrations, proxy rotation, monitoring, and downloadable datasets without maintaining scraper infrastructure yourself.

Why use ZipRecruiter Job Search Scraper?

Use this Actor to monitor hiring trends, collect leads, research compensation ranges, compare employers, enrich recruiting workflows, or build job-market datasets. It is designed for repeated searches where you want structured output instead of manually opening job posts one by one.

The scraper uses ZipRecruiter's own frontend job-card API when available. This means most metadata is fetched in batches, while full descriptions can be enabled when you need complete job text.

How to use ZipRecruiter Job Search Scraper

  1. Open the Actor on Apify.
  2. Enter a search query such as software engineer, driver, or nurse.
  3. Enter a location such as San Francisco, CA.
  4. Choose radius, posting date, and result limit.
  5. Keep the default Residential proxy for reliable runs, or change the proxy settings to suit your Apify plan.
  6. Start the run.
  7. Download results from the Dataset tab or access them through the Apify API.

Input

You can configure the scraper from the Input tab.

{
"search": "software engineer",
"location": "San Francisco, CA",
"radius": "25",
"days": "30",
"limit": 50,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Main input fields:

FieldDescription
searchJob title, keyword, or company name. Leave blank to search all jobs.
locationCity, state, or ZIP code. Required.
radiusSearch radius in miles.
daysPosting age filter. Use 0 for anytime.
limitMaximum number of jobs to save. Use 0 for unlimited.
proxyConfigurationApify proxy settings. The Residential proxy group is enabled by default for more reliable requests and safer concurrency.

Residential proxy configuration

The Actor uses Apify Residential Proxy by default. Residential IPs help reduce blocking and keep the browser session, cookies, and IP identity consistent while job pages are collected.

Output

Each dataset item represents one job post. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

{
"title": "Software Engineer",
"company": "Example Technologies",
"companyLogo": "https://www.ziprecruiter.com/svc/fotomat/public-ziprecruiter/uploads/job_page_images_v2/example.png",
"companyUrl": "https://www.ziprecruiter.com/c/Example-Technologies/Jobs",
"location": "San Francisco, CA",
"city": "San Francisco",
"state": "California",
"stateCode": "CA",
"country": "United States",
"countryCode": "US",
"locationType": "Hybrid",
"employmentType": "Full-time",
"salary": "$120,000 - $160,000/year",
"salaryInterval": "year",
"salaryMin": 120000,
"salaryMax": 160000,
"salaryMinAnnual": 120000,
"salaryMaxAnnual": 160000,
"currency": "USD",
"benefits": ["Medical", "Dental", "Vision"],
"datePosted": "2026-07-30T12:00:00.000Z",
"validThrough": null,
"description": "Example job description text...",
"externalApplyUrl": "https://example.com/apply",
"jobUrl": "https://www.ziprecruiter.com/jobs/example-job"
}

Data table

FieldTypeDescription
titleTextJob title.
companyTextHiring company name.
companyLogoImage URLCompany logo when available.
companyUrlURLCompany page URL when available.
locationTextDisplay location.
city, state, stateCode, county, country, countryCode, postalCodeTextStructured location fields when available.
locationTypeTextRemote, hybrid, or on-site signal when available.
locationTypesArrayAll source location-type enums, such as REMOTE or HYBRID.
employmentTypeTextFull-time, part-time, contract, temporary, or similar type.
employmentTypesArrayAll source employment-type enums, such as FULL_TIME.
salaryTextDisplay salary string.
salaryInterval, salaryMin, salaryMax, salaryMinAnnual, salaryMaxAnnual, currencyText/NumberStructured pay fields when available.
benefitsArrayBenefits listed on the job card or detail payload.
datePostedDatePosting date when available.
descriptionTextFull job description.
externalApplyUrlURLEmployer or application URL when available.
jobUrlURLCanonical ZipRecruiter job URL.

Pricing / Cost estimation

How much does it cost to scrape ZipRecruiter? Cost depends on result count, proxy settings, and retries caused by anti-bot checks. Each result includes a full job-description request.

The Actor fetches metadata in batches, usually one request per group of about 20 jobs, then makes one lightweight GetJobDetails request per result to collect its full description.

Tips or Advanced options

Use limit while testing so runs finish quickly. Without a proxy the Actor forces one worker to avoid sending all parallel traffic from the same container IP. Operators can tune internal worker concurrency with the ZR_WORKERS environment variable.

Every output includes full job text, making it suitable for downstream search, matching, summarization, or compliance workflows.

Environment variables can tune advanced behavior, including request timeouts, delay ranges, batch size, session request caps, and the ZipRecruiter job-card API base URL.

FAQ, disclaimers, and support

Is scraping ZipRecruiter legal? Public web data may be scraped in many cases, but you are responsible for ensuring your use complies with applicable laws, ZipRecruiter's terms, and privacy requirements. Do not collect or store sensitive personal data unless you have a lawful basis and permission to do so.

Why are some fields missing? ZipRecruiter does not provide every field for every job. The Actor returns null or an empty array when a value is unavailable.

Why are descriptions sometimes missing? ZipRecruiter may omit a description or the detail endpoint may be unavailable for an individual listing. The Actor logs the case and returns the remaining job data.

For bugs, feature requests, or custom scraping needs, use the Issues tab on the Actor page.