/deep-research - Deep Research
Produce thorough, cited research reports from multiple web sources using a three-tier search and scrape stack.
When to Activate
- User asks to research any topic in depth
- Competitive analysis, technology evaluation, or market sizing
- Due diligence on companies, investors, or technologies
- Any question requiring synthesis from multiple sources
- User says "research", "deep dive", "investigate", or "what's the current state of"
Tool Stack (Three Tiers)
Tier 1: Exa (MCP, semantic search)
Best for: complex queries, date-filtered results, LinkedIn, domain-scoped search.
web_search_exafor semantic web searchweb_search_advanced_exafor date-filtered, domain-filtered searchcrawling_exafor full page content extraction (markdown)linkedin_searchfor people/company search on LinkedInget_code_context_exafor GitHub, Stack Overflow, official docs
Tier 2: Firecrawl (MCP, JS-rendered scraping)
Best for: JavaScript-heavy sites, full-site crawls, anti-bot bypass, structured extraction.
firecrawl_searchfor web search with content extractionfirecrawl_scrapefor single URL scraping (renders JS, returns markdown)firecrawl_crawlfor multi-page site crawlingfirecrawl_mapfor mapping site structure
Tier 3: WebSearch + WebFetch (built-in, fallback)
Best for: quick lookups, simple pages, when MCP tools are unavailable.
WebSearchfor keyword searchWebFetchfor basic page fetching (no JS rendering)
Tool Selection Strategy
- Start with Exa for search queries (semantic search returns better results for research)
- Use Firecrawl to scrape pages that need JS rendering or are behind light anti-bot protection
- Fall back to WebFetch for simple static pages or if MCP tools error
- Use Exa's linkedin_search specifically for LinkedIn content (WebFetch is blocked)
- If an MCP tool is unavailable (server not running), fall back to the next tier silently
Workflow
Step 1: Understand the Goal
Ask 1-2 quick clarifying questions:
- "What's your goal: learning, making a decision, or writing something?"
- "Any specific angle or depth you want?"
If the user says "just research it," skip ahead with reasonable defaults.
Step 2: Plan the Research
Break the topic into 3-5 research sub-questions. Example:
- Topic: "Impact of AI on healthcare"
- What are the main AI applications in healthcare today?
- What clinical outcomes have been measured?
- What are the regulatory challenges?
- What companies are leading this space?
- What's the market size and growth trajectory?
Step 3: Execute Multi-Source Search (Parallel)
Launch parallel research agents (model: haiku) for each sub-question cluster. Each agent:
- Uses
web_search_exaorweb_search_advanced_exawith 2-3 keyword variations per sub-question - For date-sensitive topics, uses
startPublishedDateto filter recent results - For domain-specific research, uses
includeDomainsto target authoritative sources - Collects 15-30 unique source URLs total across all agents
- Prioritizes: academic, official, reputable news > blogs > forums
Launch 2-3 research agents in parallel:
Agent 1 (haiku): Sub-questions 1-2 — Exa search + Firecrawl/Exa scrape key sources
Agent 2 (haiku): Sub-questions 3-4 — Exa search + Firecrawl/Exa scrape key sources
Agent 3 (haiku): Sub-question 5 + cross-cutting themes — Exa search + Firecrawl/Exa scrape
Each agent returns structured findings with source URLs and key excerpts.
Step 4: Deep-Read Key Sources
For the most promising URLs from Step 3, fetch full content:
- JS-heavy sites (SPAs, dashboards, interactive pages): use
firecrawl_scrape(url: "<url>") - Articles, blogs, docs: use
crawling_exa(urls: ["<url>"], tokensNum: 5000) - Simple static pages: use
WebFetchas fallback - Read 3-5 key sources in full for depth
- Do not rely only on search snippets
- Extract specific data points, quotes, and statistics
Step 5: Synthesize and Write Report
Structure the report:
# [Topic]: Research Report
*Generated: [date] | Sources: [N] | Confidence: [High/Medium/Low]*
## Executive Summary
[3-5 sentence overview of key findings]
## 1. [First Major Theme]
[Findings with inline citations]
- Key point ([Source Name](url))
- Supporting data ([Source Name](url))
## 2. [Second Major Theme]
...
## 3. [Third Major Theme]
...
## Key Takeaways
- [Actionable insight 1]
- [Actionable insight 2]
- [Actionable insight 3]
## Sources
1. [Title](url) — [one-line summary]
2. ...
## Methodology
Searched [N] queries across Exa, Firecrawl, and web sources. Analyzed [M] sources in depth.
Tools used: [list which tiers were used]
Sub-questions investigated: [list]
Step 6: Deliver
- Short topics (under 500 words): Post the full report in chat
- Long reports: Post executive summary + key takeaways in chat, save full report to
docs/research/[topic-slug]-[date].md
Step 7: Store to Vector Memory
After delivering the report, save a summary to vector memory:
memory_store:
content: "[Topic] research completed. Key findings: [2-3 sentences]. [N] sources analyzed. Report saved to [path]."
tags: ["deep-research", "[topic-keyword]", "[project-name]"]
Quality Rules
- Every claim needs a source. No unsourced assertions.
- Cross-reference. If only one source says it, flag it as unverified.
- Recency matters. Prefer sources from the last 12 months. Use Exa's date filtering.
- Acknowledge gaps. If you could not find good info on a sub-question, say so.
- No hallucination. If you do not know, say "insufficient data found."
- Separate fact from inference. Label estimates, projections, and opinions clearly.
Examples
"Research the current state of nuclear fusion energy"
"Deep dive into Rust vs Go for backend services in 2026"
"Research the best strategies for bootstrapping a SaaS business"
"What's happening with the US housing market right now?"
"Investigate the competitive landscape for AI code editors"