ZipRecruiter Jobs Scraper
Pricing
from $3.69 / 1,000 results
ZipRecruiter Jobs Scraper
Scrape ZipRecruiter job listings by keyword, country, location, remote, distance, job type, and recency with structured job and company fields.
Pricing
from $3.69 / 1,000 results
Rating
0.0
(0)
Developer
AgentX
Maintained by CommunityActor stats
2
Bookmarked
26
Total users
9
Monthly active users
a day ago
Last modified
Categories
Share
ZipRecruiter Jobs Scraper - Job Listings API for 4 Markets
ZipRecruiter Jobs Scraper exports up to 10,000 structured job listings per run across four supported markets. Search Canada, Ireland, the United Kingdom, or the United States with market-specific controls and receive a consistent 41-field dataset covering job details, salary, employer information, application signals, and public contacts when available.
TL;DR: Enter a keyword, choose one of four countries, set the result limit, and optionally add a location. The US and Canada additionally support Remote Only, Distance, Posted Since, and Job Type; Ireland and the UK use keyword and location only.
Why Choose This API
Market-aware ZipRecruiter data with one output contract
๐ Four supported markets
Choose Canada, Ireland, the United Kingdom, or the United States. All four produce the same normalized output contract.
๐ฏ Accurate filter boundaries
The US and Canada support location, distance, posting age, employment type, and remote-only controls. Ireland and the UK support location but not the other four filters.
๐ 41 normalized fields
Every result uses the same field names for source URLs, job attributes, salary, employer data, application signals, and public contacts. Source-dependent values remain null when unavailable.
๐ Remote and employment signals
Output records may contain remote-work and employment-type signals from source listing data in any supported market, even where those values are not available as search controls.
๐ฐ Salary normalization
Collect salary fields when ZipRecruiter exposes them. The optional currency field converts available salary values after collection and does not filter which jobs are found.
Quick Start Guide
Export ZipRecruiter jobs in 3 steps
Step 1: Configure the search
Enter keyword, choose country, set max_results, and optionally enter a city or region. Add US/Canada-only filters only when one of those markets is selected.
Step 2: Run the Actor
Click Start. Leave location empty for a country-level search; no city or region is invented.
Step 3: Use the dataset
Preview the default dataset or export it in JSON, CSV, Excel, XML, RSS, or another format supported by Apify.
Input Parameters
Configuration fields
| Parameter | Type | Required | Market scope | Description | Example |
|---|---|---|---|---|---|
keyword | string | Yes | All four | Job title, skill, or company name | Software Engineer |
country | select | Yes | All four | Canada, Ireland, United Kingdom, or United States | United States |
max_results | integer | Yes | All four | Maximum jobs to return, from 1 to 10,000 | 500 |
remote_only | boolean | No | US/Canada | Return only remote listings | true |
distance | integer | No | US/Canada | 50 miles stays exact; larger values use a broad 5,000-mile range | 50 |
location | string | No | All four | City or region; country-level search is used when omitted | Austin, TX |
posted_since | date | No | US/Canada | Posting age uses the next 1, 5, 10, or 30-day window | 7 days |
job_type | select | No | US/Canada | fulltime, parttime, or contract | contract |
currency | select | No | All four | Target currency for converting available salary values | USD |
Market and filter behavior
| Behavior | United States | Canada | Ireland | United Kingdom |
|---|---|---|---|---|
| Keyword search | Available | Available | Available | Available |
Optional location | Available | Available | Available | Available |
remote_only | Available | Available | Not available | Not available |
distance | Available | Available | Not available | Not available |
posted_since | Available | Available | Not available | Not available |
job_type | Available | Available | Not available | Not available |
Exact US and Canada filter rules
distance: 50searches within 50 miles; any accepted value above 50 uses a broad 5,000-mile range.- Posting age up to 1 day uses 1 day, up to 5 days uses 5 days, up to 10 days uses 10 days, and older values use 30 days.
job_typeacceptsfulltime,parttime, orcontract.remote_only: truerestricts results to remote listings.currencyconverts available salary values after collection and never filters jobs.
Example US input
{"keyword": "Software Engineer","country": "United States","max_results": 500,"location": "Austin, TX","distance": 50,"posted_since": "7 days","job_type": "contract","remote_only": true,"currency": "USD"}
Example Ireland input
{"keyword": "Data Analyst","country": "Ireland","max_results": 500,"location": "Dublin","currency": "EUR"}
Output Data Schema
Complete 41-field job record
Every dataset item uses the fields below. Nullable fields make missing source data explicit.
Run and source fields
| Field | Type | Description |
|---|---|---|
processor | string or null | Apify Actor URL that processed the record |
processed_at | string or null | UTC processing timestamp |
platform | string or null | Source platform, normally ZipRecruiter |
platform_url | string or null | ZipRecruiter job listing URL |
official_url | string or null | Employer's original listing URL when available |
Core job fields
| Field | Type | Description |
|---|---|---|
title | string or null | Job title |
posted_date | string or null | Posting date or relative age when available |
valid_through | string or null | Closing or expiration date when available |
location | object or null | Structured location with raw and standardized values |
applicant_count | integer or null | Applicant count when available |
is_remote | boolean or null | Remote or hybrid signal identified in the listing |
description | string or null | Job description and requirements |
Classification fields
| Field | Type | Description |
|---|---|---|
job_type | string or null | Employment type parsed from the listing |
job_level | string or null | Career or seniority level when available |
job_function | string or null | Department or job function |
listing_type | string or null | Listing classification when available |
skills | string or null | Skills and attributes identified for the role |
work_from_home | string or null | Remote or hybrid arrangement when identified |
vacancy_count | integer or null | Number of openings when available |
experience_range | string or null | Experience requirement when available |
easy_apply | boolean or null | Whether direct application is available |
Salary fields
| Field | Type | Description |
|---|---|---|
salary_period | string or null | Pay period, such as monthly or yearly |
salary_minimum | number or null | Minimum disclosed salary |
salary_maximum | number or null | Maximum disclosed salary |
salary_currency | string or null | ISO currency code |
Employer fields
| Field | Type | Description |
|---|---|---|
company_name | string or null | Hiring company name |
company_type | string or null | Company ownership type when available |
company_founded | integer or null | Founding year when available |
company_industry | string or null | Industry or sector |
company_url | string or null | ZipRecruiter or employer profile URL |
company_website | string or null | Official company website |
company_logo | string or null | Company logo URL |
company_addresses | string or null | Company address text |
company_revenue | string or null | Revenue range when available |
company_description | string or null | Company overview |
company_rating | number or null | Company rating when available |
employee_count | string or null | Employee range when available |
review_count | integer or null | Review count when available |
Public contact fields
| Field | Type | Description |
|---|---|---|
emails | array or null | Public company or hiring emails when discoverable |
phones | array or null | Public company or hiring phone numbers when discoverable |
social_links | object or null | Public company social URLs grouped by platform |
Integration Examples & Options
The verified Actor ID is hlBPHbTwOaik20WFR.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("hlBPHbTwOaik20WFR").call(run_input={"keyword": "Software Engineer","country": "United States","max_results": 100,})items = client.dataset(run["defaultDatasetId"]).list_items().items
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('hlBPHbTwOaik20WFR').call({keyword: 'Software Engineer',country: 'United States',max_results: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Direct API request
curl -X POST "https://api.apify.com/v2/acts/hlBPHbTwOaik20WFR/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keyword":"Software Engineer","country":"United States","max_results":100}'
Make and n8n
Use the Apify integration in Make or n8n, select Actor ID hlBPHbTwOaik20WFR, pass the same input object, wait for the run to finish, and read the default dataset items.
- Open the Actor's API tab for generated requests in other supported languages.
- Connect completed runs to webhooks or another Apify integration.
- Read the default dataset directly or export it in an Apify-supported format.
JSON-LD Metadata
{"@context": "https://schema.org","@graph": [{"@type": "SoftwareApplication","@id": "https://apify.com/agentx/ziprecruiter-jobs-scraper#software","name": "ZipRecruiter Jobs Scraper","description": "Scrape ZipRecruiter job listings across Canada, Ireland, the United Kingdom, and the United States and export 41 structured fields when available.","applicationCategory": "BusinessApplication","applicationSubCategory": "Job Scraping API","operatingSystem": "Web, Cloud","url": "https://apify.com/agentx/ziprecruiter-jobs-scraper","dateModified": "2026-07-19","featureList": ["Searches four supported ZipRecruiter markets","Returns a consistent 41-field dataset","Applies remote, distance, posting-age, and job-type filters only in the US and Canada","Exports results through Apify datasets and integrations"],"author": { "@id": "https://apify.com/agentx#organization" },"publisher": { "@id": "https://apify.com#organization" }},{"@type": "Organization","@id": "https://apify.com/agentx#organization","name": "AgentX","url": "https://apify.com/agentx","sameAs": ["https://apify.com/agentx", "https://t.me/AiAgentApi"]},{"@type": "FAQPage","mainEntity": [{"@type": "Question","name": "Which ZipRecruiter markets can I select?","acceptedAnswer": { "@type": "Answer", "text": "Canada, Ireland, the United Kingdom, and the United States." }},{"@type": "Question","name": "Do all filters work in every market?","acceptedAnswer": { "@type": "Answer", "text": "No. Location works in all four. Remote, distance, posting age, and job type work only for the US and Canada." }},{"@type": "Question","name": "Why does a 7-day posting age use a 10-day window?","acceptedAnswer": { "@type": "Answer", "text": "ZipRecruiter uses 1, 5, 10, and 30-day search windows, so seven days rounds up to ten days." }},{"@type": "Question","name": "How much does 1,000 results cost?","acceptedAnswer": { "@type": "Answer", "text": "At the FREE tier, 1,000 results cost $4.10 plus the Actor start event. At GOLD, PLATINUM, or DIAMOND, 1,000 results cost $3.69 plus the Actor start event." }}]},{"@type": "HowTo","name": "How to export ZipRecruiter jobs with ZipRecruiter Jobs Scraper","step": [{ "@type": "HowToStep", "position": 1, "name": "Configure the search", "text": "Enter a keyword, choose one of four countries, set the maximum results, and add only filters supported by that market." },{ "@type": "HowToStep", "position": 2, "name": "Run the Actor", "text": "Click Start. Leave Location empty for a country-level search." },{ "@type": "HowToStep", "position": 3, "name": "Use the dataset", "text": "Preview or export the default dataset, or connect the completed run to an Apify integration." }]},{"@type": "BreadcrumbList","itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Apify", "item": "https://apify.com" },{ "@type": "ListItem", "position": 2, "name": "AgentX", "item": "https://apify.com/agentx" },{ "@type": "ListItem", "position": 3, "name": "ZipRecruiter Jobs Scraper", "item": "https://apify.com/agentx/ziprecruiter-jobs-scraper" }]}]}
Pricing & Cost Calculator
Pay-per-event pricing
| Event or tier | Price | Billing unit |
|---|---|---|
| Actor start | $0.01 | Run start event; the count depends on Actor memory, with a minimum of one |
| FREE result | $0.00410 | One default dataset result |
| BRONZE result | $0.00396 | One default dataset result |
| SILVER result | $0.00383 | One default dataset result |
| GOLD result | $0.00369 | One default dataset result |
| PLATINUM result | $0.00369 | One default dataset result |
| DIAMOND result | $0.00369 | One default dataset result |
Example costs at the default memory setting
| Plan | Results | Result cost | Actor start | Estimated total |
|---|---|---|---|---|
| FREE | 500 | $2.05 | $0.01 | $2.06 |
| FREE | 1,000 | $4.10 | $0.01 | $4.11 |
| FREE | 5,000 | $20.50 | $0.01 | $20.51 |
| GOLD or higher | 1,000 | $3.69 | $0.01 | $3.70 |
Actual cost depends on the number of results produced, the user's plan, and the number of Actor start events charged for the selected memory.
Use Cases & Applications
Recruiting and multi-market hiring intelligence
- Track open roles by title, employer, country, city, state, or region.
- Compare hiring activity across US, Canada, Ireland, and UK localized searches.
- Build sourcing or ATS research datasets with stable field names.
Workforce and compensation research
- Compare available salary ranges by role and location.
- Analyze extracted employment type, posting age, remote signals, and employer attributes.
- Normalize available salary values into a selected currency.
Job products and automation
- Populate a job board or internal opportunity feed.
- Schedule recurring labor-market snapshots.
- Send normalized datasets to a CRM, warehouse, dashboard, webhook, or automation platform.
FAQ
Which markets can I select?
Canada, Ireland, the United Kingdom, and the United States.
Do all filters work in every market?
No. Location works in all four. Remote, distance, posting age, and job type work only for the US and Canada.
Which job types can I select?
For the US and Canada: fulltime, parttime, and contract. These controls are not available for Ireland or the UK.
Why does a 7-day posting age use a 10-day window?
ZipRecruiter uses 1, 5, 10, and 30-day windows for this search. Seven days therefore rounds up to the 10-day window.
What happens when location is empty?
The Actor performs a country-level search and does not invent a city or region. Canada remains explicitly scoped to Canada.
Does currency filter jobs?
No. currency converts available salary values after collection and does not affect the ZipRecruiter search.
Does every result include salary and employer details?
No. Those values remain null when ZipRecruiter or the employer does not expose reliable data.
Trust & Data Responsibility
- Verified inputs: every documented filter is supported within its stated market boundary.
- Transparent billing: the Actor start event and every plan's result price are listed above.
- Explicit nullability: missing source values are not presented as verified facts.
- No ZipRecruiter credentials requested: the input schema does not ask for a username, password, cookie, or token.
Legal & Compliance
ZipRecruiter Jobs Scraper is intended for lawful collection and analysis of publicly accessible job-listing data. You are responsible for reviewing ZipRecruiter's terms, applicable privacy and database laws, employment-data rules, and the permitted use of contact information in each jurisdiction. This documentation is not legal advice.
Related Tools
- Indeed Jobs Scraper - Indeed job listings and company data
- LinkedIn Jobs Scraper - LinkedIn jobs and hiring signals
- Glassdoor Jobs Scraper - Glassdoor jobs and employer signals
Enrich Your Workflow
- All Jobs Scraper - Multi-platform job data in one schema
- All Property Scraper - Property-market datasets
- All Video Scraper - Multi-platform video metadata and media workflows
Support & Community
- Community: @Apify_Actor
- Contact team: @AiAgentApi
Last Updated: 2026-07-19