Endpoint overview
| Endpoint | Method | What it does |
|---|---|---|
/api/v1/people/search | POST | Find ICP-matched people via NL query |
/api/enrichments | POST | Enrich selected contacts |
People search
Use this endpoint to queue a contact discovery job from a natural language description. The API returns202 Accepted immediately; poll the returned URL to retrieve semantically ranked results.
Request fields
| Field | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Natural language description, e.g. "VP of Sales at a Series B SaaS company" |
limit | number | No | Maximum contacts to return; between 1 and 100 |
includeSignals | boolean | No | Include signal context in results |
includeContacts | boolean | No | Include contact fields when available |
filters.titles | string[] | No | Exact or partial title filters (e.g. ["VP Sales", "Head of Revenue"]) |
filters.locations | string[] | No | Location filters (e.g. ["New York", "London"]) |
filters.company | object | No | Company filters such as names, domains, industries, or employeeCount |
Target account matching
Usefilters.company.domains or filters.company.names for target-account search. These fields represent the company you asked for. A filters.company.linkedinUrls value can help when you already know the exact company page, but it is treated as a provider handle rather than the canonical account identity.
When a search is scoped to target accounts, poll GET /api/operations/:id and inspect result.meta:
| Field | Meaning |
|---|---|
targetAccountSearchMode | linkedin_company_page means results were constrained by a LinkedIn company page. profile_current_company means results were matched against current profile company text. unavailable means The Hog could not confidently search the requested account with the available provider path. |
targetAccountOutcome | Explains the LinkedIn company-handle path: supplied, verified, unavailable/conflicting, or unresolved. Use targetAccountSearchMode to see how people were actually matched. |
message | Human-readable guidance for empty or unavailable results. |
companyMatchEvidence with company_page or profile_current_job, so you can tell why the person matched the account.
Examples
Response
The search returns HTTP202 with an operation ID and poll URL.
Typical workflow
Search for target companies
Use
POST /api/v1/companies/search with firmographic and signal filters to build your target account list. Note the id of each company you want to prospect.Find contacts at each account
Pass company constraints in
filters.company along with a role-based query
(e.g. "Head of Engineering") to surface relevant contacts.