Problem
Users communicate across multiple platforms (email, Slack, iMessage, etc.) and need to search for information that might exist in any of them. Searching each platform manually is slow and error-prone. An agent tasked with "find what X said about Y" must know which platform to check—or check all of them.
Solution
Create a unified search interface that queries all communication platforms in parallel and aggregates results into a single, consistent format. Also known academically as Federated Search or Mediator-Based Integration.
Key components:
- Platform Adapters: Each platform has a CLI/API wrapper with consistent interface
- Parallel Dispatcher: Spawns searches concurrently (sub-agent pattern or background jobs)
- Result Normalizer: Converts platform-specific formats to unified schema
- Aggregator: Combines, deduplicates, and ranks results
# Example: Unified search skill implementation
search_all() {
query="$1"
# Spawn parallel searches
messages search "$query" > /tmp/messages.json &
slack-messages search "$query" > /tmp/slack.json &
fastmail.sh search "$query" > /tmp/fastmail.json &
gmail.sh search "$query" > /tmp/gmail.json &
wait # All complete
# Aggregate and normalize
aggregate_results /tmp/*.json
}
Architectural variants:
- Adapter Pattern: Platform abstraction layer with unified API (single codebase, easy platform addition)
- Gateway/Bridge Pattern: Bidirectional message synchronization between platforms
- Unified Inbox Pattern: Customer-centric aggregation for support/engagement workflows
- Event-Driven Architecture: Async message brokering for scalability
How to use it
When to apply:
- User asks "where did someone mention X"
- User needs to find a conversation but doesn't remember the platform
- Cross-platform audit or compliance searches
- Building unified inbox or communication hub features
Implementation steps:
- Create CLI wrappers for each platform with consistent output format (JSON)
- Define a common schema:
{platform, sender, timestamp, content, url} - Build parallel dispatch mechanism (bash background jobs, sub-agents, or async)
- Implement result ranking (by recency, relevance, or platform priority)
- Present in unified table format with platform badges
Skill definition example:
Trade-offs
Pros:
- Single query searches all platforms—no context switching
- Parallel execution minimizes latency (total time ≈ slowest platform)
- Unified format makes comparison and filtering easy
- Extensible: add new platforms without changing interface
- Reduces "which platform was that on?" friction
Cons:
- Requires maintaining adapters for each platform
- Rate limits may apply across platforms simultaneously
- Result ranking across platforms is subjective (is a Slack message more relevant than an email?)
- Privacy/security: aggregating data across platforms increases exposure
- Some platforms have poor search APIs (result quality varies)
References
- Sub-Agent Spawning pattern for parallel execution
- LLM Map-Reduce pattern for result aggregation
- Claude Code
/search-allskill implementation - Academic: Callan, J. (2020). Federated Search: From Theory to Practice
- Primary source: https://github.com/anthropics/claude-code