# Exende Job Changes API

> Exende Job Changes API is a paid API for AI agents from api.exende.dev, paid per call via x402, $0.04/call, status unknown (last checked 2026-10-22).

Returns jobs newly observed or no longer observed for a given company domain over the past seven days, with net change counts and observation timestamps.

## Facts

- Endpoint: GET https://api.exende.dev/v1/jobs/changes?utm_source=zero.xyz
- Price: $0.04/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-22
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/exende-job-changes-api-9ffd3b28
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_JsyutoPbUQR8RpFRtxSZV

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 exende-job-changes-api-9ffd3b28
```

Example prompt: Can you pull up the job changes for stripe.com over the past 7 days — how many new roles appeared and how many disappeared from their active listings?

## When to prefer this

Choose this endpoint when you need a week-over-week delta view of a specific company's job posting activity — specifically the count of roles added and removed — rather than a snapshot of current openings. Prefer it over a general job search endpoint when the goal is trend detection, hiring momentum analysis, or change monitoring for a known company domain.

## Known failure modes

- Missing or invalid company domain returns a validation error
- Company domain not in Exende's monitored catalogue returns no data or a non-available status
- Malformed domain (includes URL scheme, port, or path) is rejected by schema validation
- Payment failure via x402 results in 402 response before data is returned
- Period values other than '7d' are unsupported and rejected

## How this service works

Inspect jobs entering or leaving one company’s observed active catalogue over the past seven days.

## Output

Returns a structured object containing the company name and domain, a count of newly observed jobs, a count of jobs no longer observed, a net change integer, the cohort job total (capped at 5000), and two timestamped snapshots (previous and latest observation) each with their active job counts. Also includes metadata about the observation period, freshness, coverage methodology, and limitations.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "company"
     ],
     "properties": {
      "period": {
       "enum": [
        "7d"
       ],
       "type": "string",
       "default": "7d",
       "description": "Seven-day observation window; other periods are unsupported."
      },
      "company": {
       "type": "string",
       "example": "example.com",
       "maxLength": 253,
       "description": "ASCII company domain; no URL scheme, port or path."
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "data",
      "meta"
     ],
     "properties": {
      "data": {
       "type": "object",
       "required": [
        "company",
        "status",
        "newly_observed_jobs",
        "no_longer_observed_jobs",
        "net_observed_change",
        "previous_observation",
        "latest_observation",
        "cohort_jobs"
       ],
       "properties": {
        "status": {
         "type": "string",
         "const": "available"
        },
        "company": {
         "type": "object",
         "required": [
          "name",
          "domain"
         ],
         "properties": {
          "name": {
           "type": "string"
          },
          "domain": {
           "type": [
            "string",
            "null"
           ]
          }
         },
         "additionalProperties": false
        },
        "cohort_jobs": {
         "type": "integer",
         "maximum": 5000,
         "minimum": 0
        },
        "latest_observation": {
         "type": "object",
         "required": [
          "at",
          "active_jobs"
         ],
         "properties": {
          "at": {
           "type": "string",
           "format": "date-time"
          },
          "active_jobs": {
           "type": "integer",
           "minimum": 0
          }
         },
         "additionalProperties": false
        
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/exende-job-changes-api-9ffd3b28/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.exende.dev](https://www.zero.xyz/host/api.exende.dev/llms.txt)
