Each idea is shown as it would look to a researcher, with a line on what it gives them. Nothing here is about how it's built. The research behind them is in docs/research/federated-search.md, and the per-lens proposals are in toolbar-search.html. The sample data is an IKEA checkout study, part of a folder called IKEA.
The premise, in your words: anything a researcher can think of and type should reach every kind of data that could give a useful answer. The ideas below keep that promise without making the search guess. Free text always searches everything. Anything the search recognises (a person, a timecode, a feeling, a question) is offered as a suggestion, and applies only if she picks it.
Ideas 1–3 and 11–13 are about typing, 4–5 and 7–10 about reading results, 6 is inside a transcript, and 14–15 are about keeping a search.
As she types, she sees what kinds of things match and how many, before running anything. “del” already tells her delivery is a tag, a section and a signal, and that it comes up 64 times. The layout follows Photos: an icon for the kind of thing, the typed letters in full-strength text with the rest of the word lighter, and a count on the right.
Quotes lens · typed “del”
She can type things that aren't words and still get a precise answer: a participant code, a timecode, a feeling in her own language. The search recognises what she probably means and offers it one row below plain text. Pressing ↩ still does the plain search. It never quietly decides “p3” means a person.
typed “p3”
typed “12:04” in s2
UI in Spanish · typed “frustra”
typed “12 sep”
typed “starred”
typed “afford”
Once a suggestion becomes a token, she can change its meaning without retyping: quotes p2 said, or quotes that mention p2 (when the moderator or another participant talks about them), or everyone except p2. A tag token switches between tagged with it and containing its words. These distinctions matter in analysis, and here each is one click. It is the down-arrow menu on Mail's tokens.
person token, menu open
tag token, menu open
One page answers “where did this come up?” across every lens. The groups always appear in the same order, so she learns where to look. Each group has a way into its home lens that carries the search with it: “Show all 23 in Quotes →” opens Quotes already filtered. The scope bar says plainly what was searched.
⌘↩ from the menu · results for “delivery”
“I got all the way to the end and then the delivery was £45, which is more than the shelf.”
The search ends in analysis, not just a list. She finds every mention of “assembly”, ticks the ones that count, and tags them all at once. Tags already on each hit are visible, so she can see what's coded, and hits already carrying the tag she's applying are shown faded. MAXQDA and ATLAS.ti users expect this; research repositories mostly don't offer it.
Quotes lens filtered by “assembl” · 3 selected
“The assembly service was more than I’d budgeted for the wardrobe.”
“I’d pay for assembly if it said so up front.”
“Assembly was another £60 on top, so I left it.”
“Do they do the assembling? I couldn’t tell.”
Inside a transcript, search is find: nothing disappears, and ⌘G steps from hit to hit. The playhead jumps to each hit, so she can hear every mention of “delivery” in s2 in about a minute, including tone, hesitation and laughter, which the text doesn't show. Marks on the scrubber show where the talk about it clusters.
s2 transcript · find “delivery” · 3 of 7
Each hit shows the sentence it matched in and why. The reason may be a different form of the word, text she edited herself, a tag definition, or the moderator's words. She can judge a hit without opening it, and a result that doesn't visibly contain her word still makes sense.
results for “deliver”
…and then the delivery was £45, which is more than the shelf.
“They said it’d arrive Tuesday and it came the next week.”
“You can’t see the total until the very last screen.”
…so tell me about the delivery step…
The moderator often introduces the topic word: “tell me about delivery”. Counted with everything else, the interviewer's questions look like evidence. Participants' own speech comes first; moderator turns are folded into their own group and not counted as findings, but they're still one click away when she wants the question that prompted an answer.
transcript results for “delivery”
When nothing matches, she gets a next step. There's a “did you mean” built from words actually in the study, then ways to widen the search: hidden quotes, the full transcripts, the rest of the folder. Each shows its count before she clicks, so none of them is a guess.
Quotes lens · “deliverey”
She can see patterns across studies for the same client: does delivery cost come up in the returns pilot too? Every hit starts with the name of the project it came from. People appear only as speaker codes, because a participant agreed to one study, not to being linked across several. The last line says which projects were not searched and why, so a missing project never looks like a missing finding.
results for “delivery” · scope: IKEA folder
“…and then the delivery was £45, which is more than the shelf.”
“Collecting it back costs the same as the delivery did.”
Clicking into an empty field brings back this project's recent searches, tokens included, so yesterday's question is one keystroke away. Recents belong to the project: nothing from another client's study ever shows up here. They can be cleared, and they're forgotten when the app quits unless she saves one (idea 15).
empty field, focused
…and in another project, nothing carries over
Only numbers that won't change get quoted in a readout. While the study is still being indexed, counts read “12+” and the menu says so at the bottom, the way Photos does. When everything has been searched the “+” goes and the count is exact. A number never goes down as more results arrive, so she learns to trust it.
first open, still indexing
a moment later, complete
When she types a question rather than a keyword, the menu also offers a written answer with citations, from the chat lens. It's clearly labelled as a Claude step, and it only runs when she picks it. ↩ still does the ordinary keyword search, so a half-typed question can't start a paid call by accident.
typed “why did people abandon checkout?”
The search belongs to the question, not the page. With “p2 · hidden costs” in the field, switching lens shows the same question from a new angle: p2's quotes, p2's sessions, the cells of the heatmap p2 contributes to. She never retypes it, and each lens has just one search field that works the same everywhere.
Quotes
“…the delivery was £45, more than the shelf.”
“Every screen found another tenner.”
Sessions
| s2 | Tom | 4 |
| s1 | Amira | — |
| s3 | Priya | — |
Signals
A question she keeps asking becomes a place. “Pricing pain: hidden costs or price surprise, with frustration” is saved into the project, appears in the sidebar and stays up to date as coding changes, like a Smart Mailbox in Mail. Saving is a deliberate act, so ordinary searches still reset between sessions.
Save Search… from the search menu