Search
Zyx keeps one search over everything the company connects. It runs on the server: a local Weaviate
search engine that matches by keyword and by meaning together, with bge-m3 embeddings computed by
Ollama on the same server. The index never leaves the server. The passages an answer uses are sent to the
model that writes the answer; see Models and cost.
Sources
Section titled “Sources”The status column follows the labels on Status and limits.
| Source | What is searched | Who may read an item | Status |
|---|---|---|---|
| Company folder | Word, Excel, PowerPoint, PDF, text, e-invoice fields; photos and scans by local OCR | the folder’s permissions | Live-proven |
| Mail (IMAP/SMTP) | the newest 300 mails of inbox and sent, per mailbox | the connection’s readers | Live-proven |
| Notion | the 300 most recently edited pages, with database rows | the connection’s readers | Live-proven |
| Slack | channels the Slack app is in, one item per channel and day; never direct messages, not thread replies | the connection’s readers, plus the channel’s members | Tested against fakes |
| Google Drive | Docs, Sheets, Slides, text files | the connection’s readers | Tested against fakes |
| Google Calendar | events | the connection’s readers, plus organizer and attendees | Tested against fakes |
| Microsoft 365 | Outlook mail, SharePoint and OneDrive files, Teams channel messages (not thread replies) | the connection’s readers, plus a file’s permissions, a channel’s members | Tested against fakes |
| GitHub | issues, pull requests, discussions; off until the owner turns it on | the connection’s readers | Tested against fakes |
| Linear | issues | the connection’s readers, plus the team’s members | Tested against fakes |
| Jira and Confluence | issues and pages | the connection’s readers | Tested against fakes |
| HubSpot | CRM records | the connection’s readers | Tested against fakes |
| Salesforce | records | the connection’s readers | Tested against fakes |
| Zendesk | tickets | the connection’s readers | Tested against fakes |
| Dropbox | files | the connection’s readers | Tested against fakes |
| Any MCP app with a search tool | asked live at question time (3 second budget), nothing stored | the connection’s readers | Built and tested |
The connection’s readers are the owner on a company connection, or the person on their own connection. Where a row says “plus”, Zyx also adds the people the app names, on a company connection.
“Tested against fakes” means the code ships and is tested against stand-ins of each app’s API. No live connection to the real app has been run yet. The first live connect for a company is the first real run for that app.
Each synced source is a copy kept fresh in the background, each item with its readers. Files are indexed every 5 minutes, so a question rarely waits. Settings, Search shows each source, its mode (synced, live or off), its item count and its last sync.
Sources on every answer
Section titled “Sources on every answer”Under each answer, a Sources row lists the files, mails and pages it used. A click opens the item: a file in Zyx’s viewer, a mail or page at its own address. The model is asked to cite each passage.
Filters
Section titled “Filters”- By source: “only Slack”, or one synced kind.
- By date: “since Monday”.
- Recency: a passage changed recently scores up to 10% higher, halving every 30 days.
- Follow-up questions also search with the person’s previous message.
Who knows about this? (search_people)
Section titled “Who knows about this? (search_people)”search_people ranks the people who wrote the matching items. It uses the same readers check, so it
never reveals an item the asker may not read.
Read the whole thing (read_item)
Section titled “Read the whole thing (read_item)”A search hit quotes a passage. read_item returns one whole synced item: the full mail, page or
thread. Same readers check.
List records (list_items)
Section titled “List records (list_items)”Search hands back the passages that rank best. For “which deals are open?” that is not enough. list_items lists the
synced records of one app, for example HubSpot deals or Zendesk tickets, by type, with simple filters such as
“stage is open”. It returns up to 200 records, newest first, and says how many matched. Same readers check as
search, and each title and field passes the privacy gate. Records an asker may not read are only counted, never named.
Each listed record can be cited as a source like a search hit.
Zendesk, Linear and Jira syncs write no fields yet. For those apps the list shows titles only, so a filter on a field finds nothing.
What is not indexed
Section titled “What is not indexed”- Zyx’s own
.zyxfolders, including each person’s private journal. - Folders a
.zyxignoreor a.gitignorekeeps out (see below). - A program’s working folders, such as a cache or a browser profile, and a folder of numbered video frames. Zyx finds these by itself.
- A picture whose text recognition finds almost no words, and a near-copy of a file already indexed in the same folder.
- Online-only cloud files that are not downloaded to the server. Zyx never opens them, so nothing downloads by surprise.
- Slack direct messages, and private channels the Slack app is not a member of.
Keep a folder out of search
Section titled “Keep a folder out of search”Settings, Search shows the owner what fills the search: the folders with the most files, and how many files were left out and why. Don’t search this folder keeps a folder out. On the next pass its files leave the index. Undo brings it back.
The press writes a .zyxignore file into the folder. You can also write one yourself, in any folder:
it uses the same rules as a .gitignore, so a line such as *.mov or Export/ keeps only those files
out. A .gitignore inside a git project counts too.
What Zyx does not do
Section titled “What Zyx does not do”- No reranker model. It was measured at 10 seconds per search on a CPU and dropped correct hits.
- No published accuracy figure. The test set is small and synthetic, so it does not prove quality on a real company’s data.