by: Jo Kaminska
Most content calendars start with keyword research and capturing historical search volumes. Mine starts with listening to how people actually talk about their problems.
For a recent client project, I needed to build a content roadmap for a B2B SaaS company in a regulated industry. Instead of pulling keyword volumes, I went to where their audience talks to each other — a community group with thousands of practitioners in their niche.
I collected about 50 posts, ran them through a structured qualitative analysis pipeline using Claude Cowork, and came out with a prioritized content backlog tied to problems people are actively discussing.
1. Prepare the data
I collected posts covering about three months of community discussion — manually copying posts and top comments into a single text file. You can also use scraping tools like Apify for public groups.
I filtered to community member posts only (no admin announcements), scoped to a defined date range, and kept the raw data intact.
2. Set up the workspace
I run this in Claude Cowork: Anthropic’s desktop tool that lets Claude work with files in a local folder. Before running anything, the folder needs three docs:
- Company about: what the company does, what industry they’re in, what products they offer. One page is enough. This gives the LLM context to understand what’s relevant in the data
- Audience doc: who you’re analyzing, i.e. target personas, roles, segments (prospect vs. customer). This doc should describe your audience well and share their pain points, JTBD, motivations, etc.
- Raw qualitative data: the data that you prepared in step 1; in my case, community posts (in my case). But this can work on any qualitative data — think call transcripts, support tickets, interview notes. One source type is enough to start.
As Cowork runs each step of the system prompts, it saves structured outputs into subfolders:
/01-signals/ /02-themes//03-topics/
You’ll see them after the pipeline run is complete.
3. Load the prompts
The pipeline runs on eight system prompts — each handling one step of the analysis. They’re designed to output structured JSON so every step feeds cleanly into the next. At the very end of the pipeline run you receive a DOCX file with the analysis and content calendar.
I drop the prompts into the Cowork folder alongside the three docs, point Cowork at the folder, and tell it to run the pipeline. As it works through each step, it saves outputs into the subfolders.
If you want to run this analysis for your own content, you can download the system prompts I use here:
→ [See the whole process and access system prompts]
What happens at each step
1. Signal extraction
The first prompt pulls every meaningful quote from the raw data and classifies it as one of the following signals: pain, objection, desired outcome, trigger, competitor mention, or distinctive phrase. Each signal gets tagged with emotion and intensity (1–5 scale).
The system only extracts audience speech, never my interpretation, and it preserves exact wording. The raw audience language is the asset.
From 50 posts, I typically get 50–150 signals. A single post can produce multiple signals, too.
Example: One community member wrote about a third party refusing to complete a verification step, called it “ridiculous,” and mentioned a competing tool by name. That single post produced a Pain signal, an Objection signal, an Alternative signal, and a Language signal — four data points from one paragraph.
2. Theme clustering
All signals get grouped into 6–10 themes — recurring concerns that appear across multiple posts.
I cap it at 10 themes maximum. If a potential theme has fewer than three supporting quotes, it gets merged or dropped. The separation between “recurring concern” and “one-off complaint” helps me take a messy dataset and turn it into my content priority list.
Example: In my analysis, three themes dominated: questions about connecting different software tools (35+ mentions), anxiety around operational errors and liability (30+ mentions), and confusion around regional process differences (15+ mentions). That hierarchy immediately told me what to cover first.
3. Theme cards
For each theme, a detailed card gets built by persona. Each card captures:
- pains,
- motivators
- triggers
- inertia
- anxieties
- verbatim objections (quoted from step 1)
- aha moments
- a language bank of exact phrases with usage suggestions — (i.e. which phrase works as a headline, which as a CTA, which as an intro hook)
A useful part is anti-patterns. In one analysis, the data showed the audience was allergic to generic “share industry stats” messaging. This audience lives in the risk daily, so stats signal you don’t understand them. Knowing what NOT to say is as valuable as knowing what to say.
Example: A theme card for “operational error anxiety” showed that the audience’s primary emotion was frustrated determination, not fear. That changed the content framing from “here’s what could go wrong” (which they already know) to “here’s the script for when someone pushes back” (which they actually need).
4. Additional lenses
Four supplementary analyses layer on top of the theme cards:
- Frequency analysis tells me what to write first. The highest-frequency, highest-intensity themes become my first priorities.
- Discourse analysis tells me how to write it. In this dataset, the community uses dark humor as a trust signal and shares daily war stories over best practices. I try to then mirror that language instead of translating their problems into polished copy.
- Emotional mapping tells me what angle to take. A theme driven by anxiety needs reassurance-first content. A theme driven by curiosity needs comparison content. Same volume of demand, different approach.
- Competitive analysis maps every tool the audience mentions with sentiment, perceived strengths and weaknesses, and relationship to my client’s product.
Once I know what matters most, how the audience talks about it, and what emotional state they’re in, the themes are ready to become topics.
5. Topic generation
The final prompt converts theme cards into a prioritized content backlog by funnel stage:
- Objections, anxieties, and competitor mentions → bottom-of-funnel content (comparisons, FAQs, migration guides)
- Pains, triggers, and proof stories → middle-of-funnel content (how-to guides, case studies, playbooks)
- Language patterns, industry trends, and aha moments → top-of-funnel content (thought leadership, trend pieces, explainers)
Each topic gets a narrative angle, a “why now” rationale, a persona, a format recommendation, and a CTA aligned to the emotional state of the theme. Every topic links back to at least one verbatim quote as proof of demand.
Example: The “operational error anxiety” theme produced three topics: a MOFU response-script template (driven by the most common verbatim objections), a TOFU thought-leadership piece reframing non-compliance as an intelligence signal (driven by an aha moment in the data), and a BOFU comparison page (driven by active community discussion about competing tools).
What the final deliverable looks like
After this entire pipeline runs, Cowork delivers a strategic overview: what the data shows about where this audience is in their thinking and what content gaps exist.
Then, I get prioritized topics mapped to real jobs, audience-native language with usage instructions, anti-patterns that prevent tone-deaf content, competitive positioning, and evidence backing every editorial decision.
Everything also runs through a quality checklist: maximum 10 themes, every theme backed by at least 3 verbatim quotes, every topic linked to proof of demand, balanced funnel coverage.
Doing all of this means when a stakeholder asks “why are we writing about this?”, the answer is “our audience brought this up 35 times in three months with high emotional intensity, and no one is giving them a clear answer.” ■
I’m Jo — an SEO strategist and content operator helping B2B SaaS and cybersecurity companies build content strategies grounded in real audience data and turn organic visibility into pipeline.
I also work with GrowthX, an AI-powered organic growth agency serving world-class SaaS companies from the San Francisco Bay Area. You can find me on LinkedIn or at my website.
Leave a Reply