This example shows how to scrape ZipRecruiter job listings in Node.js using the ZipRecruiter Jobs Scraper actor on Apify. No browser automation or HTML parsing required — just call the actor via the Apify API client and get structured job data back.
- Calls the ZipRecruiter Jobs Scraper actor with a search query and location
- Waits for the actor run to finish
- Fetches results from the Apify dataset
- Prints each job listing to the console
- Node.js v18 or higher
- An Apify account (free tier works)
- Your Apify API token
npm installCopy .env.example to .env and add your Apify API token:
cp .env.example .envThen open .env and replace your_apify_token_here with your actual token.
npm startimport { ApifyClient } from 'apify-client';
import 'dotenv/config';
// Initialize the ApifyClient with your Apify API token
// Set APIFY_TOKEN in your .env file (copy .env.example to get started)
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
// Prepare Actor input
const input = {
"search": "software engineer",
"location": "San Francisco, CA"
};
// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/ziprecruiter-jobs-scraper").call(input);
// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
console.dir(item);
});
// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docsSee sample-output.json for a full example. Each job listing includes:
| Field | Description |
|---|---|
title |
Job title |
company |
Hiring company name |
location |
Job location |
salary |
Salary range (when listed) |
jobUrl |
Direct link to the ZipRecruiter job posting |
description |
Full job description text |
postedDate |
Date the job was posted |
employmentType |
e.g. Full-Time, Part-Time, Contract |
scrapedAt |
Timestamp of when the data was collected |
searchQuery |
The search term used |
searchLocation |
The location used in the search |
- Job market research — track salary trends and in-demand skills across roles and locations
- Recruitment tools — build internal dashboards that aggregate open positions from ZipRecruiter
- Competitive analysis — monitor hiring activity at specific companies over time
- Career platforms — power job boards or recommendation engines with fresh ZipRecruiter data
- Data science projects — build datasets for labor market analysis, NLP on job descriptions, or ML models
Open the ZipRecruiter Jobs Scraper on Apify
MIT
