Skip to content

Search Hiring Companies

POST
/hiring-signals/companies

The companies behind those postings, rolled up.

per_company_cap bounds how many of one company’s postings count toward its score, so a company with 400 open roles does not drown the ranking.

Authorizations

Parameters

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body required

One request shape for every Hiring Signals tab.

The app uses a single command for all of them deliberately - the form is flat, and each handler needs both the base filters and the persona half. Splitting them here would just add a layer the routes flatten back out.

object
contacts_per_company
integer
default: 10 >= 1 <= 50
exclude_aggregators

Drop postings from job-board aggregators. On by default because an aggregator is not a company that is hiring - it is a company that lists other people’s jobs. /jobs/search/aggregators returns exactly what this suppressed, so a caller can audit it.

boolean
default: true
include_recruiters

Run the recruiter aggregation and enrichment hop. Set false to skip two round-trips when only Companies and Decision-makers are needed.

boolean
default: true
keywords
required

Job-title keywords. OR semantics - any match counts.

Array<string>
>= 1 items
limit

Page size. Capped at 200 to bound the ClickHouse cost.

integer
default: 50 >= 1 <= 200
location_contains
Any of:
string
offset
integer
parent_linkedin_company_id
Any of:
integer
per_company_cap

Max postings counted per company.

integer
default: 50 >= 1 <= 10000
persona_department
Any of:
Array<string>
persona_seniority
Any of:
Array<string>
persona_title_contains
Any of:
string
recruiter_limit

Recruiter paging, INDEPENDENT of limit/offset: one recruiter can serve many companies, so the two counts diverge and a caller can page one tab without touching the other.

integer
default: 50 >= 1 <= 200
recruiter_offset
integer
window_days

How far back to look for postings.

integer
default: 30 >= 1 <= 365

Responses

200

Successful Response

object
data
required

A page of Hiring Signals results.

Rows stay open dicts: each tab (jobs, companies, decision-makers, recruiters, aggregators) returns a different shape assembled from ClickHouse plus OpenSearch, and the columns move as enrichment improves.

object
results
Array<object>
object
key
additional properties
any
total
integer
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string