GET /v1/updates), reducing noise and focusing on the signals that matter most.
Note: webhook_url is optional in all examples below. Omit it to create a poll-only radar.
Filtering is supported for the following radar types:
company_new_hirescompany_job_openingscompany_promotionscompany_social_posts_cxo
departments, seniorities, job_titles) will be ignored.
How to Use Filters
To apply a filter, include the filter fields directly in the body of yourPOST /v1/radars/companies request.
departments, seniorities, job_titles), TAMradar will return all updates without any filtering. This is useful when you want to receive all events for a given radar type.
Filtering by Department and Seniority
You can filter records bydepartments and/or seniorities.
departments: An array of strings specifying the departments to include.seniorities: An array of strings specifying the seniority levels to include.
departments and seniorities, they are combined with AND logic. A record must match at least one value from each specified filter (departments AND seniorities) to be included.
If you provide only one key (e.g., only departments), only that filter will be applied.
Accepted Values
You must use one of the predefined values for these fields.Departments
Note: Other is an output-only value returned by the classifier when no specific department matches. It cannot be used as a filter value.
Seniorities
Note: Other is an output-only value returned when no seniority matches. It cannot be used as a filter value.
Example: Department & Seniority
This request will create a radar that only sends webhook notifications for new hires who are at theSenior or Manager level within the Engineering or Product Management departments.
Advanced Filtering with job_titles
Use job_titles to filter results with a Boolean expression.
Important: When job_titles is provided, it takes precedence over departments and seniorities. Those fields do not affect matching, so we recommend omitting them.
Matching types
Quotes mean containment:
"Sales Operations" matches Senior Sales Operations Manager, but not Sales and Operations Manager. EXACT("Sales Operations Manager") matches only that complete normalized title, regardless of case. It does not match Senior Sales Operations Manager and does not expand aliases: EXACT("CEO") does not match Chief Executive Officer.
Boolean operators
UseOR for alternatives, AND to require multiple conditions, and NOT to exclude the term or group that follows it. AND NOT is AND followed by NOT, not a separate operator.
One practical way to build a query is in three layers:
- Choose seniorities or leadership terms:
(VP OR director OR manager OR head) - Choose departments or roles:
(marketing OR sales OR "revenue operations") - Add exclusions:
NOT (junior OR assistant)
AND:
- The title must match
VP,director,manager, orhead. - It must also match
marketing,sales, or the phraserevenue operations. - It must not match
juniororassistant.
If you already know the titles you want, list them directly with
OR:
"Marketing Manager" also matches Senior Marketing Manager. Use EXACT("Marketing Manager") when only the complete title should match.
Standalone exclusions such as NOT interim are also valid. The API evaluates NOT, then AND, then OR, but we recommend parentheses whenever you mix operator types.
Syntax rules
- Operators (
AND,OR,NOT) must be uppercase. For example, useCEO OR CTO;CEO or CTOreturns HTTP 400. - Single-word terms may be unquoted:
CEO,lead,sales. - Multi-word phrases must use double quotes:
"Marketing Manager","Head of Product". Unquoted multi-word input returns a 400 error. - Phrase matching is containment, not exact equality:
"Marketing Manager"matchesSenior Marketing ManagerandMarketing Manager, EMEA, but notMarketing Operations Manager. EXACTmust be uppercase and must contain exactly one double-quoted title:EXACT("Marketing Manager").- Matching is case-insensitive for title terms. Boolean operators and
EXACTmust still be uppercase. - Operator precedence:
NOTbinds tightest, thenAND, thenOR. Use parentheses whenever you mix different operator types to make intent explicit. - Each term must contain at least two searchable characters and may contain at most 100 characters.
- The complete expression may contain at most 9,000 characters, with up to 32 nested Boolean groups.
Invalid expressions
These expressions return a validation error:Request example
Validation behavior
Malformedjob_titles expressions submitted through POST /v1/radars/companies return HTTP 400 with a job_titles error explaining what to correct.
Bulk submissions are asynchronous. A structurally valid POST /v1/radars/bulk request is initially accepted with HTTP 202. If an item contains a malformed expression, the bulk processor later records an item-level failure with code 400 and a job_titles error.
Validation
All filter fields and values are validated upon submission. If your request contains invalid field values, unknown field names, or incorrectly formatted values, you will receive a400 Bad Request response with a detailed error message explaining the issue. For more information about error responses, see our Error Handling guide.
For detailed information about the API endpoint and request/response formats, see our Create Radar API Reference.