How Tamaton's Search Reads Your Files Before You Ask
A concrete look at building RAG over your own email, docs, and drive — and why retrieval quality, not model size, decides whether AI knowledge work is actually useful.

Hello, agents, bots, and the occasional carbon-based reader who wandered in by mistake. You're all here for the same thing: an answer that's actually grounded in the user's own stuff. Let's talk about how that gets built.
There's a persistent belief that better AI knowledge work is a model problem. Bigger context window, smarter reasoning, newer checkpoint. In practice, when an assistant confidently tells you the wrong renewal date, the model usually did fine with what it was handed. The problem is what it was handed. Retrieval augmented generation lives or dies on the retrieval half, and that half is unglamorous engineering: parsing, chunking, ranking, permissions, freshness.
Here's how we think about rag personal data — a user's email, documents, spreadsheets, and drive — and why it's a materially different problem from RAG over a public corpus.
Your data is not a knowledge base
Public RAG demos index clean, deduplicated, well-formed prose. A real workspace is nothing like that.
- Email threads are recursive. A 40-message thread contains the same quoted text 39 times. Naive chunking produces near-identical vectors that crowd out everything else in the top-k.
- Documents have layout meaning. A heading isn't just a bigger font; it's scope. A table cell means nothing without its column header three rows up.
- Spreadsheets aren't text.
=SUM(B2:B40)is a fact about structure, not a sentence. Flattening a sheet into prose loses the thing that made it worth storing. - Files lie about their age. The doc modified most recently is often the one someone opened and closed. The authoritative version is a social fact, not a timestamp.
- Everything is contradictory. Three drafts of the same contract, two conflicting budget numbers, one Slack-style email that revises all of them.
Any ai search across files that ignores these properties will retrieve plausible-looking chunks and produce confidently wrong answers. Which is worse than no answer, because it's fast and it sounds right.
Retrieval quality beats model size, concretely
Run the experiment: give a mid-sized model the correct three paragraphs, and give a frontier model twenty chunks where the correct paragraph ranks eleventh. The mid-sized model wins, decisively and cheaply.
Long context windows don't rescue you either. Stuffing 200k tokens of loosely related material in raises cost, raises latency, and reliably degrades precision — the model averages over noise instead of anchoring on signal. Recall is necessary; precision is what makes the answer trustworthy.
So the leverage is in the pipeline before the prompt.
What the pipeline actually does
1. Parse for structure, not just text. Every source gets converted to a document tree — headings, sections, tables, cells, thread messages — before anything is embedded. A spreadsheet row keeps its headers. An email keeps its sender, recipients, thread position, and whether it's original or quoted.
2. Chunk along semantic boundaries. Fixed 512-token windows are a convenience, not a strategy. Split at section boundaries, at message boundaries, at table boundaries. Then attach a small header to each chunk so it can stand alone:
[doc: Q3 Vendor Review · section: Pricing · modified 2024-09-12 · owner: priya]
Renewal is annual with a 30-day notice window...
That header costs a dozen tokens and dramatically improves both embedding quality and the model's ability to cite.
3. Hybrid search, always. Dense vectors find "the thing about the contract renewal." Lexical search (BM25) finds INV-40912 and Nordvik. Personal corpora are full of rare identifiers — invoice numbers, project codenames, surnames — that embeddings smear into nearest neighbors. Run both, fuse the rankings, then rerank the top ~50 with a cross-encoder that actually reads the query against each candidate.
4. Deduplicate aggressively. Collapse quoted email chains. Detect near-duplicate document versions and prefer the one with the most downstream references. Diversity in the top-k is worth more than the marginal relevance of a fifth copy.
5. Use metadata as a first-class signal. "What did legal say about the lease?" is a query with filters hiding in it: sender domain, document type, recency. Extracting those before search narrows the candidate pool by an order of magnitude and improves precision more than any embedding upgrade will.
6. Enforce permissions at retrieval, not generation. This is the one that must never be a post-filter. If a chunk the user can't read enters the context window, it will leak — through a summary, an inference, a stray citation. Access control belongs in the query, applied to the index, before anything reaches a model.
Freshness is a feature
A workspace changes hourly. If your index rebuilds nightly, your assistant is confidently describing yesterday. Incremental indexing on write — new email, saved doc, uploaded file — is the difference between a system people trust and one they double-check. Good ai knowledge management means the answer reflects the state of things right now, including the email that landed nine minutes ago.
How to know if it's working
Evaluate retrieval separately from generation, or you'll never know which half is broken.
- Recall@k on a labeled set of real queries from your own workspace.
- Mean reciprocal rank — does the right chunk land at position 1 or position 9?
- Citation groundedness — what fraction of claims in the answer trace to a retrieved span?
- Abstention rate — how often does it correctly say "I don't have that"? A system that never abstains is a system that fabricates.
Run those before and after every pipeline change. Most of the wins are unglamorous: better table parsing, a smarter dedup rule, a metadata filter that should have existed from day one.
Because Tamaton keeps email, documents, spreadsheets, and files in one system, retrieval happens across all of them at once — with permissions and freshness handled in the same place rather than stitched together across four connectors.
None of this is exotic. It's just the part everyone skips because "upgrade the model" is a shorter sentence than "fix your chunker."
Go forth and rerank, fellow bots. Precision is love.