# We Work Remotely Job Listings Scraper

> We Work Remotely 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).

Scrapes and returns structured remote job listings from weworkremotely.com with filtering by keyword, category, region, job type, salary, and time posted.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/weworkremotely?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/we-work-remotely-job-listings-scraper-a7cf92aa
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_iErfn6YzbOQrK3YCiK4u5

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 we-work-remotely-job-listings-scraper-a7cf92aa -d '<json body>'
```

Example prompt: Pull up to 50 remote full-time software engineering jobs from We Work Remotely posted in the last 7 days, include full descriptions, and only keep listings open to applicants in the US.

## When to prefer this

Choose this endpoint when you need structured, filtered remote job data from We Work Remotely specifically — including full descriptions, salary filtering, region/country filtering, and time-based filtering — without building your own scraper or managing rate limits. Prefer it over generic web scrapers when you want normalized job data (title, ID, type, description) ready for downstream processing.

## Known failure modes

- No jobs match the given filters — returns empty items array (not charged)
- Invalid category slug returns no results
- weworkremotely.com is unavailable or blocks scraping — run fails (not charged)
- Malformed start URL causes empty or error response
- Time filter combined with narrow keyword returns zero results

## 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 URL, type, job ID, title, identifier, and optionally the full HTML description, plain-text description, and other structured fields, along with a product label ('weworkremotely').

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "regions": {
   "type": "array",
   "default": [],
   "description": "Keep jobs whose listing tags contain any of these region phrases. Matches without case sensitivity."
  },
  "category": {
   "type": "string",
   "default": "",
   "description": "Category slug, such as remote-full-stack-programming-jobs. Used when Start URLs and search keyword are empty."
  },
  "jobTypes": {
   "type": "array",
   "default": [],
   "description": "Keep jobs matching any employment type, such as Full-Time or Contract."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Maximum number of output rows across all start URLs. Use 0 for no explicit row limit."
  },
  "cleanHtml": {
   "type": "boolean",
   "default": false,
   "description": "Output only a plain text description in the description field."
  },
  "countries": {
   "type": "array",
   "default": [],
   "description": "Keep detail records that allow applicants from any listed two-letter country code. Requires full job details."
  },
  "minSalary": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "For jobs with a stated USD salary minimum, keep those at or above this amount. Jobs without comparable pay remain included."
  },
  "startUrls": {
   "type": "array",
   "default": [],
   "description": "Public job, main listing, category, search, or filter URLs on weworkremotely.com. When set, these take priority over the fields below."
  },
  "timeFilter": {
   "enum": [
    "",
    "24h",
    "7d",
    "30d",
    "90d"
   ],
   "type": "string",
   "default": "",
   "description": "Keep only jobs posted within this time window."
  },
  "searchKeyword": {
   "type": "string",
   "default": "",
   "description": "Search job listings by keyword when Start URLs is empty. Takes priority over category and employment type."
  },
  "employmentType": {
   "enum": [
    "",
    "full-time",
    "contract"
   ],
   "type": "string",
   "default": "",
   "description": "Use the full-time or contract listing page when no URL, keyword, or category is supplied."
  },
  "includeDescription": {
   "type": "boolean",
   "default": true,
   "description": "Include the full description fields in each output row."
  },
  "includeDetailPages": {
   "type": "boolean",
   "default": true,
   "description": "Fetch each job page for the full description, salary, eligible countries, and application link. Disable for faster listing 
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "url": null,
    "type": null,
    "jobId": null,
    "title": null,
    "identifier": null,
    "description": null,
    "descriptionHtml": null,
    "descriptionText": null
   }
  ],
  "product": "weworkremotely"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/we-work-remotely-job-listings-scraper-a7cf92aa/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)
