All scrapers

Jobs & careers

ZipRecruiter Scraper

ziprecruiter.com

99.9% Success rate
3.7s Avg response
Bot detection + rate limiting Protection
1,000 calls Measured over

ZipRecruiter aggregates job postings across US employers behind bot detection. ScrapeUnblocker renders the search results in a real browser and returns the title, company, pay estimate and location for each posting, holding 99.9% across a spread of role searches at under four seconds a page.

What you can extract

  • Job title, company and location
  • Pay estimate and salary range
  • Job type and posting date
  • Employer name and rating
  • Job description snippet and apply URL

How to scrape it

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/getPageSource?url=https%3A%2F%2Fwww.ziprecruiter.com%2Fjobs-search%3Fsearch%3Dsoftware%2Bengineer&parsed_data=true"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/getPageSource",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"url": "https://www.ziprecruiter.com/jobs-search?search=software+engineer", "parsed_data": True},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const results = await su.getPageSource({
  url: 'https://www.ziprecruiter.com/jobs-search?search=software+engineer',
  parsedData: true,
});
console.log(results);

Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.

Read the API docs

Frequently asked questions

Is it legal to scrape ZipRecruiter?

Collecting publicly available ZipRecruiter data such as job titles, pay estimates and employer names is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. Some of it can be personal data, so follow the privacy rules that apply to you. ScrapeUnblocker returns the public page; what you collect and how you use it is your responsibility.

How do I scrape ZipRecruiter without getting blocked?

ZipRecruiter uses bot detection and rate limiting. ScrapeUnblocker renders the page in a real browser, rotates residential and ISP exits and handles challenges, so you get the page a visitor sees rather than a block page. In ScrapeUnblocker's benchmark it returned real content on 99.9% of 1,000 calls, about 3.7s per call.

What ZipRecruiter data can I get?

ZipRecruiter search pages give you each posting's job title, company and location, the pay estimate and salary range, job type and posting date, the employer name and rating, a job description snippet and the apply URL. Take the rendered HTML, or pass parsed_data=true to get the page back as structured JSON.

Do I need a ZipRecruiter API or account?

No. ScrapeUnblocker returns the public ZipRecruiter page as HTML, or structured JSON with parsed_data=true, so you do not need a ZipRecruiter API account. Send a job search URL to /getPageSource with your ScrapeUnblocker key. Use steps for clicks, typing or scrolling when a search needs them.

Can I monitor ZipRecruiter at scale?

Yes. Calls run in parallel up to your plan's concurrency limit: 20 to 100 concurrent requests on Pay as you go, Starter and Pro, and 200 to 400 on Business, Scale and Ultimate. Send many role and location searches at once to follow postings and pay estimates across the US job market over time.

How much does it cost to scrape ZipRecruiter?

Each ZipRecruiter request costs 1 credit, from EUR 1.00 per 1,000 on pay as you go to about EUR 0.55 per 1,000 on the Ultimate plan. Delivered pages are billed, including a site's own 404 or 410 page. A 403 block, a timeout, a 523 origin unreachable, a 429 and errors on ScrapeUnblocker's side are not billed. The free trial includes 500 requests, no card.

Related scrapers

Start scraping this site today

Free tier included. No credit card required to test it.