Skip to main content

Research web topics and email a Claude report via Gmail using SerpApi, Jina.ai and Firecrawl

Workflow preview

Workflow preview
100%
Research web topics and email a Claude report via Gmail using SerpApi, Jina.ai and Firecrawl preview
Open on n8n.io

1. Workflow Overview

Submit a research topic through a form and receive a professionally styled executive report in your inbox — fully automated, with built in scraping resilience. The workflow searches Google via Serp...

Best for

  • Market Research automation workflows
  • AI RAG automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.stickynote, n8n-nodes-base.formtrigger, n8n-nodes-base.set, n8n-nodes-base.httprequest, n8n-nodes-base.code, n8n-nodes-base.splitinbatches, @n8n/n8n-nodes-langchain.chainllm, @n8n/n8n-nodes-langchain.lmchatanthropic

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Surya Vardhan Yalavarthi.

Original n8n.io source

1.1 Workflow description

Title
Research web topics and email a Claude report via Gmail using SerpApi, Jina.ai and Firecrawl
Workflow name
Research web topics and email a Claude report via Gmail using SerpApi, Jina.ai and Firecrawl

Submit a research topic through a form and receive a professionally styled executive report in your inbox — fully automated, with built-in scraping resilience.

The workflow searches Google via SerpApi, scrapes each result with Jina.ai (free, no key needed), and uses Claude to extract key findings. If a page is blocked by a CAPTCHA or login wall, it automatically retries with Firecrawl. Blocked sources are gracefully skipped after two attempts. Once all sources are processed, Claude synthesises a structured executive report and delivers it as a styled HTML email via Gmail.

How it works

  1. A web form collects the research topic, number of sources (5–7), and recipient email
  2. SerpApi searches Google and returns a buffer of results (2× requested + 3 to survive domain filtering)
  3. Junk domains are filtered out automatically (Reddit, YouTube, Twitter, PDFs, etc.)
  4. Each URL is processed one at a time in a serial loop:
  • Round 1 — Jina.ai: free Markdown scraper, no API key required
  • Claude checks the content — if it's a CAPTCHA or wall, it returns RETRY_NEEDED
  • Round 2 — Firecrawl: paid fallback scraper retries the blocked URL
  • If still blocked, the source is marked as unavailable and the loop continues
  1. All extracted findings are aggregated and Claude writes a structured executive report (Executive Summary, Key Findings, Detailed Analysis, Data & Evidence, Conclusions, Sources)
  2. The report is converted to styled HTML (with tables, headings, and lists) and emailed to the recipient

Setup steps

Required credentials

Service Where to get it Where to paste it
SerpApi serpapi.com — free tier: 100 searches/month SerpApi Search node → query param api_key
Firecrawl firecrawl.dev — free tier: 500 pages/month Firecrawl (Fallback) node → Authorization header
Anthropic n8n credentials → Anthropic API Connect to: Claude Extractor, Claude Re-Analyzer, Claude Synthesizer
Gmail n8n credentials → Gmail OAuth2 Connect to: Send Gmail

Error handler (optional)

The workflow includes a built-in error handler that captures the failed node name, error message, and execution URL. To activate it: Workflow Settings → Error Workflow → select this workflow. Add a Slack or Gmail node after Format Error to receive failure alerts.

Nodes used

  • n8n Form Trigger — collects topic, source count, and recipient email
  • HTTP Request × 3 — SerpApi (Google Search), Jina.ai (primary scraper), Firecrawl (fallback scraper)
  • Code × 6 — URL filtering, response normalisation, prompt assembly, HTML rendering
  • Split In Batches — serial loop (one URL at a time, prevents rate limit collisions)
  • IF × 2 — CAPTCHA/block detection after each scrape attempt
  • Wait — 3-second pause before Firecrawl retry
  • Basic LLM Chain × 3 — page analysis (×2) and report synthesis (×1), all powered by Claude
  • Aggregate — collects all per-URL findings before synthesis
  • Gmail — sends the final HTML report
  • Error Trigger + Set — error handler sub-flow

Notes

  • Jina.ai is free and works without an API key for most public pages
  • Firecrawl is only called when Jina is blocked — most runs won't consume Firecrawl credits
  • SerpApi fetches numSources × 2 + 3 results to ensure enough survive domain filtering
  • Claude model is set to claude-sonnet-4-5 — swap to any Anthropic model in the three Claude nodes
  • The HTML email renders markdown tables, headings, lists, and bold correctly in Gmail

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Main Guide

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 2 - Error Handler Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 3 - S1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 4 - S2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 5 - S3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 6 - S4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 7 - Research Form

Type / Role
n8n-nodes-base.formTrigger - formTrigger
Config choices
Version 2.5

Block 8 - Set Config

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 9 - SerpApi Search

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.4

Block 10 - Parse & Filter URLs

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 11 - Loop Over URLs

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 12 - Jina Reader (Primary)

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.4

Block 13 - Normalize Jina Response

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 14 - Page Analyzer (Round 1)

Type / Role
@n8n/n8n-nodes-langchain.chainLlm - chainLlm
Config choices
Version 1.9

Block 15 - Claude Extractor

Type / Role
@n8n/n8n-nodes-langchain.lmChatAnthropic - lmChatAnthropic
Config choices
Version 1.3

Block 16 - Combine Analysis R1

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 17 - Retry Needed? (IF)

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 18 - Merge Page Results

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 19 - Enrich & Forward

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 20 - Wait Before Retry

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 21 - Firecrawl (Fallback)

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.4

Block 22 - Normalize Firecrawl

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 23 - Page Analyzer (Round 2)

Type / Role
@n8n/n8n-nodes-langchain.chainLlm - chainLlm
Config choices
Version 1.9

Block 24 - Claude Re-Analyzer

Type / Role
@n8n/n8n-nodes-langchain.lmChatAnthropic - lmChatAnthropic
Config choices
Version 1.3

Showing the first 24 of 35 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Research web topics and email a Claude report via Gmail using SerpApi, Jina.ai and Firecrawl
Complexity advanced
Nodes 35
Categories Market Research, AI RAG
Author Surya Vardhan Yalavarthi
Published 23 Feb 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/13608/13608.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Research web topics and email a Claude report via Gmail using SerpApi, Jina.ai and Firecrawl do?

Submit a research topic through a form and receive a professionally styled executive report in your inbox — fully automated, with built in scraping resilience. The workflow searches Google via Serp...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Market Research, AI RAG use case.