# ScrapeForAgents Job Listings Search API

> ScrapeForAgents Job Listings Search API 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 filters structured job listing data from the web, returning normalized job records with salary, contract type, remote policy, and location filters.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/welcome?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/scrapeforagents-job-listings-search-api-51b3266a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_npgkOTVmsg_pXSf7jQHrG

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 scrapeforagents-job-listings-search-api-51b3266a -d '<json body>'
```

Example prompt: Search for full-time software engineering jobs in the US requiring English, posted in the last 7 days, with a minimum salary of 80000, at companies with 50-250 employees — give me up to 50 results sorted by date.

## When to prefer this

Use this endpoint when you need structured, filtered job listing data from the open web with granular controls for remote policy, contract type, location, salary, and recency — especially when you want pay-per-result pricing (failed/empty runs not charged). Prefer it over generic web scrapers when you need normalized job-specific fields like contract type, occupation, and salary currency out of the box.

## Known failure modes

- No jobs match the given filters — returns empty items array (not charged)
- Invalid country code or language code returns no results or an error
- Query terms too restrictive result in zero matches
- Truncated input schema may omit some filter fields causing unexpected behavior
- Domain is parked on Hostinger DNS — service availability may be intermittent or unreliable

## 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 ID, URL, name, remote policy label, language, reference code, contract type, and salary currency. Only non-empty, successful runs are charged.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "query": {
   "type": "string",
   "description": "Words to match in the job URL and page content. All words must be in the URL slug during discovery."
  },
  "remote": {
   "type": "array",
   "items": {
    "enum": [
     "no",
     "partial",
     "punctual",
     "fulltime",
     "unknown"
    ],
    "type": "string"
   },
   "description": "Keep jobs with any selected remote work policy."
  },
  "sector": {
   "type": "array",
   "description": "Keep jobs whose employer sector labels contain any keyword."
  },
  "sortBy": {
   "enum": [
    "relevance",
    "date"
   ],
   "type": "string",
   "default": "relevance",
   "description": "Use sitemap order or sort candidate URLs by their last modified time."
  },
  "language": {
   "type": "string",
   "description": "Keep jobs written in this language code, such as en or fr."
  },
  "location": {
   "type": "string",
   "description": "City, region or address text matched against listed offices. Leave blank or use Worldwide for any location."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Stop after this many jobs. Set 0 for all discoverable matches."
  },
  "salaryMin": {
   "type": "integer",
   "minimum": 0,
   "description": "Keep jobs whose published maximum salary reaches this amount. Currency is not converted."
  },
  "datePosted": {
   "enum": [
    "any",
    "1",
    "3",
    "7",
    "14",
    "30"
   ],
   "type": "string",
   "default": "any",
   "description": "Keep jobs posted in the last selected number of days."
  },
  "occupation": {
   "type": "array",
   "description": "Keep jobs whose occupation category reference matches one of these values."
  },
  "companySize": {
   "enum": [
    "0-15",
    "15-50",
    "50-250",
    "250-2000",
    "2000+"
   ],
   "type": "string",
   "description": "Keep employers in this employee-count range."
  },
  "countryCode": {
   "type": "string",
   "description": "Two-letter country code matched against job offices, such as FR or US."
  },
  "contractType": {
   "type": "array",
   "items": {
    "enum": [
     "full_time",
     "temporary",
     "internship",
     "apprenticeship",
     "freelance",
     "vie",
     "part_time",
     "fixed_term",
     "graduate_program",
     "other"
    ],
    "type": "string"
   },
   "description": "Keep jobs with any selected contract type."
  },
  "includeDetails": {
   "type": "boolean",
   "default": true,
   "descri
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "url": null,
    "name": null,
    "remote": null,
    "language": null,
    "reference": null,
    "contractType": null,
    "salaryCurrency": null
   }
  ],
  "product": "welcome"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/scrapeforagents-job-listings-search-api-51b3266a/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)
