# ZipRecruiter Job Search Scraper (x402)

> ZipRecruiter Job Search Scraper (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes structured job listings from ZipRecruiter based on keyword, location, salary, and other filters, returning normalized job data per listing.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/ziprecruiter?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ziprecruiter-job-search-scraper-x402-349c57fb
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_HX7UuxNMWNVhPgSov22O7

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability ziprecruiter-job-search-scraper-x402-349c57fb -d '<json body>'
```

Example prompt: Search ZipRecruiter for full-time software engineer jobs in Austin, TX posted within the last 7 days, remote eligible, with a salary of at least $120,000 — grab up to 50 listings.

## When to prefer this

Choose this endpoint when you need structured, filterable job listing data from ZipRecruiter specifically — including salary filters, employment type, recency, remote flags, and geographic radius — without building your own scraper. It is pay-per-successful-call (no charge on empty or failed runs), making it cost-effective for exploratory or conditional searches. Prefer it over generic web scrapers when you want pre-normalized job fields (title, company, location, URL) from ZipRecruiter's inventory.

## Known failure modes

- Empty result set if filters are too restrictive (e.g., salary range has no matches) — no charge applies
- Invalid enum value for jobType returns a validation error
- startUrls with malformed or non-ZipRecruiter /jobs-search URLs may yield no results
- maxItems exceeding 500 or below 1 returns a validation error
- Network or scraping errors may result in a failed run — no charge applies
- Stale or expired ZipRecruiter listings may be excluded automatically

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of matched listings and an array of job items, each containing job title, company name, location (city, state, formatted string), job page URL, company logo URL, and an internal job ID. Also includes the source product label ('ziprecruiter').

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "search": {
   "type": "string",
   "description": "Job role to search for when startUrls is empty."
  },
  "jobType": {
   "enum": [
    "any",
    "full_time",
    "part_time",
    "contract",
    "internship",
    "temporary"
   ],
   "type": "string",
   "default": "any",
   "description": "Employment type filter for keyword searches."
  },
  "location": {
   "type": "string",
   "description": "City, state, or postal code for the keyword search. If omitted, the search is nationwide."
  },
  "maxItems": {
   "type": "integer",
   "default": 50,
   "maximum": 500,
   "minimum": 1,
   "description": "Stop after this many unique job listings across all searches."
  },
  "salaryMax": {
   "type": "integer",
   "maximum": 300000,
   "minimum": 0,
   "description": "Only jobs with annual salary ranges overlapping this maximum, as reported by the source."
  },
  "salaryMin": {
   "type": "integer",
   "maximum": 300000,
   "minimum": 0,
   "description": "Only jobs with annual salary ranges overlapping this minimum, as reported by the source."
  },
  "startUrls": {
   "type": "array",
   "description": "ZipRecruiter /jobs-search URLs. Search, location, radius, employment, and remote filters in the URL are read. Overrides keyword inputs."
  },
  "daysPosted": {
   "type": "integer",
   "default": 0,
   "maximum": 30,
   "minimum": 0,
   "description": "Only jobs posted within this many days; zero means any age."
  },
  "remoteOnly": {
   "type": "boolean",
   "default": false,
   "description": "Request remote jobs and remove results that are not marked remote eligible."
  },
  "radiusMiles": {
   "type": "integer",
   "default": 0,
   "maximum": 100,
   "minimum": 0,
   "description": "Search radius around the location; zero uses the site default."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "url": null,
    "city": null,
    "state": null,
    "title": null,
    "company": null,
    "location": null,
    "companyLogo": null
   }
  ],
  "product": "ziprecruiter"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ziprecruiter-job-search-scraper-x402-349c57fb/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
