ZipRecruiter Scraper — Jobs by Keyword or URL + Employer Emails avatar

ZipRecruiter Scraper — Jobs by Keyword or URL + Employer Emails

Pricing

from $5.00 / 1,000 job results

Go to Apify Store
ZipRecruiter Scraper — Jobs by Keyword or URL + Employer Emails

ZipRecruiter Scraper — Jobs by Keyword or URL + Employer Emails

ZipRecruiter scraper — search jobs by keywords, location or any search URL. Full postings: salary, employment type, remote flag, company, direct apply links. Opt-in employer contact-email enrichment for recruiting lead-gen. Filters for date, radius, easy-apply. Pay per result, JSON or CSV out.

Pricing

from $5.00 / 1,000 job results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Scrape ZipRecruiter job listings at scale: search by keyword + location or paste any ZipRecruiter search URL, and get full postings — salary, employment type, remote flag, company details, precise coordinates and direct/external apply links. Flip one toggle and the scraper also finds a verified employer contact email for each job's company — turning job data into ready-to-use recruiting and lead-gen lists.

Pricing (pay per event)

EventPriceWhen charged
Actor start$0.005Once per run (per GB of run memory)
Job result$0.005Per job pushed to the dataset
Employer email found$0.02Only when opt-in enrichment finds a verified contact email

Example: 1,000 jobs ≈ $5. With email enrichment on and a ~30% hit rate: 1,000 jobs + 300 emails ≈ $11. Emails are billed only when found — misses are free.

Why Scrape ZipRecruiter?

ZipRecruiter is one of the largest job posting platforms in the United States, aggregating millions of job listings from various sources. Scraping ZipRecruiter offers invaluable data for:

  1. Labor Market Analysis: Track job trends, salary ranges, and in-demand skills across industries and locations.
  2. Competitive Intelligence: Monitor hiring patterns of competitors and identify emerging industry trends.
  3. Recruitment Strategies: Gain insights into job descriptions, required qualifications, and benefits to optimize your own job postings.
  4. Career Research: Analyze job requirements and salaries for specific roles to guide career decisions or negotiations.
  5. Economic Research: Use job posting data as a leading indicator of economic health and industry growth.
  6. AI and Machine Learning: Build robust datasets for training job matching algorithms or predictive models for career progression.

What Can You Scrape?

Our enhanced ZipRecruiter scraper allows you to extract comprehensive information, including:

Basic Job Information

  • Job titles, descriptions, and requirements
  • Salary information and benefits
  • Company details and profiles
  • Job locations with precise coordinates
  • Posting dates and application deadlines
  • Employment type (Full-time, Part-time, Contract, etc.)

Enhanced Data Extraction

  • Structured Data: Rich JSON-LD schema information
  • Meta Information: SEO tags, Open Graph, and Twitter Card data
  • Social Sharing: Facebook, LinkedIn, Twitter, and RSS links
  • Apply Information: External application URLs and tracking data
  • Geographic Data: Precise latitude/longitude coordinates
  • Technical Metadata: Job source, feed information, and tracking tokens

Traditional Data Points

  • Salary information and benefits
  • Industry classifications and job categories
  • Application methods and links
  • Company logos and job listing images
  • Remote work opportunities

By leveraging this comprehensive data extraction, you can gain deeper insights into the job market, identify trends, and make data-driven decisions for your business, research, or personal career growth.

How it works

This actor allows you to scrape job listings from both ZipRecruiter.com (US) and ZipRecruiter.ie (Ireland) platforms, extracting detailed job information using advanced Cheerio-based parsing techniques.

Features

Multi-Region Support: Now supports scraping from multiple ZipRecruiter domains:

United States (ZipRecruiter.com)

Ireland (ZipRecruiter.ie)

India (ZipRecruiter.in)

Enhanced Data Extraction: Utilizes advanced Cheerio-based parsing to extract:

  • Complete structured data (JSON-LD schema)
  • Meta tags and social media information
  • Precise geographic coordinates
  • Rich job descriptions with HTML formatting
  • External application tracking data

How to Use

  1. Set Up: Ensure you have an Apify account and access to the Apify platform.
  2. Configure Input: Set the search URL(s) for the job listings you want to scrape.
  3. Configure Proxy: You need to use proxy settings for enhanced reliability and to avoid potential IP blocks, please use residential proxies from USA or Ireland.
  4. (Optional) Set Max Items (parameter: maxItems) to limit the number of job listings to scrape.
  5. (Optional) Enable externalApplyOnly to keep only jobs that redirect candidates to an external apply flow.
  6. Run the actor and obtain the extracted data in your preferred format.
  7. Data Collection: The scraper will output data in your chosen format, which can include JSON, CSV, Excel, or others as supported by Apify.

Input Configuration

Here's an example of how to set up the input for scraping fire alarm technician jobs in New York:

{
"startUrls": [
{
"url": "https://www.ziprecruiter.ie/jobs/search?q=backend&l=&lat=&long="
},
{
"url": "https://www.ziprecruiter.com/jobs-search?form=jobs-landing&search=fire+alarm+technician&location=New+York%2C+NY"
}
],
"maxItems": 1000,
"maxConcurrency": 10,
"minConcurrency": 1,
"maxRequestRetries": 10,
"externalApplyOnly": false,
"enrichEmails": false,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
],
"apifyProxyCountry": "US"
}
}

Output Structure

Each dataset item now includes two normalized apply fields:

  • isExternalApply: true when the job uses an external apply flow.
  • externalApplyUrl: the normalized external apply redirect URL when available.

When externalApplyOnly is enabled, only items with isExternalApply: true are emitted.

The output data typically includes:

{
"Title": "Full-Time Alarm technicians",
"isExternalApply": false,
"externalApplyUrl": "",
"IsExternal": false,
"IsNewJob": false,
"IsOrganic": false,
"IsActiveEmployer": false,
"OrgName": "Securetell Inc",
"OrgURL": "/co/Securetell-Inc/Jobs",
"LocationURL": "/jobs-search?search=Fire Alarm Technician&location=Westbury,NY",
"City": "Westbury",
"State": "NY",
"Benefits": null,
"SaveJobURL": "[URL for saving the job]",
"CompanyLogoURL": "",
"IsJobSaved": false,
"HasZipApply": true,
"QuickApplyHref": "[URL for quick apply]",
"ShowSalary": true,
"FormattedSalary": "$25 Hourly",
"FormattedSalaryShort": "$25 / hr",
"SalarySource": "provided",
"EmploymentType": "Full-Time",
"EmploymentTags": {},
"WhyWorkHereBlurb": "",
"EncryptedQuizID": "827e0df3",
"JobURL": "https://www.ziprecruiter.com/c/Securetell-Inc/Job/Full-Time-Alarm-technicians/-in-Westbury,NY?jid=dff3b05032fd7e28",
"Href": "[URL for job application]",
"ApplyURL": "",
"AppliedStatus": 2,
"FirstSeenDaysAgo": 24,
"TapURL": "",
"OpenInTab": false,
"QuizID": 226379264,
"Snippet": "Growing <b>Alarm</b> Company based in Nassau County is looking for Full-Time <b>technicians</b> with good&nbsp;...&nbsp;We install and service <b>fire</b> <b>alarms</b>, burglar <b>alarms</b>, and other security related systems. Candidates&nbsp;...",
"Source": "ZipRecruiter",
"LVK": "VklYGmxpudK3jnCJl23TbA.--NWLhYBIPs",
"Lat": 40.75566101074219,
"Lng": -73.5876235961914,
"BuyerType": "subs_fulfillment",
"Company": {
"uuid": "zr_missing_company_default"
},
"ImpressionID": "5Z6lVs8Bhgoo29-8",
"jobDetails": {
"ListingVersionKey": "VklYGmxpudK3jnCJl23TbA.--NUpNgqqxo",
"EncryptedQuizID": "",
"JobTitle": "Full-Time Alarm technicians",
"JobLocation": "Westbury, NY",
"Description": "<h3>Job Description</h3><div><div>Growing Alarm Company based in Nassau County is looking for Full-Time technicians with good communication skills, willing to learn to join our team. We install and service fire alarms, burglar alarms, and other security related systems.<br><br></div>...[Full description]</div>",
"PostedTime": "24 days ago",
"CompanyDetails": {
"Name": "Securetell Inc",
"WhyWorkHereBlurb": "",
"Description": "",
"LogoURL": "",
"Address": "",
"City": "Westbury",
"State": "NY",
"CountryCode": "USA",
"Zipcode": "11590",
"SearchURL": "/co/Securetell/Jobs",
"IsCompanyPageIndexed": false,
"Website": "",
"JoinedYear": "2021",
"Followers": 14
},
"CompanyLogo": {
"URL": "",
"Width": "",
"Height": ""
},
"IsDisplaySalary": true,
"Salary": "$25 Hourly",
"EmploymentType": "Full-Time",
"Benefits": null,
"SaveJobURL": "[URL for saving the job]",
"RelatedDirpURL": "/jobs-search?search=Summer-Fire-Alarm-Technician&location=Westbury,-NY",
"ZipApplyPaidJobPageURL": "[URL for ZipApply paid job page]",
"IsJobSaved": false,
"BackToJobsURL": "/Jobs/Summer-Fire-Alarm-Technician",
"CanInterceptOnZR": true,
"DisableJobApply": false,
"HasCompanyTab": false,
"JobIsClosed": false,
"IsEstimatedPay": false,
"IsRemote": false,
"Industry": "Real Estate",
"ExtendedJobDetails": null,
"JobCategoryTitle": "Full-Time Alarm technicians",
"JobPageImageData": {
"ImagePath": "[URL for job page image]",
"ImageAlt": "Securetell Inc job posting for a Full-Time Alarm technicians in Westbury, NY with a salary of $25 Hourly with a map of Westbury location.",
"ImageTitle": "Full-Time Alarm technicians Job Opening in Westbury, NY at Securetell Inc"
}
}
}

Property Descriptions

  • isExternalApply: Normalized boolean flag indicating whether the job uses an external apply flow
  • externalApplyUrl: Normalized external apply redirect URL when ZipRecruiter exposes one
  • Title: The title of the job listing
  • IsExternal: Boolean indicating if the job is from an external source
  • IsNewJob: Boolean indicating if this is a newly posted job
  • IsOrganic: Boolean indicating if this is an organic (non-sponsored) listing
  • IsActiveEmployer: Boolean indicating if the employer is actively hiring
  • OrgName: Name of the organization offering the job
  • OrgURL: URL path to the organization's ZipRecruiter page
  • LocationURL: URL path for searching similar jobs in this location
  • City: City where the job is located
  • State: State where the job is located
  • Benefits: List of benefits offered (null if not specified)
  • SaveJobURL: URL for saving the job to a user's account
  • CompanyLogoURL: URL of the company's logo image
  • IsJobSaved: Boolean indicating if the job has been saved by the user
  • HasZipApply: Boolean indicating if the job can be applied to via ZipRecruiter
  • QuickApplyHref: URL for quick application process
  • ShowSalary: Boolean indicating if the salary is displayed
  • FormattedSalary: Formatted string of the salary
  • FormattedSalaryShort: Short formatted string of the salary
  • SalarySource: Source of the salary information
  • EmploymentType: Type of employment (e.g., Full-Time, Part-Time)
  • EmploymentTags: Additional tags related to employment
  • WhyWorkHereBlurb: Short description of why to work at this company
  • EncryptedQuizID: Encrypted ID for any associated quiz
  • JobURL: Full URL of the job listing on ZipRecruiter
  • Href: URL for applying to the job
  • ApplyURL: Alternate URL for applying (if different from Href)
  • AppliedStatus: Numeric status indicating if/how the job has been applied to
  • FirstSeenDaysAgo: Number of days since the job was first seen
  • TapURL: URL for mobile tap actions
  • OpenInTab: Boolean indicating if the job should open in a new tab
  • QuizID: ID of any associated quiz
  • Snippet: Short snippet or summary of the job description
  • Source: Source of the job listing (e.g., ZipRecruiter)
  • LVK: Listing Version Key (unique identifier for the listing version)
  • Lat: Latitude of the job location
  • Lng: Longitude of the job location
  • BuyerType: Type of buyer for this job listing
  • Company: Object containing company information
  • ImpressionID: Unique ID for this impression of the job listing

jobDetails Property Descriptions

  • ListingVersionKey: Unique key for this version of the listing
  • EncryptedQuizID: Encrypted ID of any associated quiz
  • JobTitle: Title of the job
  • JobLocation: Location of the job
  • Description: Full HTML description of the job
  • PostedTime: When the job was posted
  • CompanyDetails: Object containing detailed company information
  • CompanyLogo: Object containing company logo information
  • IsDisplaySalary: Boolean indicating if salary is displayed
  • Salary: Salary information
  • EmploymentType: Type of employment
  • Benefits: List of benefits (if any)
  • SaveJobURL: URL for saving the job
  • RelatedDirpURL: URL for related job searches
  • ZipApplyPaidJobPageURL: URL for ZipApply paid job page
  • IsJobSaved: Boolean indicating if the job is saved
  • BackToJobsURL: URL to return to job search results
  • CanInterceptOnZR: Boolean indicating if ZipRecruiter can intercept the application
  • DisableJobApply: Boolean indicating if job application is disabled
  • HasCompanyTab: Boolean indicating if there's a company information tab
  • JobIsClosed: Boolean indicating if the job listing is closed
  • IsEstimatedPay: Boolean indicating if the pay is an estimate
  • IsRemote: Boolean indicating if the job is remote
  • Industry: Industry category of the job
  • ExtendedJobDetails: Additional job details (if any)
  • JobCategoryTitle: Category title for the job
  • JobPageImageData: Object containing image data for the job page

Note: Some fields may be empty or null depending on the specific job listing.

External Apply Notes

  • externalApplyOnly works best on search result URLs because the SERP payload contains the strongest apply metadata.
  • Some individual job pages still expose directApply in their structured data even when the originating SERP card was external. The actor preserves the stronger SERP signal so external jobs are not dropped.
  • externalApplyUrl may still point to a ZipRecruiter redirect URL. The final third-party destination is usually embedded behind that redirect token.

Employer Contact Emails (opt-in)

Set "enrichEmails": true and every job record gains three extra fields:

  • contactEmail — best verified email for the hiring company
  • contactWebsite — the company website the email was found on
  • emailEnrichment — full enrichment detail (all emails found, source, confidence)

Discovery uses the company name + location with a business-domain guard (no residential or junk domains) and on-site contact-page scraping. Charged only on success — $0.02 per email actually found.

FAQ

How much does a run cost? $0.005 per job + $0.005 actor start. 500 jobs ≈ $2.51. Email enrichment adds $0.02 per email found (only when found).

Do I need proxies? Yes — use residential proxies (US for ziprecruiter.com; IE/IN for the regional sites). Apify RESIDENTIAL works out of the box.

Which domains are supported? ziprecruiter.com (US), ziprecruiter.ie (Ireland), ziprecruiter.in (India).

Can I keep only external-apply jobs? Yes — set externalApplyOnly: true to keep only jobs that redirect to an external ATS (ideal for sourcing direct employer application links).

Support

Additional Services

Explore More Scrapers

Job-market data from the same author: Indeed, Glassdoor, LinkedIn Jobs, Wellfound, Naukri, StepStone, Monster, Seek, Reed, TotalJobs — full catalog at apify.com/memo23.

⚠️ Disclaimer

This actor extracts only publicly available data from ZipRecruiter job listings, for legitimate uses such as market research, recruiting and analytics. It is not affiliated with or endorsed by ZipRecruiter. You are responsible for using the extracted data in compliance with applicable laws and ZipRecruiter's terms of service.