ZipRecruiter Scraper | $2.5 / 1k | Fast & Reliable avatar

ZipRecruiter Scraper | $2.5 / 1k | Fast & Reliable

Pricing

$2.49 / 1,000 results

Go to Apify Store
ZipRecruiter Scraper | $2.5 / 1k | Fast & Reliable

ZipRecruiter Scraper | $2.5 / 1k | Fast & Reliable

Extract structured ZipRecruiter job listings with companies, locations, compensation ranges, employment types, contacts and full descriptions. Built for hiring intelligence, labor-market research, and automated recruiting or analytics pipelines.

Pricing

$2.49 / 1,000 results

Rating

0.0

(0)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

ZipRecruiter Scraper

Slug: fatihtahta/ziprecruiter-scraper

Overview

ZipRecruiter Scraper collects structured job listing data from ZipRecruiter, including job titles, listing URLs, posting dates, company details, location details, compensation ranges, employment attributes, and application links. It is designed for teams that need repeatable, structured access to public job market data without manually reviewing search pages one by one. ZipRecruiter is one of the most widely used job marketplaces in the United States, which makes its listing data valuable for hiring analysis, employer research, market tracking, and enrichment workflows. This actor automates the collection process across direct search URLs and keyword-based searches so runs stay consistent as your scope grows. The output is organized for practical downstream use in analytics tools, spreadsheets, ETL jobs, and internal reporting systems.

Why Use This Actor

  • Market research and analytics teams: Track job volume, salary ranges, employer activity, location demand, and hiring patterns across roles, regions, and time windows.
  • Product and content teams: Discover trending job titles, compare how employers describe similar roles, and identify demand signals for new pages, reports, or editorial content.
  • Developers and data engineering teams: Feed structured job records into warehouses, dashboards, enrichment services, APIs, or recurring data pipelines without manual transformation.
  • Lead generation and enrichment teams: Identify active hiring companies, enrich company profiles with hiring context, and connect job activity to outreach, sales, or recruiting workflows.
  • Monitoring and competitive intelligence teams: Watch specific markets, employers, or role categories over time to detect changes in compensation, remote work mix, and competitor hiring activity.

Input Parameters

Provide any combination of URLs, queries, and filters to control the scope of collection.

ParameterTypeDescriptionDefault
startUrlsstring[]One or more direct ZipRecruiter URLs to scrape. These are typically search result pages, but they can also be individual listing pages when needed.
queriesstring[]Free-text job keywords such as software engineer, data analyst, or marketing manager. Each query can be combined with the optional filters below.
locationstringOptional location applied to every query. You can use a ZIP code, city, state, or City, ST format such as New York, NY.
radiusstringOptional distance filter in miles. Allowed values: 5, 10, 25, 50, 100.
remote_optionsstringOptional work arrangement filter. Allowed values: "" (all remote/on-site), no_remote (on-site), hybrid, only_remote (remote).
daysstringOptional date-posted filter. Allowed values: "" (posted anytime), 30, 10, 5, 1.
refineByEmploymentstringOptional employment type filter. Allowed values: "" (all employment types), employment_type:full_time, employment_type:part_time, employment_type:contract, employment_type:temporary, employment_type:other.
refineBySalaryintegerOptional minimum salary floor to include in query-based searches.
refineBySalaryCeilintegerOptional maximum salary ceiling to include in query-based searches.
refineByApplyTypebooleanWhen true, limits results to listings where Quick Apply is available.false
refineByExperienceLevelstring[]Optional experience level filter. Allowed values: no_experience, junior, mid, senior. You can provide one or more values.
limitintegerMaximum number of listings to save for each query or start URL seed.50000
proxyConfigurationobjectOptional Apify proxy settings for the run.Apify proxy with RESIDENTIAL group and US country

Example Input

{
"queries": [
"software engineer",
"data analyst"
],
"location": "New York, NY",
"radius": "25",
"remote_options": "hybrid",
"days": "10",
"refineByApplyType": true,
"limit": 1500
}

Output

6.1 Output destination

The actor writes results to an Apify dataset as JSON records. And the dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs without post-processing.

6.2 Record envelope (all items)

Every production record represents a single job listing and includes stable identifiers that can be normalized consistently in downstream systems.

  • type (string, required): Recommended logical record category. Use job.
  • id (string, required): Stable job identifier, available as job.id.
  • url (string, required): Canonical job URL, available as source.job_url.

Recommended idempotency key: type + ":" + id

Use this key for deduplication and upserts when the same job appears in multiple searches, multiple locations, or repeated scheduled runs. The actor's internal runtime dedupe also preserves distinct seat-level jobs by preferring job.ziprecruiter_open_seat_id and job.id before broader listing identifiers.

6.3 Examples

Example: job (type = "job")

{
"job": {
"id": "0b406c8b73d05511",
"title": "Java Engineer / Banking / Iselin / Hybrid",
"posted_at": "2026-01-15T17:33:33Z",
"rolling_posted_at": "2026-02-14T17:33:33Z",
"ziprecruiter_listing_key": "ywqwkkS7cBE__zoqkPyDLA",
"ziprecruiter_match_id": "019cf53c-efaa-7bbb-868e-2d9fbede3a30",
"ziprecruiter_open_seat_id": "0b406c8b73d05511",
"ziprecruiter_bid_tracking_data": "AAEpiU2nL4lq8lAuAerZE00I6tCZTAvVyz2ck5l0fvcGrZvuiZgPYbxTixiTd6u-yhdDZZgwAg26IDn4XfU",
"status": {
"is_active": true
},
"ziprecruiter_bsf_eligibility_code": 1
},
"source": {
"job_url": "https://www.ziprecruiter.com/c/Motion-Recruitment/Job/Java-Engineer-Banking-Iselin-Hybrid/-in-Iselin,NJ?jid=0b406c8b73d05511",
"search_results_url": "https://www.ziprecruiter.com/jobs-search?days=&lk=IT9lTkXPJTK7U-uiUz0fNQ&location=New+York%2C+NY&radius=25&refine_by_apply_type=&refine_by_employment=&refine_by_experience_level=&refine_by_location_type=&refine_by_salary=&refine_by_salary_ceil=&search=software+engineer",
"page_index": 1,
"extraction_strategy": "embedded_json",
"scraped_time": "2026-03-16T06:02:18.081268Z",
"seed": {
"id": "32148ecc4e30",
"type": "url",
"value": "https://www.ziprecruiter.com/jobs-search?days=&lk=IT9lTkXPJTK7U-uiUz0fNQ&location=New+York%2C+NY&radius=25&refine_by_apply_type=&refine_by_employment=&refine_by_experience_level=&refine_by_location_type=&refine_by_salary=&refine_by_salary_ceil=&search=software+engineer"
}
},
"company": {
"name": "Motion Recruitment",
"id": "KOwJGkdRvDNlur9AMC4w3HjpV+8=",
"jobs_url": "https://www.ziprecruiter.com/co/Motion-Recruitment/Jobs",
"canonical_display_name": "motion recruitment",
"logo_url": "https://www.ziprecruiter.com/svc/fotomat/public-nosensitive-ziprecruiter-logos/company/5cef46a9.png",
"profile_uuid": "KOwJGkdRvDNlur9AMC4w3HjpV+8=",
"profile_display_name": "Motion Recruitment",
"profile_logo_file_name": "5cef46a9.png",
"profile_page_url": "https://www.ziprecruiter.com/www.ziprecruiter.com/co/Motion-Recruitment?id=KOwJGkdRvDNlur9AMC4w3HjpV+8%3D",
"website": "motionrecruitment.com",
"founded_year": "1989",
"size": "501 - 1000 Employees",
"headquarters_location": "Boston, MA, US",
"headquarters_country": "US",
"headquarters_state": "MA",
"headquarters_city": "Boston",
"industries": [
"Recruiting and Staffing Services"
],
"twitter_url": "https://twitter.com/MotionStaffing",
"facebook_url": "https://www.facebook.com/MotionRecruitmentPartners/",
"similar_companies": [
{
"id": "8WWYca8/ldvdBzp3IfmAPRku04o=",
"display_name": "Robert Half",
"hq_city": "San Ramon",
"hq_state": "CA",
"logo_file_name": "1779d09f.png",
"company_page_url": "https://www.ziprecruiter.com/www.ziprecruiter.com/co/Robert-Half?id=8WWYca8_ldvdBzp3IfmAPRku04o%3D"
},
{
"id": "8V/wsZDRV6phTbTZmR6B8SBtE9U=",
"display_name": "Apex Systems",
"hq_city": "Glen Allen",
"hq_state": "VA",
"logo_file_name": "96252033.png",
"company_page_url": "https://www.ziprecruiter.com/www.ziprecruiter.com/co/Apex-Systems?id=8V_wsZDRV6phTbTZmR6B8SBtE9U%3D"
}
]
},
"location": {
"display_name": "Iselin, NJ US 08830",
"country_code": "US",
"state_code": "NJ",
"search_url": "https://www.ziprecruiter.com/jobs-search?location=Iselin%2CNJ",
"country": "United States",
"state": "New Jersey",
"county": "Middlesex",
"city": "Iselin",
"postal_code": "08830",
"loc_id": "bd3bc246-ca44-4195-8341-424e4240de89",
"granularity_code": 3,
"resolve_location_details": {
"confidence_code": 3,
"reason_code": 1,
"success": true
},
"area_size": 1
},
"compensation": {
"salary_min": 52.5,
"salary_max": 72,
"salary_interval": "PAY_INTERVAL_HOUR",
"currency": "USD",
"salary_interval_code": 1,
"currency_code": 5,
"salary_min_annual": 105000,
"salary_max_annual": 144000
},
"employment": {
"employment_types": [
"Other"
],
"location_types": [
"Hybrid"
],
"employment_type_codes": [
6
],
"location_type_codes": [
3
]
},
"descriptions": {
"summary": "A well-known Financial Services Company is looking for a Java Software Engineer in Iselin, NJ, Charlotte, NC, Minneapolis, MN, Dallas, TX, or Phoenix, AZ. Bring your expertise in Java and SQL Server ...",
"html": "<div>Outstanding long-term contract opportunity! A well-known Financial Services Company is looking for a Java Software Engineer in Iselin, NJ, Charlotte, NC, Minneapolis, MN, Dallas, TX, or Phoenix, AZ. <br> <br> Bring your expertise in Java and SQL Server to a company known for its robust heritage, focus on customer success, and commitment to digital innovation. You’ll collaborate with talented professionals on large-scale projects that shape the future of banking and financial services technology. If you thrive in challenging enterprise environments and love solving complex problems, we want to connect with you!<br> <br> Contract Duration: 24 months with possible conversion (no sponsorship offered) <br> <br> <strong>Required Skills & Experience</strong> <ul> <li>5+ years of professional software engineering experience<br> Deep proficiency in Java (modern versions required) </li><li>Strong command of SQL Server for database-driven applications </li><li>Experience with .NET-to-Java conversions and application modernization (highly desired) </li><li>Background in financial services, banking, or high-compliance enterprise environments preferred </li><li>Excellent communication, problem-solving, and stakeholder management skills </li></ul> <strong>What You Will Be Doing</strong> <ul> <li>Provide expert guidance and technical direction on sophisticated, high-visibility software engineering initiatives<br> Analyze and solve multifaceted engineering and architectural challenges across the development lifecycle </li><li>Collaborate closely with internal teams and external clients to translate requirements into secure, scalable solutions<br> Lead or contribute to .NET-to-Java migrations to modernize legacy systems </li><li>Ensure compliance with regulatory and company standards throughout all phases of project delivery </li><li>Strategically collaborate and consult with client personnel </li></ul></div>",
"text": "Outstanding long-term contract opportunity! A well-known Financial Services Company is looking for a Java Software Engineer in Iselin, NJ, Charlotte, NC, Minneapolis, MN, Dallas, TX, or Phoenix, AZ. Bring your expertise in Java and SQL Server to a company known for its robust heritage, focus on customer success, and commitment to digital innovation. You’ll collaborate with talented professionals on large-scale projects that shape the future of banking and financial services technology. If you thrive in challenging enterprise environments and love solving complex problems, we want to connect with you! Contract Duration: 24 months with possible conversion (no sponsorship offered) Required Skills & Experience 5+ years of professional software engineering experience Deep proficiency in Java (modern versions required) Strong command of SQL Server for database-driven applications Experience with .NET-to-Java conversions and application modernization (highly desired) Background in financial services, banking, or high-compliance enterprise environments preferred Excellent communication, problem-solving, and stakeholder management skills What You Will Be Doing Provide expert guidance and technical direction on sophisticated, high-visibility software engineering initiatives Analyze and solve multifaceted engineering and architectural challenges across the development lifecycle Collaborate closely with internal teams and external clients to translate requirements into secure, scalable solutions Lead or contribute to .NET-to-Java migrations to modernize legacy systems Ensure compliance with regulatory and company standards throughout all phases of project delivery Strategically collaborate and consult with client personnel"
},
"application": {
"apply_url": "https://www.ziprecruiter.com/job-redirect?match_token=eyJKb2JLZXkiOnsibGlzdGluZ19rZXkiOiJ5d3F3a2tTN2NCRV9fem9xa1B5RExBIiwibWF0Y2hfaWQiOiIwMTljZjUzYy1lZmFhLTdiYmItODY4ZS0yZDlmYmVkZTNhMzAiLCJiaWRfdHJhY2tpbmdfZGF0YSI6IkFBRXBpVTJuTDRscThsQXVBZXJaRTAwSTZ0Q1pUQXZWeXoyY2s1bDBmdmNHclp2dWlaZ1BZYnhUaXhpVGQ2dS15aGREWlpnd0FnMjZJRG40WGZVIn0sIkRlc3RpbmF0aW9uIjoyLCJFeHRlcm5hbEFwcGx5VXJsIjoiaHR0cHM6Ly9jbGljay5hcHBjYXN0LmlvL3QvYUdmWGlVZF9oMWZGclVjREJLdzlHY2hzVGJGX3VQUlJOVkF2LUNOQWZBOUo0cXB3Mm56d2pzTFdUZGUxdU43dz9jaWQ9W2NsaWNrX2lkXSIsIlBsYWNlbWVudElkIjo0NDA3MiwiU2VvSm9iUGFnZVVybCI6IiJ9",
"button": {
"apply_button_type_code": 4,
"destination": "External",
"destination_code": 2
}
}
}

Field reference

Job record fields (type = "job")

  • job.id (string, required): Stable job identifier.
  • job.title (string, required): Job title shown on the listing.
  • job.status.is_active (boolean, optional): Whether the listing appears active.
  • job.posted_at (string, optional): Original posted timestamp.
  • job.rolling_posted_at (string, optional): Rolling or refreshed posted timestamp.
  • job.ziprecruiter_listing_key (string, optional): ZipRecruiter listing key.
  • job.ziprecruiter_match_id (string, optional): ZipRecruiter match identifier.
  • job.ziprecruiter_open_seat_id (string, optional): ZipRecruiter seat identifier.
  • job.ziprecruiter_bid_tracking_data (string, optional): Source tracking token.
  • job.ziprecruiter_bsf_eligibility_code (integer, optional): Source eligibility code.
  • source.job_url (string, required): Canonical URL of the job detail page.
  • source.search_results_url (string, required): Search results page where the job was found.
  • source.page_index (integer, required): Results page number for this record.
  • source.extraction_strategy (string, optional): Source metadata label for the record.
  • source.scraped_time (string, required): Extraction timestamp in ISO 8601 format.
  • source.seed.id (string, required): Stable identifier for the input seed.
  • source.seed.type (string, required): Seed category such as url or query.
  • source.seed.value (string, required): Original seed value used for discovery.
  • company.name (string, optional): Company name.
  • company.id (string, optional): Company identifier.
  • company.hiring_company_id (string, optional): Hiring company identifier when available.
  • company.jobs_url (string, optional): Public jobs page for the company.
  • company.canonical_display_name (string, optional): Normalized company display name.
  • company.logo_url (string, optional): Company logo URL.
  • company.profile_uuid (string, optional): Company profile UUID.
  • company.profile_display_name (string, optional): Company profile display name.
  • company.profile_logo_file_name (string, optional): Company profile logo filename.
  • company.profile_page_url (string, optional): Company profile page URL.
  • company.website (string, optional): Company website.
  • company.founded_year (string, optional): Company founded year.
  • company.size (string, optional): Company size label.
  • company.headquarters_location (string, optional): Headquarters location text.
  • company.headquarters_country (string, optional): Headquarters country code.
  • company.headquarters_state (string, optional): Headquarters state or region code.
  • company.headquarters_city (string, optional): Headquarters city.
  • company.industries (array[string], optional): Industry labels.
  • company.twitter_url (string, optional): Twitter or X profile URL.
  • company.facebook_url (string, optional): Facebook page URL.
  • company.similar_companies (array[object], optional): Related companies shown with the profile.
  • company.similar_companies[].id (string, optional): Related company identifier.
  • company.similar_companies[].display_name (string, optional): Related company display name.
  • company.similar_companies[].hq_city (string, optional): Related company headquarters city.
  • company.similar_companies[].hq_state (string, optional): Related company headquarters state.
  • company.similar_companies[].logo_file_name (string, optional): Related company logo filename.
  • company.similar_companies[].company_page_url (string, optional): Related company page URL.
  • location.display_name (string, optional): Human-readable job location.
  • location.country_code (string, optional): Country code.
  • location.state_code (string, optional): State or region code.
  • location.search_url (string, optional): Public search URL for the location.
  • location.country (string, optional): Country name.
  • location.state (string, optional): State or region name.
  • location.county (string, optional): County name.
  • location.neighborhood (string, optional): Neighborhood name.
  • location.city (string, optional): City name.
  • location.postal_code (string, optional): Postal code.
  • location.loc_id (string, optional): Source location identifier.
  • location.granularity_code (integer, optional): Location precision code.
  • location.resolve_location_details.confidence_code (integer, optional): Location resolution confidence code.
  • location.resolve_location_details.reason_code (integer, optional): Location resolution reason code.
  • location.resolve_location_details.success (boolean, optional): Whether location resolution succeeded.
  • location.area_size (integer, optional): Area size value when available.
  • compensation.exact_amount (number, optional): Single pay amount when only one value is shown.
  • compensation.salary_min (number, optional): Minimum salary or pay value.
  • compensation.salary_max (number, optional): Maximum salary or pay value.
  • compensation.salary_interval (string, optional): Pay interval label.
  • compensation.salary_interval_code (integer, optional): Pay interval code.
  • compensation.currency (string, optional): Currency code.
  • compensation.currency_code (integer, optional): Currency code value.
  • compensation.salary_min_annual (number, optional): Annualized minimum salary.
  • compensation.salary_max_annual (number, optional): Annualized maximum salary.
  • employment.employment_types (array[string], optional): Employment type labels.
  • employment.location_types (array[string], optional): Work arrangement labels.
  • employment.employment_type_codes (array[integer], optional): Employment type codes.
  • employment.location_type_codes (array[integer], optional): Work arrangement codes.
  • employment.benefits (array[string], optional): Benefits when available.
  • descriptions.summary (string, optional): Short listing summary.
  • descriptions.html (string, optional): HTML version of the job description.
  • descriptions.text (string, optional): Plain-text version of the job description.
  • application.apply_url (string, optional): Application URL.
  • application.button.apply_button_type (string, optional): Apply button type label.
  • application.button.apply_button_type_code (integer, optional): Apply button type code.
  • application.button.destination (string, optional): Application destination label.
  • application.button.destination_code (integer, optional): Application destination code.

Data guarantees & handling

  • Best-effort extraction: fields may vary by region, session, availability, and UI experiments.
  • Optional fields: null-check in downstream code.
  • Deduplication: recommend type + ":" + id; runtime dedupe also prioritizes seat-level IDs before listing-level keys.

How to Run on Apify

  1. Open the Actor in Apify Console.
  2. Configure your search parameters, such as keywords, location, distance, remote preference, posting date, and employment filters.
  3. Set the maximum number of outputs to collect with the limit field.
  4. Click Start and wait for the run to finish.
  5. Download results in JSON, CSV, Excel, or another supported export format.

Scheduling & Automation

Scheduling

Automated Data Collection

You can schedule this actor to run automatically so your dataset stays current without manual intervention. This is useful for recurring market reports, employer monitoring, enrichment jobs, and periodic analytics refreshes.

  • Navigate to Schedules in Apify Console
  • Create a new schedule (daily, weekly, or custom cron)
  • Configure input parameters
  • Enable notifications for run completion
  • Optional: add webhooks for automated processing

Integration Options

  • Webhooks: Trigger downstream actions when a run completes
  • Zapier: Connect to 5,000+ apps without coding
  • Make (Integromat): Build multi-step automation workflows
  • Google Sheets: Export results to a spreadsheet
  • Slack/Discord: Receive notifications and summaries
  • Email: Send automated reports via email

Performance

Estimated run times:

  • Small runs (< 1,000 outputs): ~2-3 minutes
  • Medium runs (1,000-5,000 outputs): ~5-15 minutes
  • Large runs (5,000+ outputs): ~15-30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record.

Compliance & Ethics

Responsible Data Collection

This actor collects publicly available job listing and company information from ZipRecruiter for legitimate business purposes, including:

  • Labor market research and market analysis
  • Hiring trend monitoring
  • Data enrichment and internal reporting

Users are responsible for ensuring that their use of collected data complies with applicable laws, regulations, and the target site's terms. This section is informational and not legal advice.

Best Practices

  • Use collected data in accordance with applicable laws, regulations, and the target site’s terms
  • Respect individual privacy and personal information
  • Use data responsibly and avoid disruptive or excessive collection
  • Do not use this actor for spamming, harassment, or other harmful purposes
  • Follow relevant data protection requirements where applicable (e.g., GDPR, CCPA)

Support

If you need help, use the Issues tab or the actor page in Apify Console. Include the input you used with sensitive values redacted, the run ID, a short note describing expected versus actual behavior, and, if helpful, a small output sample that shows the issue clearly.