Share from 0:00
0:00
/

How to Run a Competitive Analysis on Substack Newsletters with Claude Cowork

One prompt extracted audience profiles, writing style DNA, content gaps, and a full growth strategy into a 17-page report.

On Episode 3 of One Shot Show, Dheeraj Sharma and I did something I’ve been wanting to demo for a while. We took his newsletter, GenAI Unplugged, and ran a full competitive analysis on it using Claude Cowork. Live. In front of everyone.

The idea was simple.

Can an AI agent visit your Substack, read your top posts, figure out who your audience is, identify your writing patterns, spot the gaps in your content, and then hand you a growth strategy? All without you doing anything except writing one prompt?

It can. The agent generated a 17-page Word document with audience profiles, content theme breakdowns, writing style DNA, opportunity mapping, SEO analysis, and 10 specific content ideas. And the whole thing ran autonomously while Dheeraj and I sat there talking about what was happening on screen.

But before we get there, a quick primer. Because if you’ve been hearing “Claude” everywhere and wondering which Claude product actually does what, you’re not alone. We spent the first chunk of the episode breaking this down.

Claude Chat vs. Cowork vs. Code: A Quick Primer

A Table Explaining Main differences between Claude Website vs Cowork vs Code

For the last three years, most of us have interacted with AI through a chatbot. You ask a question, you get an answer, you copy-paste the output into whatever you’re working on. That’s Claude on the website. It works, but you’re always the middleman. You’re the one moving information between the AI and your actual work.

Claude Projects tried to improve this by letting you store knowledge, brand voice, and style guides in one place. But Projects have real limitations. Every chat has a context window cap (around 200K tokens), and the more files you add, the slower the responses get. You’re still stuck in a back-and-forth where you copy output into your docs, your tools, your spreadsheets.

Then Claude Code came along mid-2025. This was the jump from chatbot to agent. Instead of just answering questions, Claude Code can plan multi-step tasks, read and edit files on your computer, execute work end-to-end, and access your entire system. The catch? It runs in a terminal. And for most people, the terminal is where enthusiasm goes to die.

I’ll be honest. I don’t consider myself a tech person. But I decided to jump into Claude Code anyway, and it changed how I run my entire newsletter. I’d say it was worth all the effort and gave me 10x more capability in what I can do with AI.

Cowork is Claude Code’s agentic engine wrapped in a visual interface

But Anthropic clearly saw the gap. In January 2026, they released Claude Cowork. Here’s the simplest way to think about it: Cowork is Claude Code’s agentic engine wrapped in a visual interface. Same planning capabilities, same file access, same ability to deploy parallel sub-agents. But instead of a terminal, you get folders on the left, a chat in the middle, and outputs on the right. No code visible anywhere.

The five core things Cowork can do:

  1. CLAUDE.md instructions. You connect a folder from your computer, and inside that folder you put a CLAUDE.md file with your project context, your voice guidelines, your audience profile. This becomes the brain of every task you run.

  2. Planning with visible to-do lists. When you give Cowork a complex request, it steps back, creates a plan, and shows you a checklist it works through. You can watch each step get checked off in real time.

  3. Claude in Chrome. This is built into Cowork by default. The agent can take over your browser, navigate pages, take screenshots, click through links, and extract information visually. It’s the same as using Claude in Chrome as a standalone extension, but integrated directly.

  4. Parallel sub-agents. When tasks are complex, Opus 4.6 will spin up multiple sub-agents that work simultaneously. This makes multi-step workflows significantly faster.

  5. File outputs. The agent can read and generate Excel, PowerPoint, Word, and HTML files directly. No more copy-pasting from chat into a document.

There are a few honest trade-offs to know about. Cowork only accesses folders you manually select, and it’s limited to your home directory. Claude Code has full access to any folder on your system. Cowork is also noticeably slower than Code in my experience. And one thing we noticed during the stream: Cowork doesn’t seem to offer the 1 million token context window that Claude Code has in the terminal. We couldn’t confirm whether it’s running behind the scenes or genuinely limited.

But for someone who wants agent-level capabilities without touching a terminal? Cowork closes that gap completely. And that’s what we used for the live demo.

I’ve covered an in-depth guide on how to use Claude Cowork in case you want to explore more.

Why Your Own Newsletter Is the Hardest Thing to Analyze

Most newsletter creators I know, myself included, have a blind spot when it comes to their own content. You know what you write about. You know your audience in a general sense. But you’re too close to the work to see the patterns clearly.

When someone asks “what’s your newsletter’s voice?” or “what makes your content different?”, most of us give a vague answer. Something about AI, practical advice, building systems. That’s the high-level story. It’s the one we tell ourselves.

But the real answer lives in the data. It’s in which posts performed best, what language patterns show up across your top content, what problems you keep solving for readers, and where the gaps are between what you cover and what your audience is looking for.

The problem is that doing this analysis manually takes hours. You’d need to read through your own archive, pull out themes, cross-reference engagement data, and somehow step outside your own perspective to see it objectively.

That’s exactly what we asked Claude Cowork to do.

How the Newsletter DNA Extraction Actually Works

The workflow chains three capabilities together: vision-based browsing, web scraping, and deep content analysis. Here’s the sequence we ran live:

An Infographic showing how to extract substack newsletter DNA using Claude Cowork
  • Step 1: Homepage reconnaissance. Claude in Chrome navigated to Dheeraj’s Substack homepage and took screenshots. From just the homepage, the agent pulled an initial read on the newsletter’s positioning, recent topics, and overall content direction. This is vision-based. The agent is literally looking at the page the way a human would.

  • Step 2: Archive deep dive. We pointed the agent to the top-performing posts archive (the /archive?sort=top URL on Substack). Claude in Chrome browsed this page, identified the highest-performing posts, and extracted the links.

  • Step 3: Content scraping. The agent triggered Firecrawl MCP to scrape the full text of each post. Now, something happened here that’s worth calling out. My Firecrawl credits had run out. Instead of failing, the agent fell back to Claude’s built-in web fetch feature and kept going. The analysis continued without us intervening. This is one of those moments that shows the difference between a chatbot and an agent. A chatbot would have stopped and told you the tool failed. The agent adapted and found another way to get the data.

  • Step 4: Pattern analysis. With 5-10 full posts scraped, the agent ran its analysis: audience profiling, content theme identification, writing style extraction, structural patterns in top posts, and content gap mapping.

  • Step 5: Report generation. Everything got compiled into a Word document. 17 pages. Formatted with sections, headers, and actionable recommendations.

What the 17-Page Report Actually Contains

Let me walk through the sections because the depth surprised even me:

  1. Audience Profile. The report started with “Who reads GenAI Unplugged?” and broke it down into three layers: what frustrates the audience, what they already know, and what they actually want. This wasn’t generic personas. It was derived from the language and topics in Dheeraj’s top posts.

  2. Content Themes. The agent categorized Dheeraj’s content into four buckets: code and AI agent builds, tool deep dives, AI automations, and icon automations. What’s useful here is seeing the distribution. You might think you cover topics evenly, but the data often shows you lean heavily into one area.

  3. Writing Style DNA. This section pulled out voice characteristics, signature phrases, and recurring concepts. If you’ve never had your writing style analyzed externally, this is genuinely eye-opening. The patterns the agent found were things Dheeraj recognized as true but had never articulated.

  4. Content Gaps and Opportunities. This is where it gets strategic. Based on what the top posts covered and what they didn’t, the agent identified specific content territories that Dheeraj could explore. These weren’t random suggestions. They were grounded in what was already working and what was missing.

  5. 10 Specific Content Ideas. Derived from the gap analysis. Each idea connected to an existing strength in Dheeraj’s content library.

  6. Growth Strategy. The final sections covered newsletter-level SEO analysis, niche clarity, keyword territory mapping, audience segmentation, competitive positioning, and a monetization structure breakdown. It even identified products Dheeraj had mentioned across posts, like SubFlow CLI.

  7. Top 5 Immediate Actions. Concrete next steps, not vague advice.

You can check the result here.

🚨 Pro tip: The initial sections of this report, the audience profile, the voice characteristics, the writing style DNA, can feed directly back into your CLAUDE.md file or your brand profile. So the analysis can be transferred as the foundation for every future AI-assisted task you run.

If you want to learn more about what CLAUDE.md can do for you, check out my latest piece: Claude Code Ultimate Guide.

Who Should Use This (and the Prompt to Get Started)

If you run a Substack newsletter and want to extract your own DNA, this workflow works on both Claude Cowork and Claude Code.

For Cowork users: You need Claude in Chrome enabled (install the extension and log in), and Firecrawl MCP connected through the connectors menu. Set the model to Opus 4.6 with extended thinking toggled on. If you’re on the Pro Plan, Sonnet 4.6 with thinking mode also works, but Opus tends to deploy parallel sub-agents more aggressively, which speeds up the process.

For Claude Code users: Same requirements, just running from the terminal instead of the GUI. The advantage is faster execution and access to any folder on your system. The disadvantage is that the terminal can feel intimidating if you’re not used to it.

A few things to keep in mind:

  1. This is a token-heavy workflow. Opus 4.6 will burn through tokens because it’s scraping full posts and running deep analysis. Be aware of that before you start.

  2. Posts behind a paywall will get skipped. Tell the agent explicitly to move past paywalled content and grab the next available free post instead. Otherwise the report gets messy with partial content.

  3. Put your newsletter details in the prompt: your URL, your top archive URL, your current subscriber count, your main topics, and your growth goal. The more context you give, the better the analysis.

Here’s the prompt you can copy and paste:

## Context

I run a Substack newsletter at [YOUR NEWSLETTER URL] and want a comprehensive content analysis to help me grow.

## Task

Analyze my newsletter deeply and provide actionable growth recommendations.

---

## ⚠️ Prerequisites — Read Before Starting

This workflow requires two tools to be active before you begin:

1. **Claude in Chrome** — needed for navigating pages and extracting live URLs

2. **Firecrawl MCP** — needed for scraping the full content of each post

Do not begin until both are confirmed active. If either is missing, stop and ask the user to enable them.

---

## Requirements

### Phase 0: Homepage Overview (START HERE)

1. **Navigate to the homepage**: [YOUR NEWSLETTER URL] using Claude in Chrome

2. **Take a screenshot** of the homepage

3. **Analyze the overview**:

- What content categories/sections are featured?

- What are the recent post titles and themes?

- What’s the visual branding and aesthetic?

- What navigation options are available (tabs, links)?

- What’s the overall positioning and tagline?

4. **Get broader context** from recent posts visible on homepage (titles + descriptions):

- Identify content patterns across recent posts

- Note which themes appear most frequently

- Understand the current focus and direction

---

### Phase 1: Deep Content Analysis

#### Step 1: Navigate to the archive page

Using Claude in Chrome, go to: [YOUR NEWSLETTER URL]/archive?sort=top

Take a screenshot of the archive page.

#### Step 2: Extract real URLs — do not guess

On the archive page, identify the top 7–10 posts by engagement. For each post:

- **Click into the post card** or hover to reveal the full URL

- **Copy the exact URL** as it appears in the browser address bar

- Record this URL before moving to the next post

> ⚠️ **Critical rule**: Never construct, guess, or infer a post URL. Only use URLs that were directly observed in the browser. Guessed URLs will lead to wrong pages or 404 errors.

#### Step 3: Scrape each post using Firecrawl MCP

For each URL collected in Step 2:

1. Pass the exact URL to Firecrawl MCP

2. Extract the full post content

3. If the post is behind a paywall and returns only a preview, skip it and move to the next URL

4. Continue until you have **5 fully readable posts minimum**

For each readable post, extract:

- Core problem being solved

- Target audience signals (who is this for?)

- Writing style patterns (voice, structure, tone)

- Frameworks or methodologies used

- Engagement tactics (calls to action, examples, screenshots)

---

### Phase 2: Pattern Recognition

Analyze across all posts to identify:

- **Audience Profile**: Who reads this? What’s their core frustration? What do they already know?

- **Problems Solved**: What 3–5 pain points does this newsletter address?

- **Content Themes**: What are the main content categories? How do they differ?

- **Writing Style DNA**: What makes this voice unique? What’s the consistent structure?

- **Unique Value Prop**: What does this newsletter do differently than competitors?

---

### Phase 3: Opportunity Mapping

#### Content Ideas — Quality Filter

Generate 10 specific content ideas. Each idea must pass both of these tests before inclusion:

1. **Pattern test**: It maps back to a specific pattern or structure observed in the top posts (cite which post it draws from)

2. **Audience test**: It directly addresses a frustration explicitly visible in the audience profile built in Phase 2

Generic ideas that could apply to any newsletter should be discarded.

**Required format for each idea:**

> **Title**: [Working title]

> **Why it works**: Tied to evidence from top posts or audience profile (be specific)

> **Suggested format**: e.g. breakdown, case study, tutorial, comparison

> **Hook sentence**: One sentence that could open the post

#### Additionally identify:

- **Format Gaps**: What content formats (templates, tools, video walkthroughs) are underutilized given what already resonates?

- **Content Gaps**: What angles or topics are missing that the audience would clearly value based on the problems you’ve identified?

---

### Phase 4: Growth Strategy

#### 1. Newsletter-Level SEO Analysis

Do not analyze individual posts for SEO. Instead, evaluate SEO at the newsletter level by answering:

- **Niche clarity**: Is the newsletter’s positioning specific enough to own searchable territory? What would someone Google to find this?

- **Keyword territory**: What topic cluster does the content naturally occupy? Name 3–5 terms this newsletter could realistically rank for

- **Owned asset opportunity**: What single tool, glossary, or resource page — if created — could drive recurring search traffic back to the newsletter?

#### 2. Content Repurposing

How should existing top posts be amplified across platforms? Be specific about which post types translate best to which channels (LinkedIn, Twitter/X, YouTube Shorts, etc.)

#### 3. Audience Segmentation

Should content be tiered by skill level? If yes, recommend how to segment and what content belongs in each tier.

#### 4. Next Steps

List the top 5 immediate actions in priority order, with a one-sentence rationale for each.

---

## Deliverables

### Comprehensive Analysis (Word Document)

Output a single well-formatted Word document (.docx) covering all sections below. Use headings, subheadings, and spacing to make it easy to navigate. Do not truncate or summarize — the goal is a complete, long-form reference document.

Sections to include:

- Executive Summary

- Audience Profile

- Problems Solved (with examples from posts)

- Content Themes & Patterns

- Writing Style Analysis

- Content Gaps & Opportunities

- 10 Specific Content Ideas (using the quality filter above)

- Growth Strategy Recommendations

- Competitive Positioning

- Next Steps

---

## My Newsletter Details

**URL:** [YOUR URL]

**Top Posts Archive:** [YOUR URL]/archive?sort=top

**Current Stats:** [Subscribers, ARR, posting frequency]

**Main Topics:** [Brief description of what you write about]

**Goal:** [What you want to achieve — more subscribers, revenue, clarity, etc.]

---

## Process Notes

**Do not skip steps or reorder phases.** The sequence matters:

1. Homepage → establishes positioning and branding context

2. Archive page → identifies what resonates with the audience

3. Extract real URLs from the page before scraping — never guess

4. Firecrawl MCP scrapes full content from each confirmed URL

5. This context-first flow prevents generic analysis

**URL rule**: Every post URL must be directly observed in the browser via Claude in Chrome. Do not construct URLs from post titles or patterns.

**Gated content**: If Firecrawl returns only a preview, skip that post. Move to the next confirmed URL. Need 5 fully readable posts minimum.

**Content ideas must be grounded**: Every idea must trace back to observed evidence. If you can’t cite where the pattern came from, the idea doesn’t qualify.

---

## Success Criteria

- [ ] Claude in Chrome was active before starting

- [ ] Firecrawl MCP was active before starting

- [ ] Homepage screenshot and overview completed first

- [ ] All post URLs were extracted directly from the browser — none were guessed

- [ ] Firecrawl MCP was used to scrape each post

- [ ] Analysis based on reading full post content (minimum 5 posts)

- [ ] Gated posts were skipped, not summarized from previews

- [ ] Each content idea passes both the pattern test and audience test

- [ ] SEO analysis is newsletter-level, not per-post

- [ ] Full analysis delivered as a Word document (.docx)

- [ ] Recommendations are actionable with clear next steps

- [ ] Insights are non-obvious and tied to specific evidence from posts

One More Thing About Cowork vs. Claude Code

Dheeraj asked me on the stream whether Claude Code power users should migrate to Cowork. My honest answer: probably not.

If you already have your folders, your CLAUDE.md instructions, and your workflows set up in Claude Code, Cowork is slower and more restricted. It only accesses folders you manually select, and it’s limited to your home directory. Claude Code has full system access and runs faster.

But Cowork has one genuine unlock. It’s for people who want agentic capabilities without touching a terminal. If the command line feels daunting, Cowork gives you the same Claude Code engine wrapped in a visual interface. Folders on the left, chat in the middle, outputs on the right. No code visible anywhere.

I use both. Claude Code for my daily newsletter work because everything is already set up there. Cowork for quick one-off tasks and for the Dispatch feature, which lets me trigger tasks from my phone as long as my computer is awake.

Next week on Episode 4, we’re putting Claude Code and n8n side by side. Same automation, built both ways, so you can see which platform makes sense for what. If you’ve been wondering whether to learn n8n or go all-in on Claude Code for your AI automations, that’s the one to catch. Every Wednesday, 10 AM EST.

See you in the next one.

Share

One Shot Show Details

Episode: One Shot Show, Episode 3 (Season 1)
Live Schedule: Every Wednesday at 10:00 AM EST on Substack

Season 1 Episodes:

Timestamps:

  • 00:00 - Welcome and Episode 3 intro

  • 01:35 - Wyndo introduces the competitive analysis use case

  • 04:01 - Evolution from chatbot to AI agent (Claude Code to Cowork)

  • 09:05 - Five core capabilities of Claude Cowork

  • 13:25 - Progressive disclosure in CLAUDE.md (Dheeraj’s tip)

  • 14:48 - Walking through the CLAUDE.md custom instructions

  • 17:00 - Chatbot vs. agent comparison

  • 20:29 - Starting the live newsletter DNA extraction demo

  • 24:07 - Cowork features: folders, connectors, and plugins

  • 26:05 - Dispatch and schedule features

  • 28:01 - Running the prompt and watching the agent plan

  • 34:06 - Agent creates planning to-do list, Claude in Chrome takes over browser

  • 35:25 - “What do you do while agents work?” discussion

  • 37:48 - Firecrawl runs out of credits, agent falls back to web fetch

  • 41:04 - Cowork UI appears to freeze (but agent keeps running)

  • 43:42 - Pre-run output walkthrough: 16-page report structure

  • 46:32 - Live run output arrives: 17-page report

  • 47:40 - Closing discussion: Who should use Cowork vs. Claude Code

  • 53:55 - Viewer Q&A: Memory between Cowork sessions

  • 55:25 - Episode 4 preview: Claude Code vs n8n

Resources Mentioned

  • Claude Cowork (Anthropic) - GUI interface for Claude Code’s agentic capabilities, built into Claude Desktop. Included with Claude Pro plan.

  • Claude Code (Anthropic) - Terminal-based AI agent with full system access, planning, and parallel sub-agents. Requires Max plan for Opus 4.6.

  • Claude in Chrome (Anthropic) - Browser extension that gives Claude vision-based web browsing. Takes screenshots, clicks, and navigates autonomously.

  • Firecrawl MCP - Web scraping connector for Claude. 500 one-time credits on the free tier (previously 500/month). MCP docs.

  • Jina.ai - Free alternative to Firecrawl for web scraping. Mentioned by Dheeraj as a backup option.

  • Gemini CLI - Google’s CLI tool. Dheeraj uses Flash 2.5 for search and fetch capabilities.

  • Tavily - Research and web search connector available in Cowork’s connector marketplace. This is my favorite tool at the moment.

  • Perplexity - Deep research connector.

  • Dispatch (Anthropic) - Mobile access feature for Claude Cowork. Trigger tasks from your phone as long as your computer is awake.

  • Claude Code Channels (Anthropic) - Connect Claude Code to Telegram, Discord, and custom hooks for always-on access via Tmux.

  • Opus 4.6 - Recommended model for this workflow. Deploys parallel sub-agents and handles complex multi-step tasks.

  • Sonnet 4.6 - Alternative model. Works with extended thinking toggled on, uses fewer tokens.

Discussion about this video

User's avatar

Ready for more?