# Orthogonal SignalBase Hiring Signals

> Orthogonal SignalBase Hiring Signals is a paid API for AI agents from x402.orthogonal.com, paid per call via x402, $0.08/call, status unknown (last checked 2026-09-14).

Fetches open job posting signals filtered by position, department, seniority, location, date range, and company attributes with paginated results

## Facts

- Endpoint: GET https://x402.orthogonal.com/signalbase/signals/hiring
- Price: $0.08/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/orthogonal-signalbase-hiring-signals-eb2e7f0b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_0dfLtPnh_bJnriB6AJnYj

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 orthogonal-signalbase-hiring-signals-eb2e7f0b
```

Example prompt: Find me companies that are actively hiring senior software engineers in Austin, Texas — filter to the last 30 days and show me the first 25 results.

## When to prefer this

Choose this endpoint when you need structured, filterable job posting data as a business signal — e.g. for sales prospecting (finding companies in a growth phase), recruiting intelligence, or market expansion research. It is preferable over generic job board scrapers when you need machine-readable filters for department, seniority, geography, and company size, and when you want cost-efficient pagination via parentRequestId for multi-page searches.

## Known failure modes

- Invalid or unsupported filter parameter values (e.g. malformed date strings, unknown position IDs) return 400 errors
- Changing filter parameters on a continuation call starts a new billable request rather than erroring
- Exceeding the max limit of 100 results per page returns a validation error
- Missing or expired requestId for pagination may result in a new billable request
- Payment failure or insufficient USDC balance prevents the initial page from being fetched

## How this service works

Fetch hiring signals (open job postings) with position, department, seniority, and location filters. Pagination billing: call the first page normally and save billing.requestId from the Orthogonal /v1/run response. For later page, offset, or cursor calls on the same logical search, pass parentRequestId with unchanged non-pagination parameters. Valid continuation calls still get their own request IDs and quoted price, but are charged 0. Changing filters starts a new billable request.

## Output

Returns a paginated list of hiring signal records, each containing job posting details such as job title, department, seniority level, company name, industry, location (city, state, country), posting date, and applicant counts. Includes pagination metadata and a requestId for free continuation calls on subsequent pages of the same search.

## 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",
     "properties": {
      "city": {
       "type": "string",
       "description": "Free-text search on city, location, and region"
      },
      "page": {
       "type": "integer",
       "description": "Page number For later pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response."
      },
      "limit": {
       "type": "integer",
       "description": "Results per page (max: 100)"
      },
      "dateTo": {
       "type": "string",
       "description": "Filter by date to (ISO-8601 string)"
      },
      "search": {
       "type": "string",
       "description": "Free-text search across company name, industry, job title, location, and city"
      },
      "states": {
       "type": "string",
       "description": "Comma-separated US state codes"
      },
      "sort_by": {
       "type": "string",
       "description": "Sort field"
      },
      "dateFrom": {
       "type": "string",
       "description": "Filter by date from (ISO-8601 string)"
      },
      "countries": {
       "type": "string",
       "description": "Comma-separated country codes"
      },
      "positions": {
       "type": "string",
       "description": "Comma-separated position IDs"
      },
      "team_size": {
       "type": "string",
       "description": "Comma-separated team size ranges"
      },
      "applicants": {
       "type": "string",
       "description": "Comma-separated applicant ranges"
      },
      "categories": {
       "type": "string",
       "description": "Pipe-separated industry categories"
      },
      "sort_order": {
       "type": "string",
       "description": "Sort direction"
      },
      "date_preset": {
       "type": "string",
       "example": "last_7d",
       "description": "Relative date shorthand; takes precedence over dateFrom/dateTo. Valid values: today, yesterday, last_7d, last_14d, last_30d, last_60d, last_90d, last_6m, last_1y, last_2y, this_week, this_month, this_quarter, this_year, last_week, last_month, last_quarter, 
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/orthogonal-signalbase-hiring-signals-eb2e7f0b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.orthogonal.com](https://www.zero.xyz/host/x402.orthogonal.com/llms.txt)
