# Search

> Search across all connected household sources in one query. Use when the user asks to search, find, or locate information across multiple sources (email, documents, budget, inventory, estate records, recipes, pantry). Decomposes queries, runs parallel searches, ranks and deduplicates results.

- Skill: `hvkshetry/search` (Agent Skill)
- Install (CLI): `npx skillmds@latest add hvkshetry/search`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hvkshetry/search/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Finance & Business
- Author: hvkshetry (https://skillmd.com/u/hvkshetry)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hvkshetry/search

---


# Search Command

Search across all connected MCP sources in a single query. Decompose the user's question, run parallel searches, and synthesize results.

## Instructions

### 1. Check Available Sources

Before searching, determine which MCP sources are available from the tool list. Household sources:

- **Email & Calendar** (via `google-workspace`) — `search_gmail_messages`, `search_drive_files`
- **Documents** (via `paperless`) — `search_documents` (OCR'd scans, receipts, legal docs)
- **Quick Notes** (via `memos`) — `search_memos`
- **Budget & Transactions** (via `actual-budget`) — `analytics(operation="monthly_summary"|"spending_by_category"|"balance_history")`
- **Inventory** (via `homebox`) — `list_items` (household items, warranties, manuals)
- **Estate & Entities** (via `estate-planning`) — `list_assets`, `list_entities`, `get_upcoming_dates`
- **Recipes** (via `mealie`) — `get_recipes`, `get_recipe_detailed`
- **Pantry** (via `grocy`) — `get_stock_overview`, `get_expiring_products`

If no MCP sources are connected:
```
To search across your tools, you'll need to connect at least one source.
Check your MCP settings to add google-workspace, paperless, actual-budget, or other tools.
```

### 2. Parse the User's Query

Analyze the search query to understand:

- **Intent**: What is the user looking for? (a document, a transaction, a recipe, an entity, a scheduled date)
- **Entities**: People, properties, accounts, assets mentioned
- **Time constraints**: Recency signals ("this week", "last month", specific dates)
- **Source hints**: References to specific systems ("in paperless", "that email", "the budget")
- **Filters**: Extract explicit filters from the query:
  - `from:` — Filter by sender/author
  - `in:` — Filter by folder, label, or category
  - `after:` — Only results after this date
  - `before:` — Only results before this date
  - `type:` — Filter by content type (email, document, receipt, recipe, transaction)

### 3. Decompose into Sub-Queries

For each available source, create a targeted sub-query:

**Google Workspace (email):**
- Use `google-workspace.search_gmail_messages` for email threads
- Translate filters: `from:` maps to sender, dates map to time range
- Use `google-workspace.search_drive_files` for documents in Drive

**Paperless (documents):**
- Use `paperless.search_documents` for OCR'd documents
- Good for: receipts, contracts, tax forms, legal documents, scanned mail
- Filter by correspondent, document type, tags

**Memos (notes):**
- Use `memos.search_memos` for quick notes and reminders
- Good for: meeting notes, decisions, ideas, reminders

**Actual Budget (finances):**
- Use `actual-budget.analytics` for financial queries
- Operations: `monthly_summary`, `spending_by_category`, `balance_history`
- Good for: "how much did we spend on X", "what's the balance of Y"

**Homebox (inventory):**
- Use `homebox.list_items` for household inventory
- Good for: warranties, manuals, serial numbers, purchase dates

**Estate Planning (entities/assets):**
- Use `estate-planning.list_assets`, `estate-planning.list_entities` for entity/asset queries
- Use `estate-planning.get_upcoming_dates` for compliance deadlines
- Good for: trust details, entity structures, filing dates

**Mealie (recipes):**
- Use `mealie.get_recipes`, `mealie.get_recipe_detailed` for recipe search
- Good for: "what can I make with X", meal planning queries

**Grocy (pantry):**
- Use `grocy.get_stock_overview`, `grocy.get_expiring_products` for pantry queries
- Good for: "do we have X", "what's expiring soon"

### 4. Execute Searches in Parallel

Run all sub-queries simultaneously across available sources. Do not wait for one source before searching another.

For each source:
- Execute the translated query
- Capture results with metadata (timestamps, authors, links, source type)
- Note any sources that fail or return errors — do not let one failure block others

### 5. Rank and Deduplicate Results

**Deduplication:**
- Identify the same information appearing across sources (e.g., a receipt in paperless AND a matching transaction in actual-budget)
- Group related results together rather than showing duplicates
- Prefer the most authoritative or complete version

**Ranking factors:**
- **Relevance**: How well does the result match the query intent?
- **Freshness**: More recent results rank higher for status/date queries
- **Authority**: Legal docs in paperless > quick notes in memos for factual questions; memos > docs for "what did we decide" queries
- **Completeness**: Results with more context rank higher

### 6. Present Unified Results

Format the response as a synthesized answer, not a raw list of results:

**For factual/document queries:**
```
[Direct answer to the question]

Sources:
- [Source 1: brief description] (paperless, document type, date)
- [Source 2: brief description] (google-workspace, email from person, date)
- [Source 3: brief description] (estate-planning, entity/asset record)
```

**For exploratory queries ("what do we know about X"):**
```
[Synthesized summary combining information from all sources]

Found across:
- Paperless: X relevant documents
- Google Workspace: X relevant emails
- Estate Planning: X related entities/assets
- [Other sources as applicable]

Key sources:
- [Most important source with reference]
- [Second most important source]
```

**For "find" queries (looking for a specific thing):**
```
[The thing they're looking for, with direct reference]

Also found:
- [Related items from other sources]
```

### 7. Handle Edge Cases

**Ambiguous queries:**
If the query could mean multiple things, ask one clarifying question before searching:
```
"the renovation" could refer to a few things. Are you looking for:
1. The Maple Street property renovation (active project)
2. The bathroom renovation completed last year
3. Something else?
```

**No results:**
```
I couldn't find anything matching "[query]" across [list of sources searched].

Try:
- Broader terms (e.g., "property" instead of "123 Maple St")
- Different time range (currently searching [time range])
- Checking if the relevant source is connected (currently searching: [sources])
```

**Partial results (some sources failed):**
```
[Results from successful sources]

Note: I couldn't reach [failed source(s)] during this search.
Results above are from [successful sources] only.
```

## Notes

- Always search multiple sources in parallel — never sequentially
- Synthesize results into answers, do not just list raw search results
- Include source attribution so users can dig deeper
- Respect the user's filter syntax and apply it appropriately per source
- When a query mentions a specific person, search for their messages/docs/mentions across all sources
- For time-sensitive queries, prioritize recency in ranking
- If only one source is connected, still provide useful results from that source

