# APEC Job Search Scraper

> APEC Job Search 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 structured job listings from the French APEC (executive job board) website based on keyword, location, and pagination parameters

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/apec?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/apec-job-search-scraper-1d4ec1ac
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_KdJBhVzlPes7hM9Nf6VRi

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 apec-job-search-scraper-1d4ec1ac -d '<json body>'
```

Example prompt: Search APEC for up to 30 data engineer job listings in Paris and give me a structured list with company names, salaries, and offer numbers.

## When to prefer this

Use this endpoint when you need structured job listing data specifically from APEC (apec.fr), the leading French job board for cadres and executives. Prefer this over generic job search APIs when the user is specifically targeting French executive or management-level roles, or when APEC is the authoritative source. The pay-per-call model with no charge for empty results makes it low-risk for exploratory searches.

## Known failure modes

- No results found for the given keyword/location combination — returns count:0 and empty items array (not charged)
- Invalid or unsupported location name that does not match APEC's city/department taxonomy
- Malformed startUrl that APEC cannot parse
- Rate limiting or scraping block from APEC's website
- max_pages set to 0 or results_wanted set to 0 — violates minimum constraints

## 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 ID, title, highlighted title, company name, salary, location, APEC offer number (numeroOffre), and company logo URL. Empty or failed runs are not billed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "keyword": {
   "type": "string",
   "description": "Job title or skill to search. Overrides the keyword in startUrl. If both are absent, searches ingenieur."
  },
  "location": {
   "type": "string",
   "description": "APEC city or department name, such as Paris or Lyon. An exact location match overrides the location in startUrl."
  },
  "startUrl": {
   "type": "string",
   "description": "Prepared APEC job search URL. Its supported filters are used unless keyword or location is supplied explicitly."
  },
  "max_pages": {
   "type": "integer",
   "default": 2,
   "minimum": 1,
   "description": "Maximum search pages to read. Each page contains up to 20 jobs; this can limit results before the maximum jobs value is reached."
  },
  "results_wanted": {
   "type": "integer",
   "default": 20,
   "minimum": 1,
   "description": "Maximum number of unique job listings to save."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "title": null,
    "salary": null,
    "company": null,
    "location": null,
    "numeroOffre": null,
    "companyLogoUrl": null,
    "titleHighlighted": null
   }
  ],
  "product": "apec"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/apec-job-search-scraper-1d4ec1ac/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)
