Custom Enrichments
Ask your own structured research question about companies and receive cited AI answers that can power scoring, qualification, and CRM fields.
Overview
A custom question runs as POST /v1/companies/enrich/custom (or /v1/contacts/enrich/custom) and returns the enrichment_run envelope. The legacy /v1/companies/signals[/sync|/batch] routes keep working at the same 2-credit price until their announced sunset — responses carry Deprecation and successor Link headers.
A custom enrichment answers a research question you write yourself, in the answer shape you define. It's built for the questions that are specific to your business — the qualification criteria, product mentions, and buying-intent evidence that no prebuilt type covers.
If your question is one of the common ones — funding, M&A, technology stack, open jobs, or firmographics — a prebuilt enrichment answers it from just a domain, with no question or answer type to design.
Each request creates an enrichment run. Keep the question precise and request the answer in the shape your workflow needs: smaller, structured questions produce outputs that are easier to score, compare, and sync into CRM fields.
Choosing an execution mode
POST /v1/companies/enrich/custom returns the enrichment_run envelope. How you collect the result depends on the mode:
- Run and poll (default). A fresh run returns
202 AcceptedwithLocation: /v1/enrichment-runs/{runId}; read the run onGET /v1/enrichment-runs/{runId}until it completes. A cache serve returns200 OKinline (free). Best when you can collect the answer a moment later, or an agent is driving the request. - Run and receive a webhook. Pass a
webhookUrland the completed result is delivered to it — no polling. Best for decoupling submission from processing. - Batch.
POST /v1/companies/enrich/custom/batchruns the same question across many domains for list-level analysis; collect results in bulk.
Need the answer in the same response? The legacy POST /v1/companies/signals/sync route still blocks until completion (and honors a request timeout header) until its sunset. On the new surface, prefer a run plus a webhookUrl or a short poll — the run model is what batch, monitors, and the unified GET /v1/enrichment-runs reads all build on.
Writing a good question
Strong questions are specific, observable, and tied to an action. Instead of asking whether a company is a good fit, ask about concrete evidence:
- Whether the company is hiring for a relevant function.
- Which products or business lines are mentioned on the site.
- Whether the company uses or mentions a target technology.
- Which recent events suggest expansion, churn risk, or buying intent.
Pick an answerType that matches downstream usage. Use boolean for routing, list for evidence collection, number or percentage for scoring inputs, and open_text for human-readable context.
Operational notes
- Prefer a run plus a
webhookUrl(or a short poll ofGET /v1/enrichment-runs/{runId}) for agent and CLI workflows. - Store the run ID from the
202'sLocationheader so you can read the result later. - Repeat calls for the same answer are served from the cache for free; only fresh runs are charged.
- Design batch jobs around reusable enrichment templates when running large repeated research tasks — or hand the template to a watch monitor to re-run it on a schedule.
Related workflows
Enrichments overview
Prebuilt enrichments that return structured answers from a domain.
Search Companies
Find companies before running research.
Company Lists
Run enrichments against a saved segment.
Monitors
Re-run an enrichment on a schedule and emit a signal when the answer changes.
Skills
Use agent-ready Saber workflows for common GTM research tasks.