Power search box for projects
The search box on the Proposals / Quotes and Projects pages is more powerful than it looks. Beyond typing a name or reference, you can use keywords to build precise searches — filtering by price, dates, location, notes, tags, people, and more, all from a single line of text.

If you've ever used the search bar in Microsoft Outlook or Gmail (typing things like from:john subject:invoice ), the idea is exactly the same.

Tip: Any search you build here can be saved as a Filter Set so you never have to type it twice. See Filter Sets.
The basics
A keyword search is made of one or more keyword:value pairs.
| Rule | How it works | Example |
|---|---|---|
| Keyword and value | Type the keyword, a colon, then the value — no space around the colon | name:harbour |
| Combine keywords | Separate each keyword with a space; results must match all of them | name:harbour price:5000- |
| Values with spaces | Wrap the value in quotes | notes:"topographical survey" |
| Exclude a match | Put a minus sign in front of the keyword | -name:almonte |
| Plain text | Anything without a keyword searches the reference, name, and client name | harbour road |
Everything is case-insensitive, so NAME:Harbour and name:harbour behave the same.
The four kinds of keyword
Every keyword falls into one of four types, and each type behaves slightly differently. Knowing which type you're using tells you what to type after the colon.
| Type | What it does | What to type after the colon |
|---|---|---|
| Text | Matches part of a text field | Any word or phrase (use quotes if it has spaces) |
| Range | Matches a span of numbers or dates | A from-to range (see Ranges) |
| List | Matches specific records by their ID | One or more ID numbers, comma-separated |
| Country | Matches an address country | A two-letter country code (see Countries) |
Text keywords
Text keywords match part of a field — searching name:harbour finds "Harbour Road", "East Harbour", and "Harbourside" alike.
| Keyword | Searches | Where you'll find this on a project |
|---|---|---|
name |
Project name | Overview → General |
details |
Project details | Overview → General |
notes |
Internal notes | Overview → General |
access |
Site access instructions | Overview → Operations |
tags |
Project tags | Overview → General |
address |
All address fields at once | Overview → General |
address-line1 |
Address line 1 | Overview → General |
address-line2 |
Address line 2 | Overview → General |
address-town |
Town / city | Overview → General |
address-state |
State / county | Overview → General |
address-postal-code |
Postal / ZIP code | Overview → General |
address-country |
Country (see below) | Overview → General |
confirmation-details |
Order confirmation details | Overview → Proposal |
source-details |
Source details | Overview → Proposal |
abandoned-notes |
Abandoned reason notes | Overview → Proposal |
surveyed-notes |
Field work notes | Overview → Operations |
processed-notes |
Office work notes | Overview → Operations |
checked-notes |
Quality check notes | Overview → Operations |
delivered-notes |
Delivery notes | Overview → Operations |
managed-notes |
Project manager notes | Overview → Operations |
invoiced-notes |
Invoice notes | Overview → Finance |
received-notes |
Payment notes | Overview → Finance |
quoted-notes |
Quote notes | Overview → Proposal |
requested-notes |
Enquiry notes | Overview → Proposal |
Examples
| You want… | Type this |
|---|---|
| Projects with "bridge" in the name | name:bridge |
| Projects mentioning asbestos in any note | notes:asbestos |
| Projects in Manchester (town) | address-town:manchester |
| Anything with "railway" anywhere in the address | address:railway |
| Projects tagged "urgent" | tags:urgent |
| Projects not tagged "internal" | -tags:internal |
Range keywords
Range keywords match a span — a minimum, a maximum, or both. They cover prices, hours, probability, and every date field.
The range syntax
Write ranges as keyword:from-to . You can leave either end open:
| Syntax | Meaning | Example | Result |
|---|---|---|---|
from-to |
Between the two values | price:500-1000 |
£500 to £1,000 |
from- |
This value and above | price:1000- |
£1,000 or more |
-to |
Up to this value | price:-1000 |
Up to £1,000 |
value |
Exactly this value | probability:50 |
Exactly 50% |
There are also > and < operators if you prefer them: price:1000< means "£1,000 and up", and price:1000> means "up to £1,000". These read backwards to most people, so the from-to dash syntax above is usually clearer.
Number ranges
| Keyword | Ranges over | Where you'll find this |
|---|---|---|
price |
Project price | Sales tab, proposal items |
probability |
Probability of winning (0–100) | Overview → Proposal |
hours-actual-paid |
Actual hours worked, including overtime rates | Sales tab, proposal items |
hours-budget-paid |
Budgeted hours, including x1.5 / x2.0 rates | Sales tab, proposal items |
Examples
| You want… | Type this |
|---|---|
| Projects priced £5,000–£10,000 | price:5000-10000 |
| Projects over £50,000 | price:50000- |
| Projects under £1,000 | price:-1000 |
| Projects at least 75% likely to win | probability:75- |
Date ranges
Date keywords accept two formats — an exact date, or a rolling period.
Format 1 — exact dates, written as YYYYMMDD :
| You want… | Type this |
|---|---|
| Projects delivered during 2025 | delivered:20250101-20251231 |
| Projects quoted since 1 June 2026 | quoted:20260601- |
| Projects with a deadline before 31 Oct 2026 | deadline:-20261031 |
Format 2 — rolling periods, using a number plus d (days), w (weeks), m (months) or y (years). This always counts back from today, so a saved search stays current.
| You want… | Type this |
|---|---|
| Quoted in the last 10 days | quoted:10d- |
| Accepted in the last 2 weeks | accepted:2w- |
| Invoiced in the last 3 months | invoiced:3m- |
| Created in the last year | created:1y- |
All date keywords
| Keyword | The date it matches | Where you'll find this |
|---|---|---|
requested |
Enquiry received | Overview → Proposal |
quoted |
Quote submitted | Overview → Proposal |
quote-deadline |
Quote submission deadline | Overview → Proposal |
quote-decision |
Expected award date | Overview → Proposal |
accepted |
First accepted | Overview → Proposal |
surveyed |
Field work completed | Overview → Operations |
processed |
Office work completed | Overview → Operations |
checked |
Quality check completed | Overview → Operations |
delivered |
Delivery completed | Overview → Operations |
deadline |
Project deadline | Overview → Operations |
invoiced |
Fully invoiced | Overview → Finance |
received |
Fully paid | Overview → Finance |
abandoned |
Abandoned | Overview → Proposal |
created |
Created | Not shown on the page |
modified |
Last modified | Not shown on the page |
List keywords
List keywords match records by their ID number, not their name. They're most useful inside saved Filter Sets, where the app fills the IDs in for you — but you can type them by hand if you know the ID.
You can match several IDs at once by separating them with commas: department-ids:3,7,12 .
| Keyword | Matches by |
|---|---|
client-ids |
Client ID |
billing-client-ids |
Billing client ID |
client-type-ids |
Client type ID |
client-category-ids |
Client category ID |
contact-ids |
Contact ID |
invoice-contact-ids |
Invoice contact ID |
project-category-ids |
Project category ID |
source-ids |
Source ID |
confirmation-ids |
Order confirmation ID (use -1 for Unconfirmed) |
department-ids |
Department ID (via proposal items) |
service-ids |
Service ID (via proposal items) |
managed-by-ids |
Project manager (user ID) |
quoted-by-ids |
Estimator (user ID) |
surveyed-by-ids |
Surveyed by (user ID) |
processed-by-ids |
Processed by (user ID) |
checked-by-ids |
Checked by (user ID) |
delivered-by-ids |
Delivered by (user ID) |
invoiced-by-ids |
Invoiced by (user ID) |
received-by-ids |
Received by (user ID) |
abandoned-by-ids |
Abandoned by (user ID) |
accepted-by-ids |
Accepted by (contact ID) |
requested-by-ids |
Requested by (contact ID) |
abandoned-reason-ids |
Abandoned reason ID |
Finding an ID: the quickest way to use these is to build the filter visually in the Filter Set panel and let Kompass insert the IDs. If you need an ID by hand, ask your organisation's Kompass champion.
Searching by country
The address-country keyword is a little different from the other address fields: it matches on the two-letter country code, not the country's name. This is the international ISO 3166-1 alpha-2 standard — the same codes you see at the end of web addresses and on number plates.
So to find your projects in the United Kingdom, you search for the code GB , not the word "England" or "United Kingdom":
address-country:GB
Unlike the other text keywords, this one matches the code exactly — address-country:G will not find anything.
Common country codes
| Country | Code |
|---|---|
| United Kingdom | GB |
| Ireland | IE |
| United States | US |
| Canada | CA |
| Australia | AU |
| New Zealand | NZ |
| France | FR |
| Germany | DE |
| Spain | ES |
| Italy | IT |
| Netherlands | NL |
| Belgium | BE |
| Portugal | PT |
| Switzerland | CH |
| Austria | AT |
| Poland | PL |
| Sweden | SE |
| Norway | NO |
| Denmark | DK |
| United Arab Emirates | AE |
| Saudi Arabia | SA |
| South Africa | ZA |
| India | IN |
| Singapore | SG |
Note: the UK's code is GB (Great Britain), not UK . This is the one that catches most people out.
Full list: for any country not listed above, search "ISO 3166-1 alpha-2" online for the complete official list of codes.
Examples
| You want… | Type this |
|---|---|
| All projects in the UK | address-country:GB |
| All projects in Ireland | address-country:IE |
| UK projects not in London | address-country:GB -address-town:london |
| High-value projects in the UAE | address-country:AE price:100000- |
Custom fields (UDFs)
If your organisation has set up User Defined Fields on projects, those become searchable too. The keyword is udf- followed by the field's name in lowercase with hyphens instead of spaces.
For example, a UDF called "Risk Level" becomes udf-risk-level , and a date UDF called "Site Visit" becomes a date range keyword udf-site-visit .
The type of search depends on the field:
- Text and dropdown UDFs → text keywords (
udf-risk-level:high) - Number UDFs → range keywords (
udf-floor-count:5-10) - Date UDFs → date range keywords (
udf-site-visit:1m-)
If you're not sure of the exact keyword for one of your custom fields, ask your Kompass champion.
Putting it all together
The real power comes from combining keywords. A few worked examples:
All UK survey projects over £10,000, quoted in the last month, excluding London:
address-country:GB price:10000- quoted:1m- -address-town:london
Projects managed by user 42, currently in progress, tagged "priority":
managed-by-ids:42 tags:priority
High-probability quotes worth chasing — over 60% likely, quote decision expected in the next fortnight:
probability:60- quote-decision:-20260815
Anything with "contamination" in the notes that hasn't been delivered:
notes:contamination -delivered:20000101-
Quick reference
| I want to… | Syntax | Example |
|---|---|---|
| Match part of a text field | keyword:word |
name:bridge |
| Match a phrase | keyword:"two words" |
notes:"site visit" |
| Match a price/number range | keyword:from-to |
price:500-1000 |
| Match "or more" | keyword:from- |
price:1000- |
| Match "or less" | keyword:-to |
price:-1000 |
| Match an exact date range | keyword:YYYYMMDD-YYYYMMDD |
delivered:20250101-20251231 |
| Match a rolling period | keyword:Nd- / Nw- / Nm- / Ny- |
invoiced:3m- |
| Match a country | address-country:XX |
address-country:GB |
| Match records by ID | keyword-ids:1,2,3 |
department-ids:3,7 |
| Exclude something | -keyword:value |
-tags:internal |
Remember — once you've perfected a search, save it as a Filter Set so it's one click next time.