CommSyncdocs
Open app
The inbox

Search

Find any message, contact, or identity instantly with CommSync's smart search engine.

New

Search in CommSync spans your entire conversation history: contacts, their channel handles, and the full text of every message. That covers both the body and the subject line. The smart engine stems English words and matches prefixes, so a query for "inv" surfaces "invoice," "invoiced," and "inventory." You never need to type the full word.

Search works in two gears:

  • Type opens a quick-links popup under the search bar.
  • Press Enter opens a full results view.

The quick-links popup shows a few top contacts, messages, and attachments, so you can jump to one thing fast. The full results view lists every conversation that matches your search, ranked and filterable, Gmail-style.

Either way, every result explains why it matched. Instead of the start of the message, the row shows the passage around your search terms, with the matched words highlighted. When the match came from a file rather than the message — the text inside a PDF, image, or office document — the result names the file. It shows the excerpt that matched from inside the file, tagged in file.

Smart search scope

The command palette (⌘K)

Press ⌘K (Ctrl K on Windows and Linux) anywhere in CommSync to open the command palette. It is a fast, keyboard-first way to jump to any conversation, contact, or file, and you never touch the mouse. It works from every screen, Settings included, and closes with Esc.

The palette searches the same index as the rest of search, the text inside your files included, but goes one step deeper:

  • Meaning-aware ranking. Alongside keyword matching, the palette also ranks results by what they mean, not only by keyword.

Type "the plumber's invoice" and it surfaces the right thread even if the message never used those exact words. CommSync blends keyword and meaning-based results into one ranked list, so the most relevant conversation rises to the top, however it matched.

Live preview, then open

As you move through conversation results, a lite preview appears beside the list (on wider screens). It shows recent messages, scrollable, so you never leave your current task. Confirm with Enter when you have found the right one.

Find it

Type to search. Use / to move through results — the preview updates as you go.

Open

Press Enter (or click) to open the conversation full-size. Esc closes the palette.

Keyboard shortcuts

KeyAction
EnterOpen the highlighted result
/ Move selection (preview follows)
EscClose the palette
⌘K / Ctrl KToggle the palette

Navigation commands, drafts, and Ask open immediately on Enter. On macOS the primary modifier is ; everywhere else it is Ctrl, and the on-screen hints match your platform.

Jump anywhere

With the box empty, or when your query matches a place instead of a message, the palette lists navigation commands:

  • Home, Inbox, All Conversations, Drafts
  • Contacts, CommSync AI
  • Archived, Automated, Spam, Trash, Settings

It is the fastest way to move between folders. An Ask CommSync AI action is always there too, and it hands your query to Ask for a conversational answer.

One key to rule them all

⌘K is muscle memory from tools like Raycast, Linear, and Slack. It opens the palette even while you type a message. You can jump away and return, and your place stays exactly where you left it.

What search covers

The search index covers:

  • Message subjects and bodies — every inbound and outbound message across all channels
  • Contact names — the display name saved on each contact
  • Identities — phone numbers and email addresses (channel handles for every contact)

CommSync scopes results to your account. You only see messages on threads you have access to based on channel membership, and contacts from your own contact graph. A teammate's private contact does not appear in your results.

The full results view

Press Enter in the search bar, or click "See all results" at the top of the popup. Either way, the conversation list swaps to a results view. The view shows every conversation that matches, not just the top few. Each result is a real conversation row: group threads appear as the group, 1:1s as the contact, texts and email side by side.

  • Click a result to open the conversation in the reading pane.

When the match was inside a specific message, CommSync jumps you straight to that message. You never scroll through a long thread to find a three-week-old mention of "Lakeside Academy."

A search must be as easy to leave as it is to start. Four gestures end one:

  • Clear or Esc dismisses the search. It returns you exactly where you were — the same folder, the same team view.
  • A destination ends it too. A folder in the sidebar, a label, or a line clears the query. A search replaces the thread list, so the destination you just picked would otherwise show nothing.
  • A reload clears it. A search is a mode you step into, not a place you meant to stay, and a reload is how people ask for a clean slate.
  • Back returns to the search. The history still holds it, so an accidental exit costs one keystroke.

A search link that someone shares with you still opens its results.

Filter results

A strip of filter pills sits above the results — no query syntax required:

PillOptions
WhereEverywhere · Inbox · Archived · Automated · Promotions · Spam · Trash
TypeAll types · Email · Texts
DateAny time · Past 24 hours · Past week · Past month · Past year
AttachmentsToggle — only conversations with attachments
TeamAppears when you searched from a team view — the search is pre-scoped to that team; click ✕ to widen it

What 'Everywhere' means

The default scope searches everything except Spam & Trash — Archived, Promotions, and Automated conversations included. A receipt CommSync filed to Automated still turns up when you search for it. Junk you marked as spam stays out of the way, unless you pick the Spam scope explicitly.

Contacts and drafts

Above the conversation results, two extra sections appear when relevant:

  • Contacts — a strip of people and channel handles that match.

Click one to open your conversation with them, or their contact card if there is no conversation yet.

A search for "Priya" gets you to the contact, not just to messages that contain her name.

  • Your drafts — unsent drafts whose subject, body, or recipient matches.

Drafts are personal: only you see your drafts in your results, never your teammates'.

Search modifiers

Power users can type Apple Mail-style modifiers directly into the query. They work in both the quick-links popup and the full results view, and combine freely with free text ("from:priya has:attachment after:2026-01-01").

ModifierMatches
from:<value>Sender address or phone number
to:<value>Recipient address or phone number
subject:<value>Part of the subject line
has:attachmentMessages with at least one attachment
in:inboxPrimary inbox conversations
in:sentMessages you sent
in:archivedArchived conversations
in:automatedYour Automated Messages bucket: receipts, alerts, and notifications
in:promotionsThe Promotions bucket
in:spamThe Spam bucket
in:trashTrashed conversations
is:unreadUnread inbound messages
is:starredStarred messages
before:YYYY-MM-DDSent before a date
after:YYYY-MM-DDSent after a date

Without an in: modifier, search uses the default scope: everywhere except Spam & Trash.

Channel results

A channel result (a phone number or email address) opens the conversation most relevant to that handle:

  • Direct conversation — when you and that address share a 1:1 thread, the result opens it (the normal case).
  • Group participant — some addresses are in your contact graph because they appeared on a group email you are part of.

They can appear as a To or Cc recipient, or as the sender.

These results carry a small To, Cc, or From pill and show which conversation they appeared in. A click opens that group thread. The moment you and that address start a direct conversation, the result switches to opening your 1:1 thread instead.

  • Nothing to open — a channel with no conversation appears dimmed (for example, a handle added manually to a contact).

Hover over it to see why.

On a group email, every participant — sender, To, and Cc — becomes a searchable channel automatically. You can find "that contact on the Cc line of the invoice thread" by their address even if they have never written to you directly.

The smart engine

Every user searches with the smart engine. There is nothing to turn on.

The smart engine uses PostgreSQL full-text search with English stemming. CommSync interprets queries as prefix-aware: typing "ship" matches "shipping," "shipment," and "shipped." This makes partial queries reliable from the first keystroke.

How the prefix match works

CommSync treats the last word in your query as a prefix. Combined with English stemming, short queries surface a wide and relevant result set without false hits from unrelated words.

How results are ranked

When multiple messages match your query, CommSync orders them by a composite score that balances text relevance with recency:

score =
  full-text relevance × recency decay over 30 days                      — body relevance
  + 0.30  if query is a substring of the subject                        — exact subject match
  + up to 0.80  if query is a prefix of a subject word (length-scaled)  — subject prefix bonus

The three components work together:

  • Body relevance with recency decay: a message that matches well scores lower if it is three months old versus recent.
  • Exact subject match bonus (+0.30): a subject-line fragment match ranks above body-only matches.
  • Subject prefix bonus (up to +0.80): the start of a subject word gives a strong boost.

The decay window for body relevance is 30 days. A query matches as a fragment of the subject line for the exact-match bonus, and it matches your query for the subject prefix bonus.

The prefix bonus is length-scaled. A 3-character prefix gets the full boost, where the stemmer expands words most aggressively. A longer prefix gets proportionally less.

CommSync caps the body relevance score at 1.0, so a newsletter's high-frequency terms never outweigh the subject-line matches on more focused threads.

Performance and caching

Search stays fast even on large accounts, by design:

Redis micro-cache

CommSync caches results in Redis for 5 seconds, keyed by your user ID and the normalized query. Rapid keystrokes within a word reuse the cached result while CommSync refreshes the result list in the background.

GIN index

A PostgreSQL GIN (generalized inverted index) keeps full-text lookups fast as message history grows.

Statement timeout and fallback

Each search query has an 800 ms timeout. If a large account still has historical mail to catch up on, CommSync transparently falls back to the legacy engine so you still get results.

Search tips

Getting the most from search

  • Start with a short query. Two or three characters are enough — the prefix match fills in the rest.
  • Search by name or number. A phone number or email address searches identities directly, not just message bodies.
  • Try the subject line. Subject-line matches score higher than body matches, so a keyword from the subject finds the right thread faster.
  • Agents use the same engine. If you have an MCP agent connected, its search tool routes through the same engine. It sees the same results you see in the app.

Search from an agent

Two MCP tools mirror the two in-app gears. Results respect the same per-user access rules: the agent only sees threads and contacts that belong to the API key owner.

  • search routes through the same engine as the quick-links popup — a few best hits per category (contacts, identities, messages, attachments).
  • search_threads routes through the same engine as the full results view: every conversation that matches, ranked and paginated.

It includes match snippets and the matched message for deep-linking.

search
  Params: q (required, 1–200 chars), limit? (1–50)

search_threads
  Params: q (required, 2–200 chars),
          scope? (everywhere | inbox | archived | automated | promotions | spam | trash),
          kinds? (EMAIL, SMS), hasAttachment?, cursor?, limit? (1–50)

See MCP & API keys for how to connect an agent.