If you are good at Googling, you already know most of Boolean search. The operators that narrow a web search (quotes for exact phrases, a minus sign to exclude a term, OR to widen) are the same ones that narrow a query against the Enrich Layer API. This guide documents the syntax formally and then shows how to use it where it actually pays off: filtering people and employees by title, and companies by name or industry.
Enrich Layer replaced regular-expression search with Boolean search in 2024. Regular expressions gave you power, but most queries people wrote were simple, and the syntax created more friction than it removed. Boolean search keeps the majority of that expressiveness with a fraction of the learning curve.
The operators
A Boolean query is built from terms joined by operators. A term is a single word (engineer), an exact phrase in double quotes ("vice president"), or a group of terms in parentheses. There are six things to know.
AND (&&)
Requires all terms. Results must match every keyword.
bananas && apples
Matches only where both "bananas" and "apples" are present.
OR (||)
Requires either term (or both). Use it to widen a query across synonyms and variants.
bananas || apples
NOT (-)
Excludes a term. Place the hyphen directly before the word to remove.
bananas -apples
Matches "bananas" while filtering out anything that also matches "apples".
Exact phrase (" ")
Double quotes match a phrase as a unit, in order, rather than the words scattered independently.
"banana bread"
Matches the phrase "banana bread", not documents that merely contain "banana" somewhere and "bread" somewhere else.
Grouping (( ))
Parentheses control evaluation order, exactly like arithmetic. Group an OR before combining it with an AND so the alternation is treated as one unit.
(bananas || apples) && bread
Matches "bread" paired with either "bananas" or "apples".
Wildcard (*)
The asterisk does suffix matching: it stands in for the end of a word.
star*
Matches "star", "stars", "start", "startup", and so on.
Constraint: a wildcard cannot lead a query. *apple is invalid; write apple*.
The rules to remember
- Operators are case-insensitive.
AND,and, and&&are equivalent; the same holds forOR/||andNOT/-. - Nested parentheses are supported. You can group inside groups for complex logic.
- Each expression is limited to 255 characters. Long queries built from many
ORvariants can hit this ceiling, so keep them tight. - Wildcards are suffix-only. Use them at the end of a word, never at the start.
Where Boolean search applies
Boolean syntax is accepted by these Enrich Layer search parameters:
| Endpoint | Parameter | Filters on |
|---|---|---|
| Person Search | current_role_title | Current job title |
| Person Search | past_role_title | Past job title |
| Company Search | name / industry | Company name or industry |
| Employee Search | keyword_boolean | Job title keyword |
The value you pass to any of these parameters is a Boolean expression built from the operators above. (Job Search accepts only a plain keyword, not Boolean syntax, so it is not listed here.)
Worked examples
The fruit examples teach the grammar; these show the queries you will actually write.
Find a role, exclude a level
Engineering managers, but not directors:
current_role_title=("engineering manager") -director
Cover every way a title is written
Titles are inconsistent across companies. Widen with OR, then narrow with a required domain:
current_role_title=("vice president" || VP) && (engineering || technology)
This matches VP-level people in engineering or technology whether their title spells out "vice president" or abbreviates it to "VP".
Strip out the noise you never want
Data scientists, excluding interns and juniors in one pass:
current_role_title="data scientist" -intern -junior
Filter companies by industry
Companies in software or IT, matched on the industry field:
industry=(software || "information technology")
Catch title variants with a wildcard
develop* covers "developer", "development", and "develops" without listing each one. That helps when you are unsure how a title is phrased:
boolean_role_search=develop* && (senior || lead)
Widen an employee-title search
Employees whose titles match common sales-role variants:
keyword_boolean=("account executive" || "sales development" || SDR)
Tips for building queries that hold up
- Quote multi-word titles.
"account executive"matches the role;account executive(unquoted) is looser and can pull in unrelated matches. - Group before you combine. Wrap every
ORalternation in parentheses before joining it to anAND, so precedence never surprises you. - Exclude last. Build the query that finds what you want, then append
-termexclusions to trim it. - Watch the 255-character limit. If a query grows past it, split the work into two narrower searches or trade a long
ORlist for a wildcard where the variants share a root. - Iterate. Start broad, look at what comes back, and tighten. Boolean search rewards a second pass more than a perfect first draft.
Where to go next
Boolean search is one filter among many. You will usually combine current_role_title with location, headcount, industry, or other parameters to reach a precise segment. For the full parameter list on each endpoint, see the Person Search, Company Search, Employee Search, and Employee Listing references.
