Agent data plane — Clay integration

Not what you’re looking for? This page pulls company hiring data into a Clay table (an enrichment column). To push your SignalsAPI leads out to Clay instead, see Integrating with Clay.

Before you read further: The agent data plane is not yet open for self-serve signup. You need an issued API key and base URL before any live request on this page will work — see Agent data plane for how access is arranged today.

Clay lets you add an enrichment column backed by any HTTP endpoint. The plane ships one built for exactly that: give it a company domain, get back that company’s hiring motion as flat columns you can filter, sort and run playbooks on.

One row in, one row out — no pagination, no cursors, no provenance envelopes to unwrap.

What you get

For each company, a single flat object:

Column Type Meaning
company_id number The plane’s id for the company — use it against the REST API
name string Company name
domain string Company domain
hq_country string Headquarters country
boards list ATS and job boards we observe them on
is_hiring boolean Whether they have any active requisition
open_req_count number How many
new_roles_30d number Roles opened in the last 30 days
velocity number Rate of change in open requisitions
direction string up, down, or flat
is_surge boolean True when both new-roles and velocity cross their thresholds
as_of timestamp When this answer was true

is_surge is the one to build a playbook on: it fires when a company is not merely hiring, but hiring harder than it was.


Setting it up

The plane is not yet self-serve, so there is no base URL to point Clay at yet. You do not need one to plan the column: the fixture at /fixtures/v1/clay-enrich.json is this exact response shape, and the local mock runs the full request/response cycle before you have a key. Want to be first in line once self-serve opens? Tell Support what you’re building.

Once you have a key and a base URL, in Clay:

  1. Add an HTTP API enrichment column to your table.
  2. Set the method to POST and the URL to {YOUR_BASE_URL}/v1/clay/enrich.
  3. Add a header — name X-API-Key, value your plane key.
  4. Add a header — name Content-Type, value application/json.
  5. Set the body to map your table’s domain column:

    { "domain": "" }
    
  6. Run the column. Each row resolves independently.

Matching by name instead

If you only have company names, send name instead of domain:

{ "name": "" }

You may send both. domain is matched first because it is unambiguous; name falls back to an exact case-insensitive match and then a normalized one. Domain matching is strongly preferred — names collide, domains do not.


Trying it outside Clay

The same endpoint over curl, to sanity-check your key before wiring up a column:

curl -X POST \
  -H "X-API-Key: $PLANE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"domain": "zollsoft.de"}' \
  "$PLANE_BASE_URL/v1/clay/enrich"
{
  "company_id": 4412,
  "name": "zollsoft GmbH",
  "domain": "zollsoft.de",
  "hq_country": "DE",
  "boards": ["greenhouse"],
  "is_hiring": true,
  "open_req_count": 7,
  "new_roles_30d": 3,
  "velocity": 0.1,
  "direction": "up",
  "is_surge": false,
  "as_of": "2026-07-08T04:11:07Z"
}

When a company doesn’t resolve

A domain or name we have never observed returns 404. In Clay that surfaces as an empty cell rather than a failed run — the rest of your table keeps enriching.

That is a real answer, not an error: it means the company has no ATS or job-board presence we track, which is itself a useful filter.


Billing

One call unit per row, billed at class cached — the same as any Tier 0 read. Re-running a column re-bills it. GET /v1/usage shows your rolling totals.

Elsewhere on the plane you can opt into exactly-once billing by sending an Idempotency-Key, but a Clay column issues the same fixed request for every row with no place to attach a per-row key — so Clay enrichment always bills per call. That is why the key stayed optional across the plane rather than being required.

Where to go next

Recent changes

  • 2026-07-09 — Agent data plane Clay integration published: a company’s hiring motion as flat, filterable columns from a single enrichment call.