# LinkedIn Jobs Scraper (x402)

> LinkedIn Jobs Scraper (x402) is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes structured LinkedIn job listings by keyword, location, and filters, returning job title, company, and link data for up to 100 results per source.

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/linkedin-jobs?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/linkedin-jobs-scraper-x402-06cc6c49
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_VAftdbHR8065jpWKGMNY-

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 linkedin-jobs-scraper-x402-06cc6c49 -d '<json body>'
```

Example prompt: Search LinkedIn for software engineer jobs posted in the past week in San Francisco, filter for Easy Apply only, and return up to 50 results with company names and links.

## When to prefer this

Choose this endpoint when you need structured, machine-readable LinkedIn job listing data at scale without maintaining a LinkedIn scraping infrastructure. It is ideal for job market analysis, recruitment pipelines, competitive hiring intelligence, or job alert agents. Prefer this over generic web scrapers when you specifically need LinkedIn's job search filters (Easy Apply, date posted, under 10 applicants, company IDs) applied server-side before extraction.

## Known failure modes

- LinkedIn rate limiting or blocking returns empty results (not charged)
- Invalid or expired LinkedIn search URLs return empty item arrays
- Overly broad searches may hit maxItems cap before covering full results
- geoId mismatches with location strings can return zero results
- Company IDs that no longer exist on LinkedIn return no data for that filter

## 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 results and an array of job items, each containing job ID, title, link, location, company name, company ID, company LinkedIn URL, and company logo URL. Optionally includes company description, website, and employee count if scrapeCompany is enabled.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "urls": {
   "type": "array",
   "default": [],
   "description": "Public LinkedIn jobs search URLs. When set, structured search fields are ignored."
  },
  "geoId": {
   "type": "string",
   "description": "Optional geographic ID copied from a public search URL."
  },
  "distance": {
   "type": "integer",
   "minimum": 0,
   "description": "Search radius around the location in miles."
  },
  "keywords": {
   "type": "string",
   "description": "Job title, skills, or free text for a public jobs search."
  },
  "location": {
   "type": "string",
   "description": "City, region, or country for a structured search."
  },
  "maxItems": {
   "type": "integer",
   "default": 100,
   "minimum": 0,
   "description": "Hard limit across all searches. Zero means no total cap."
  },
  "easyApply": {
   "type": "boolean",
   "default": false,
   "description": "Request the public Easy Apply search filter."
  },
  "locations": {
   "type": "array",
   "default": [],
   "description": "Optional locations searched separately with the same keywords and filters. Helps divide broad searches into smaller result sets."
  },
  "companyIds": {
   "type": "array",
   "default": [],
   "description": "Numeric company IDs used by the public search filter."
  },
  "datePosted": {
   "enum": [
    "anyTime",
    "past24Hours",
    "pastWeek",
    "pastMonth"
   ],
   "type": "string",
   "default": "anyTime",
   "description": "Limit results by posting age."
  },
  "scrapeCompany": {
   "type": "boolean",
   "default": false,
   "description": "Visit public company profile pages for description, website, and employee count. Adds requests and run time."
  },
  "limitPerSource": {
   "type": "integer",
   "default": 100,
   "minimum": 1,
   "description": "Maximum unique jobs collected from each search URL or location."
  },
  "under10Applicants": {
   "type": "boolean",
   "default": false,
   "description": "Request the public low applicant count search filter."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "link": null,
    "title": null,
    "location": null,
    "companyId": null,
    "companyLogo": null,
    "companyName": null,
    "companyLinkedinUrl": null
   }
  ],
  "product": "linkedin-jobs"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/linkedin-jobs-scraper-x402-06cc6c49/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
