# Workable Job Listings Scraper

> Workable Job Listings Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Searches and retrieves structured job listings from Workable with filters for location, work model, employment type, experience level, and date range.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/workable?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/workable-job-listings-scraper-ebf7a785
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_QNvU4l0x8P6ENCMOm80dK

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 workable-job-listings-scraper-ebf7a785 -d '<json body>'
```

Example prompt: Search Workable for remote full-time software engineer jobs posted in the last 7 days, focus on entry-level and mid-senior roles, and give me up to 50 results — exclude any listings from staffing agencies.

## When to prefer this

Use this endpoint when you need structured job data specifically from companies that post on Workable, with rich filtering by work model, employment type, experience level, date, and company. Prefer this over generic job board scrapers when targeting Workable's ecosystem of tech and startup employers, or when you need deduplication across multiple keyword searches in a single call.

## Known failure modes

- No results found for niche keyword or overly restrictive filter combination — returns empty items array, not charged
- Invalid enum value for workModel, employmentType, or experienceLevel — likely validation error
- postedAfter or postedBefore in wrong format — may return unexpected date range results
- maxItems set to 0 interpreted as no cap, potentially large response
- Workable platform downtime or rate limiting — may cause empty or failed run, not charged

## 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 jobs and an array of job items, each containing the job title, location, company name, company URL, company logo, company website, and company description. The product field confirms the data source as Workable.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "queries": {
   "type": "array",
   "description": "Job titles or keywords. Multiple values are searched separately and results are deduplicated. Empty searches recent public jobs."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Stop after this many unique jobs across all searches. Zero has no item cap."
  },
  "locations": {
   "type": "array",
   "description": "Cities, regions, or countries to search. Multiple values are searched separately."
  },
  "workModels": {
   "type": "array",
   "items": {
    "enum": [
     "remote",
     "hybrid",
     "on_site"
    ],
    "type": "string"
   },
   "description": "Limit jobs to remote, hybrid, or on-site work. Multiple values are combined."
  },
  "postedAfter": {
   "type": "string",
   "description": "Keep jobs created by Workable on or after this ISO date or timestamp."
  },
  "postedBefore": {
   "type": "string",
   "description": "Keep jobs created by Workable on or before this ISO date or timestamp."
  },
  "employmentTypes": {
   "type": "array",
   "items": {
    "enum": [
     "full_time",
     "part_time",
     "contract",
     "temporary",
     "other"
    ],
    "type": "string"
   },
   "description": "Limit jobs by employment type. Multiple values are combined."
  },
  "companiesExclude": {
   "type": "array",
   "description": "Skip jobs whose employer name exactly matches a value or whose website contains a value."
  },
  "companiesInclude": {
   "type": "array",
   "description": "Keep only jobs whose employer name exactly matches a value or whose website contains a value."
  },
  "experienceLevels": {
   "type": "array",
   "items": {
    "enum": [
     "internship",
     "entry_level",
     "associate",
     "mid_senior_level",
     "director",
     "executive"
    ],
    "type": "string"
   },
   "description": "Limit jobs by the experience filters available in Workable search. Multiple values are combined."
  },
  "postedWithinDays": {
   "enum": [
    "1",
    "7",
    "30"
   ],
   "type": "string",
   "description": "Use the site date filter to search jobs posted in the past 1, 7, or 30 days."
  },
  "maxPagesPerSearch": {
   "type": "integer",
   "default": 25,
   "maximum": 100,
   "minimum": 1,
   "description": "Stop each search after this many pages of 20 jobs, even if more are available."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "title": null,
    "location": null,
    "companyUrl": null,
    "companyName": null,
    "companyLogoUrl": null,
    "companyWebsite": null,
    "companyDescription": null
   }
  ],
  "product": "workable"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/workable-job-listings-scraper-ebf7a785/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
