# One search box for everything your company has written down

> Ask a plain English question and get the passage that answers it, whether it lives in Notion or Google Drive, with a link straight to the source document.

- Workflow type: app
- Services: Google Gemini, Notion, Google Drive
- Categories: Operations
- Published: 2026-08-24

## What it does

- Indexes the exact Notion pages and Google Drive folders you point it at, so everyone can see what the search covers and what it does not
- Answers questions asked in plain English with the passages that actually match, a link to each source document, and a short written answer that says which document every claim came from
- A second tab lists near duplicate and contradictory documents, so the person who owns the knowledge base can see that three different onboarding guides exist and retire two of them
- A Deep answer button hands the question to a background agent that opens the full documents, works through the contradictions, writes a sourced brief back into the app, and files it as a new Notion page when you ask

## What you'll need

- A Notion workspace, with the pages you want searchable shared with the connection
- A Google Drive account containing the folders you want indexed
- A Google Gemini API key from Google AI Studio, which powers the meaning based search and the written answers
- A rough list of which pages and folders count as your real documentation, since you choose the scope rather than indexing everything

## Prompt

Build me one search box for everything my company has written down. Half our documentation lives in Notion and half lives in Google Drive, and keyword search finds neither, because people search for the meaning of a thing and our documents use different words for it. I want an app where anyone types a plain English question and gets the passages that actually answer it, no matter which of the two systems they sit in, with a link to the source document.

The app indexes only the scope I point it at, and that scope is visible on screen. In settings I add specific Notion pages, found with Search by Title, and specific Google Drive folders, found with List Files. Store that scope so it persists. Every screen in the app shows the indexed scope in plain language, for example the People Handbook page, the Engineering Onboarding page, and the Client Delivery folder, alongside a last indexed timestamp, so nobody has to guess what the search does and does not cover.

Indexing works like this. For Notion, pull each page with Retrieve Page as Markdown, and use Retrieve Block Children where a page has child pages worth including. For Google Drive, walk the chosen folders with List Files, pull Google Docs and Slides through Export Google Workspace File as text, and pull PDFs and other regular files through Download File Content. Split each document into overlapping chunks of a few hundred words, keeping the document title, the source system, the chunk position, and the link back to the original on every chunk. Send the chunks to Google Gemini in batches with Batch Embed Contents and store the returned vector alongside the chunk text and its metadata. Any file the app could not read gets listed as skipped rather than dropped silently, so the coverage shown on screen stays honest.

The first tab is the search. Someone types a question in plain English. Embed just that question with Embed Content, rank every stored chunk by cosine similarity against it, and show the best matching passages in order. Each result shows the passage text with the matching part readable at a glance, the document title, whether it came from Notion or Drive, and a link that opens the original document. Above the results, pass only those retrieved passages to Gemini with Generate Content and show a short written answer that names, for every claim it makes, the document that claim came from. The answer must be built strictly from the retrieved passages, and when nothing clears the similarity bar the app says plainly that the indexed documents do not cover this rather than inventing an answer.

The second tab is for whoever owns the knowledge base. Compare the stored document embeddings against each other and list the pairs that are suspiciously close, which is how you surface the fact that three different onboarding guides exist. For each flagged pair, send both documents to Generate Content and have it label the pair as near duplicate, meaning they say the same thing twice, or contradictory, meaning they disagree on a specific point, with one sentence naming the actual disagreement, for example one guide says probation is three months and the other says six. Show the pairs ranked by how similar they are, with both titles, both links, and the label, and let the owner mark a pair as reviewed or as resolved so the list shrinks as they retire the duplicates. This tab is the reason someone opens the app weekly rather than once.

Add a Deep answer button on any search result or any flagged contradiction. It starts a background agent that goes further than the passage ranking does. The agent opens the full source documents rather than the chunks, using Retrieve Page as Markdown for Notion pages and Export Google Workspace File or Download File Content for Drive files, reads them end to end, works through where they contradict each other, and writes a sourced brief that states the answer, quotes the evidence for it, names which document each part came from, and calls out the points where the documents genuinely disagree so a human has to decide. The brief lands back in the app attached to the question that started it, so the tab shows it without anyone leaving the page. When I ask it to, the agent also files that brief as a new Notion page with Create a Page, so the resolved answer becomes part of the documentation instead of living only in the app. The app shows the agent as running, then shows the finished brief when it lands.

Re-indexing is a button in the app, not a schedule. Pressing it walks the configured scope again, rebuilds the chunks and embeddings, and updates the last indexed timestamp shown next to the button. Show progress while it runs and a plain summary when it finishes, along the lines of indexed forty one documents from Notion and Drive, skipped two files it could not read. People trust a search box far more when they can see when it was last refreshed and exactly which shelves it was pointed at.

## How to customize

- Change the indexed scope whenever you want by adding or removing Notion pages and Drive folders, then pressing Re-index
- Tune how similar two documents have to be before the app flags them as near duplicates, so you get a short honest list rather than noise
- Decide whether a deep answer brief stays inside the app for review or gets filed to Notion as a new page every time

## FAQ

### Does this search my entire Notion workspace and all of Google Drive?

No, and that is deliberate. You choose the specific Notion pages and Drive folders it indexes, and the app lists that scope on screen next to the last indexed time. People can see at a glance whether the answer they got covered the handbook, the client folder, both, or neither.

### How is this different from the search already built into Notion and Drive?

Those look for the words you typed. This looks for the meaning behind them, so asking how much holiday do contractors get finds the passage about leave entitlement for freelancers even though it shares almost no words with your question. That is why it works when you do not know the exact phrase your company used.

### Does the index update itself?

Re-indexing is a button someone presses, and the app shows the last indexed timestamp right next to it. That is on purpose, so nobody trusts an answer without knowing how fresh the underlying documents are. Press it after a big documentation cleanup and the whole scope gets rebuilt.

### What kinds of Google Drive files can it read?

Google Docs and Slides are pulled in as text automatically, and other files such as PDFs and plain text documents are downloaded and read directly. Files it cannot read are listed as skipped rather than silently dropped, so the coverage on screen stays honest.

### Can I trust the written answer at the top of the results?

It is written only from the passages the search actually found, and each claim is labelled with the document it came from. The matching passages sit right underneath with links to the originals, so you can check any sentence in a couple of clicks rather than taking it on faith.

Use this prompt in General Input: https://www.generalinput.com/prompts/one-search-box-for-everything-your-company-has-written-down