ZipRecruiter Jobs Scraper Pro avatar

ZipRecruiter Jobs Scraper Pro

Pricing

from $1.00 / 1,000 results

Go to Apify Store
ZipRecruiter Jobs Scraper Pro

ZipRecruiter Jobs Scraper Pro

Extract job postings from ZipRecruiter.com with FULL job descriptions. Returns title, company, location, salary, skills, and the full job description body per listing. Walks paginated search results.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(22)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

23

Bookmarked

20

Total users

12

Monthly active users

8 days ago

Last modified

Share

Extract job postings from ZipRecruiter.com with full job descriptions — titles, companies, locations, salary ranges, remote/hybrid flags, apply URLs, and the complete job description body per listing.

Features

  • Full job descriptions — visits each job detail page to extract the complete description text
  • 18 output fields per job — includes all search-card data plus the full description
  • Search by keyword and location — or pass any ZipRecruiter search URL directly
  • Employment type, days posted, radius, remote filters available
  • Pagination — walks &page=N up to maxItems
  • Parsed salary ranges$80K - $180K/yrsalaryMin=80000, salaryMax=180000, salaryPeriod=year
  • City + state extracted from location text
  • Remote/hybrid detection — boolean flags set when location mentions these
  • Deduplicated — each card ID output only once (ZipRecruiter renders each job twice)
  • Omit-empty output — fields absent in source data are omitted rather than set to null or zero

Requirements

RESIDENTIAL US proxy required. ZipRecruiter uses Cloudflare with aggressive datacenter IP blocking. The proxy is pre-configured in the input — do not disable it.

Input

FieldTypeDefaultDescription
startUrlsArrayZipRecruiter search-result URLs with filters preserved
searchStringKeyword shortcut (e.g., "nurse", "data scientist")
locationStringCity/state for keyword shortcut (e.g., "Austin, TX")
jobTypeEnumanyEmployment type: any, full_time, part_time, contract, internship, temporary
daysPostedInteger0Posted within N days (0 = any, max 30)
radiusMilesInteger0Search radius in miles (0 = ZR default, max 100)
remoteOnlyBooleanfalseRestrict to remote-eligible positions
maxItemsInteger50Maximum jobs to return (1–500)
proxyConfigurationObjectRESIDENTIAL USPre-configured; do not disable
{
"search": "data scientist",
"location": "San Francisco, CA",
"maxItems": 25
}

Example Input — Direct URL

{
"startUrls": [
"https://www.ziprecruiter.com/jobs-search?search=nurse&location=Chicago%2C+IL&radius=25"
],
"maxItems": 50
}

Example Input — With filters

{
"search": "software engineer",
"location": "Austin, TX",
"jobType": "full_time",
"daysPosted": 7,
"remoteOnly": false,
"maxItems": 100
}

Output

Each job record contains the following fields (omit-empty — fields without data are not included):

Identity

FieldTypeDescription
idStringZipRecruiter job-card ID token
jidStringShort job ID parsed from URL jid param
urlStringFull job posting URL
titleStringJob title

Company

FieldTypeDescription
companyStringHiring company name
companyUrlStringCompany profile URL
companyLogoStringCompany logo image URL

Location

FieldTypeDescription
locationStringFull location text (incl. Remote/Hybrid suffix)
cityStringCity (parsed)
stateString2-letter state abbreviation (parsed)
isRemoteBooleantrue if location contains "remote"
isHybridBooleantrue if location contains "hybrid"

Salary

FieldTypeDescription
salaryStringFormatted salary text (e.g., "$80K - $180K/yr")
salaryMinNumberMinimum salary (USD, absolute)
salaryMaxNumberMaximum salary (USD, absolute)
salaryPeriodStringyear / hour / month / week

Description (Pro)

FieldTypeDescription
descriptionStringFull job description text extracted from the detail page

Metadata

FieldTypeDescription
scrapedAtStringISO 8601 UTC scrape timestamp

Example Output

{
"id": "abc123",
"jid": "f4a8b2c1d",
"title": "Senior Software Engineer",
"company": "Acme Corp",
"companyUrl": "https://www.ziprecruiter.com/c/Acme-Corp",
"location": "Austin, TX",
"city": "Austin",
"state": "TX",
"salary": "$130K - $160K/yr",
"salaryMin": 130000,
"salaryMax": 160000,
"salaryPeriod": "year",
"description": "We are looking for a senior software engineer to join our team...",
"url": "https://www.ziprecruiter.com/c/Acme-Corp/Job/...",
"scrapedAt": "2026-01-15T12:34:56Z"
}

FAQ

Q: Why does this require a residential proxy? ZipRecruiter is protected by Cloudflare which aggressively blocks datacenter IPs. The Pro version visits individual job detail pages to extract full descriptions, which requires a residential US proxy. The proxy is pre-configured in the input schema.

Q: How do I get the full job description? It's included automatically in the description field. The Pro version visits each job detail page after collecting search results.

Q: How do I construct a search URL? Run a search on ziprecruiter.com with your filters applied, then copy the URL. Or use the search + location + filter inputs to have the actor build the URL automatically.

Q: Why is each job returned only once if the page shows 40 cards? ZipRecruiter renders each job twice — in both the search list pane and the detail pane. The scraper deduplicates by card ID so you get ~20 unique jobs per page.

Q: How are salary values normalized? Salary text like $80K - $180K/yr is parsed so salaryMin=80000.0, salaryMax=180000.0 (full dollar amounts, not K), salaryPeriod=year. If only one value appears, both min and max are set to that value. If no salary is available, salary fields are omitted.

Q: What happens if ZipRecruiter blocks all sessions? A sentinel record {"type":"job_ziprecruiter_blocked", ...} is emitted so the run exits with code 0. You can detect this in downstream pipelines by checking the type field.

Use Cases

  • Talent intelligence — monitor hiring velocity for competitor companies
  • Compensation research — aggregate salary ranges by role, location, and experience level
  • Remote-work trends — filter and track remote listings across industries
  • Job description analysis — full text available for NLP, skills extraction, or AI pipelines
  • Market entry analysis — see how many companies are hiring in a specific region
  • Labor-market dashboards — feed directly into BI tools without post-processing nulls