POST /people/search accepts every company filter that POST /companies/search accepts. You no longer need to pre-fetch companies, collect their IDs, and feed them into a second people query — one request does both layers.Two parameter families, one body
A/people/search request body is split conceptually into two filter families. They live at the same level in the JSON, and you mix them freely.
- People-level
- Company-level
Filter on attributes of the person:
| Parameter | Description |
|---|---|
people_titles | Job titles (free text or slug) |
management_levels | founder, c_suite, vp, director, manager, … |
departments | master_engineering, master_sales, … |
department_functions | Sub-department / function slugs |
people_locations | Country codes for the person’s location |
people_groups | Saved group IDs |
peoples | Specific people_search_id values |
linkedin_urls | Person LinkedIn URLs |
social_media | Per-network social-media handles |
The
company_ prefix exists only on the location/place filters because the bare places / locations names are already used for the person’s address. Everything else uses the bare company name (technologies, not company_technologies).Build a query in four steps
Decide the people predicate
Who, exactly? Title, seniority, department, country. Keep this layer at the top level of the body — the company predicate usually does the precision work.
Decide the company predicate
Which companies do they need to work at? Industry, size, founded year, HQ country, technology stack. Group these under a
company_filters: {...} object so it’s obvious which layer each key belongs to.Pick AND/OR per filter via filter_conditions
For any multi-value filter that needs precision (e.g., “uses all of these techs”), add an entry to
filter_conditions inside company_filters. Defaults are OR.Send the request
POST /people/search. Both styles are accepted, but company_filters: {...} reads cleaner and matches the Monitors payload shape.Complete example
The query: VPs of Engineering or CTOs at US-based mid-market companies founded between 2015 and 2023, employing 100-5,000 people, that use both Kubernetes and Docker, but excluding companies HQ’d in San Francisco.Key remap reference
When/people/search hands company filters to the shared engine, the location/place keys are renamed to their bare forms. The bare names are what the engine — and filter_conditions[].key — actually see:
| You send (people-API name) | Engine sees (company-API name) |
|---|---|
company_locations | locations |
company_exclude_locations | exclude_locations |
company_places | places |
company_exclude_places | exclude_places |
technologies, verticals, vertical_categories, vertical_sub_categories, categories, keywords, founded_dates, employees, revenues | passed through unchanged |
filter_conditions[].key for company-level locations uses the bare names:
Joins behind the scenes
Adding any company-level filter switches the people-to-company join fromLEFT JOIN to INNER JOIN. People without a recognised company on file are excluded from the result, even when they match every people-level filter.
If your search drops to zero rows the moment you add
company_locations or technologies, check whether your dataset has companies linked to the people you expect. The engine prefers correctness over recall here — it never invents companies to satisfy the filter.company object whenever any company filter was applied.
Common patterns
Account-Based Marketing (ABM)
Account-Based Marketing (ABM)
Target a fixed list of companies (
companies or domains), then layer on people-level filters to find the right buyers inside each one.Ideal Customer Profile (ICP) discovery
Ideal Customer Profile (ICP) discovery
Describe the company shape, not specific accounts. Use ranges and verticals — the engine returns the people that fit.
Technology-driven prospecting
Technology-driven prospecting
Find buyers at companies running a specific stack. AND on
technologies is the typical override.Competitor displacement
Competitor displacement
Find decision-makers at companies that use a competitor’s product (one tech) but not yours (excluded via Then re-run with
categories or a separate filter pass).technologies: [114] (your product’s tag ID) and diff client-side.Next steps
filter_conditions
Full reference — every key, every default, copyable AND/OR recipes.
Filters Overview
The mental model behind the unified filter engine.
People Search reference
Full request/response schema for
/people/search.Company Search reference
Full request/response schema for
/companies/search.
