ZipRecruiter Jobs Scraper avatar

ZipRecruiter Jobs Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
ZipRecruiter Jobs Scraper

ZipRecruiter Jobs Scraper

ZipRecruiter Jobs Scraper collects job listings by keyword and location. You get titles, salaries, company names, and descriptions in a clean dataset, ready to use.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

Kawsar

Kawsar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

image

ZipRecruiter Jobs Scraper: collect job listings by keyword and location

ZipRecruiter Jobs Scraper pulls job listings from ZipRecruiter by search term and location. Each result includes the job title, company, salary range, location, and a direct link. Turn on "Fetch full job details" to also grab the full job description, posted date, and employment type from each listing's page.

What data does this actor collect?

FieldTypeDescription
jobTitleStringJob position title
companyNameStringHiring company name
locationStringCity and state
isRemoteBooleanTrue if the listing is marked remote
salaryTextStringRaw salary string as shown, e.g. $40 - $75/hr
salaryMinNumberParsed minimum salary value
salaryMaxNumberParsed maximum salary value
salaryIntervalStringPay period: HOUR, YEAR, or MONTH
easyApplyBooleanTrue if quick-apply is available
jobUrlStringDirect URL to the listing
jobIdStringZipRecruiter internal job ID
companyUrlStringURL to the company's ZipRecruiter profile
jobDescriptionStringFull plain-text description (fetchJobDetails only)
datePostedStringISO date the job was posted (fetchJobDetails only)
employmentTypeStringe.g. FULL_TIME (fetchJobDetails only)
scrapedAtStringUTC timestamp of when this record was collected

How to use this actor

Input

FieldTypeDefaultDescription
searchQueryStringrequiredJob title or keywords to search
locationStringblankCity and state, e.g. "Austin, TX"
fetchJobDetailsBooleanfalseVisit each listing page for full description and posted date
maxItemsInteger50Max listings to collect, up to 1000
requestTimeoutSecsInteger30Per-request timeout in seconds

Example input

{
"searchQuery": "data analyst",
"location": "New York, NY",
"fetchJobDetails": true,
"maxItems": 100
}

Example output

{
"jobTitle": "Senior Data Analyst",
"companyName": "Acme Corp",
"location": "New York, NY",
"isRemote": false,
"salaryText": "$85K - $110K/yr",
"salaryMin": 85000,
"salaryMax": 110000,
"salaryInterval": "YEAR",
"easyApply": true,
"jobUrl": "https://www.ziprecruiter.com/c/Acme-Corp/Job/Senior-Data-Analyst/-in-New-York,NY?jid=abc123",
"jobId": "abc123",
"companyUrl": "https://www.ziprecruiter.com/co/Acme-Corp/Jobs",
"jobDescription": "We are looking for a Senior Data Analyst...",
"datePosted": "2025-04-20",
"employmentType": "FULL_TIME",
"scrapedAt": "2025-04-28T10:30:00+00:00"
}

Use cases

  • Salary research: find out what a role actually pays across dozens of live listings, not just Glassdoor averages
  • Recruitment: see what competitors are posting before writing your own job description
  • Job feed: pipe listings into your own app, spreadsheet, or database on a schedule
  • Resume targeting: pull 50 postings for a role and see which requirements keep coming up

Performance

With fetchJobDetails off (the default), the actor collects around 20 listings per page request. Each page takes 3-5 seconds. A run of 100 listings finishes in roughly 20-30 seconds.

With fetchJobDetails on, it makes one extra request per job. Expect a few minutes for 100 listings.

FAQ

How many listings can it collect per run? Up to 1000. Use maxItems to set the limit.

Does it work for remote jobs? Leave location blank, or type "Remote" to filter for remote listings.

Why are some jobs missing salary data? ZipRecruiter only shows salary when the employer provides it. Jobs without it return null for salaryMin, salaryMax, and salaryInterval.

What does fetchJobDetails actually do? It visits each job's own page to collect the full description, posted date, and employment type. This adds roughly one request per listing. For a run of 100 jobs it is the difference between 30 seconds and a few minutes.

Can I run this on a schedule? Yes. The Apify scheduler handles daily or weekly runs without any extra setup.