Skip to content

Instantly share code, notes, and snippets.

@mattgiaro
Created December 9, 2025 05:34
Show Gist options
  • Select an option

  • Save mattgiaro/8a29af953d580fb345969bf74b0fd1ff to your computer and use it in GitHub Desktop.

Select an option

Save mattgiaro/8a29af953d580fb345969bf74b0fd1ff to your computer and use it in GitHub Desktop.
prompt_chain.md
# GOAL
Main Goal of all of this: **Finding how to create content that resonates to build the audience faster.**
How we do this:
Analysing competitor content, finding what content works in terms of ideas, strucutres, and emotions. And then crearting a content strategy around that.
## Setup Context
Folder structure:
```
/competitor-analysis
/input
competitor_a.csv
competitor_b.csv
competitor_c.csv
/output
combined_posts.csv
tagged_posts.csv
idea_mapping.json
tagged_posts_normalized.csv
summary_tables.csv
insights.md
```
Each input CSV needs:
- `post_content` (the text)
- `engagement` (likes, views, whatever you have)
- `competitor` (name or handle, or infer from filename)
---
## Prompt 1: Setup & Combine Files
```
I have a folder called /input with multiple CSV files. Each CSV contains short-form social media posts from a competitor.
Each CSV has these columns:
- post_content: the text of the post
- engagement: a number representing likes/views
- competitor: name of the competitor (or infer from filename if not present)
Your job:
1. Read all CSV files from /input
2. Combine them into one unified dataset
3. Add a "source_file" column so I know where each row came from
4. Show me a count of how many posts per competitor we're working with
5. Save the combined file as /output/combined_posts.csv
Don't start analysis yet. Just prepare the data and confirm what we're working with.
```
---
## Prompt 2: Tag Each Post (Core Idea Extraction)
```
Read /output/combined_posts.csv
For each row, analyze the post_content and add these new columns:
1. core_idea
THE MOST IMPORTANT FIELD.
Extract the specific claim, insight, or argument the post is making.
Write it as ONE clear sentence.
Rules:
- Be concrete and specific, not categorical
- Capture the ACTUAL ARGUMENT, not the topic
- Write it as a statement someone could agree or disagree with
BAD examples (too generic):
- "content strategy"
- "growing an audience"
- "email marketing tips"
- "mindset advice"
GOOD examples (specific arguments):
- "you should post daily even if the quality isn't perfect"
- "your first 100 posts are just practice, not content"
- "niching down too early kills most creators"
- "one viral post matters less than 100 consistent ones"
- "your email list is the only asset you actually own"
- "give away your best stuff for free, sell the implementation"
- "most creators quit right before the algorithm rewards them"
- "repurposing is how pros create 10x more without 10x effort"
2. topic_category
Broad bucket for grouping. Pick ONE:
- content_creation
- audience_growth
- email_marketing
- monetization
- offer_creation
- productivity
- mindset
- personal_brand
- platform_tactics
- other
3. hook_type
How does the post open? Pick ONE:
- question: asks the reader something
- bold_claim: states something provocative or contrarian
- story: starts with personal narrative, uses "I"
- pain_point: calls out a frustration or struggle
- how_to: promises a method or steps
- stat_proof: leads with a number or result
- curiosity_gap: teases without revealing
4. emotion
What feeling does this trigger? Pick ONE:
- awe: inspiring, mind-expanding, "wow I never thought of it that way"
- anger: frustrating, calls out BS, "this is what's wrong with..."
- anxiety: fear-based, FOMO, "you're falling behind"
- excitement: opportunity, possibility, "imagine if you could..."
- amusement: funny, entertaining, clever
- validation: "you're not alone", "it's okay that you..."
- neutral: purely informational, no emotional charge
5. share_driver
Why would someone repost this? Pick ONE:
- social_currency: makes sharer look smart or in-the-know
- practical_value: genuinely useful, helps others
- strong_opinion: polarizing, people want to agree/disagree publicly
- relatability: "this is so me" content
- story: narrative that pulls people in
Rules:
- The core_idea is the priority. Spend most effort here.
- Pick the DOMINANT tag for other fields, not all that apply
- When torn between two, pick the stronger one
Save the result as /output/tagged_posts.csv
After saving, show me:
- Total posts processed
- 10 sample core_ideas so I can check if you're being specific enough
- Distribution of topic_category
- Distribution of emotion
```
---
## Prompt 3: Normalize Core Ideas
```
Read /output/tagged_posts.csv
Extract all unique values from the "core_idea" column.
Many of these will express the same underlying argument in different words.
For example, these are all the SAME idea:
- "post every day even if it sucks"
- "quantity beats quality when you're starting"
- "your first 100 posts are just practice"
- "perfectionism kills creators, just ship it"
Your job:
1. Group core_ideas that make essentially the same argument
2. For each group, write ONE clear master statement that captures the insight
3. Create a mapping
Save as /output/idea_mapping.json in this format:
{
"post daily, quality comes with reps": [
"post every day even if it sucks",
"quantity beats quality when starting",
"your first 100 posts are practice",
"perfectionism kills creators"
],
"your email list is your only real asset": [
"email list beats social followers",
"you don't own your social audience",
"build your list before anything else"
]
}
Guidelines:
- The master statement should be clear enough that someone could agree or disagree with it
- Aim for 30-60 distinct ideas (depends on dataset size)
- If an idea only appeared once and doesn't fit anywhere, keep it as its own entry
- Don't over-consolidate — "post daily" and "email beats social" are different ideas even if both are about growth
After creating the mapping, show me:
- How many unique raw core_ideas you found
- How many master ideas you consolidated them into
- The top 20 master ideas by frequency (how many posts express each)
```
---
## Prompt 4: Apply Normalized Ideas
```
Read /output/tagged_posts.csv and /output/idea_mapping.json
Replace each "core_idea" value with its master statement from the mapping.
Add a new column called "original_idea" that preserves the original extraction.
Save as /output/tagged_posts_normalized.csv
Show me:
- Confirmation it's done
- Top 25 normalized ideas by post count
```
---
## Prompt 5: Build Summary Tables
```
Read /output/tagged_posts_normalized.csv
Create these summary tables:
TABLE 1: IDEA PERFORMANCE (most important)
For each core_idea:
- post_count: how many posts express this idea
- avg_engagement: mean engagement
- max_engagement: best performing post with this idea
- top_competitor: who posts this idea most
- common_hook: most frequent hook_type used
- common_emotion: most frequent emotion used
Sort by avg_engagement descending.
Only include ideas with 3+ posts.
TABLE 2: IDEA BY COMPETITOR
Matrix showing which competitors use which ideas:
- Rows: top 30 ideas by frequency
- Columns: each competitor
- Cells: count of posts + avg engagement
This shows who "owns" which ideas.
TABLE 3: TOPIC CATEGORY PERFORMANCE
For each topic_category:
- post_count
- avg_engagement
- top_idea: best performing idea in this category
- worst_idea: lowest performing idea in this category (min 3 posts)
TABLE 4: HOOK TYPE PERFORMANCE
For each hook_type:
- post_count
- avg_engagement
- best_idea_pairing: which idea works best with this hook
- best_emotion_pairing: which emotion works best with this hook
TABLE 5: EMOTION PERFORMANCE
For each emotion:
- post_count
- avg_engagement
- top_ideas: top 3 ideas that use this emotion
- top_hooks: which hooks pair best
TABLE 6: SHARE DRIVER PERFORMANCE
For each share_driver:
- post_count
- avg_engagement
- top_ideas: top 3 ideas with this driver
TABLE 7: WINNING COMBINATIONS
Group by: core_idea + hook_type + emotion
- Only combinations with 3+ posts
- avg_engagement
- Sort descending
- Show top 30
TABLE 8: COMPETITOR OVERVIEW
For each competitor:
- total_posts
- avg_engagement
- signature_ideas: top 3 ideas they use most
- best_performing_idea: their highest engagement idea
- dominant_hook
- dominant_emotion
Save all tables to /output/summary_tables.csv
Display TABLE 1 (Idea Performance) and TABLE 8 (Competitor Overview) in full so I can review.
```
---
## Prompt 6: Generate Insights Report
```
Read /output/summary_tables.csv and /output/tagged_posts_normalized.csv
You are a content strategist analyzing what specific IDEAS resonate in this niche.
Write a clear, actionable report:
## WINNING IDEAS
List the top 10 highest-performing ideas by engagement.
For each one:
- State the idea clearly
- Show the numbers (post count, avg engagement)
- Explain WHY you think this resonates (based on emotion, hook patterns, etc.)
- Give an example of how I could express this idea in my own voice
## LOSING IDEAS
List 5-10 ideas that get posted frequently but underperform.
- Why might these be falling flat?
- Are they too generic? Wrong emotion? Overplayed?
- Should I avoid entirely or is there a reframe?
## HOOK + IDEA PATTERNS
Which hooks work best for which types of ideas?
Be specific:
- "Contrarian ideas perform 2x better with bold_claim hooks than with how_to"
- "Mindset ideas need story hooks to land, stat_proof kills them"
## EMOTION PATTERNS
Which emotions drive engagement in this niche?
- Is it anger? Validation? Awe?
- Any ideas that only work with a specific emotion?
## COMPETITOR POSITIONING
For each competitor:
- What ideas do they "own"? (post most + perform well)
- What's their emotional signature?
- What's working for them that others aren't doing?
## GAPS AND OPPORTUNITIES
Based on everything:
- Which winning ideas are underserved? (work well but few posts)
- Which idea + hook + emotion combos are untapped?
- Where's the white space I could own?
## MY CONTENT PLAN: 15 POST IDEAS
Based on the data, give me 15 specific posts I should create.
Format each as:
IDEA: [the core argument I'm making]
HOOK: [how I'll open it]
EMOTION: [what feeling I'm targeting]
ANGLE: [2-3 sentences describing the specific take and why it's differentiated]
DATA BACKING: [why this should work based on the analysis]
Make these specific enough that I could write the post tomorrow.
Save as /output/insights.md
```
---
## Prompt 7: Competitor Deep-Dive (Optional)
```
Read /output/tagged_posts_normalized.csv
Filter to only posts from: {{competitor_name}}
Analyze their content strategy:
## THEIR TOP 10 POSTS
List their 10 highest-engagement posts.
For each show:
- The core idea
- Hook type
- Emotion
- Why you think it worked
## THEIR BOTTOM 10 POSTS
List their 10 lowest-engagement posts (that have at least average effort).
For each show:
- The core idea
- Hook type
- Emotion
- Why you think it flopped
## THEIR SIGNATURE IDEAS
What ideas do they return to repeatedly?
Which of these actually perform vs which are "pet topics" that flop?
## THEIR FORMULA
Based on winners vs losers:
- What hook types work for them?
- What emotions work for them?
- What topics should they lean into?
- What should they stop posting about?
## WHAT I CAN STEAL
5 specific, concrete things I can take from their winning posts:
- Specific ideas worth exploring
- Hook structures that work
- Emotional angles that land
- Phrases or framings worth adapting
Save as /output/deep_dive_{{competitor_name}}.md
```
---
## Prompt 8: Cross-Competitor Comparison (Optional)
```
Read /output/tagged_posts_normalized.csv
Compare: {{competitor_a}}, {{competitor_b}}, {{competitor_c}}
## IDEA OVERLAP
Which ideas do ALL of them post about?
How does performance compare when they post about the same idea?
(e.g., "When Competitor A posts about 'email > social', avg engagement is 1,200. When B posts the same idea, it's 600. Why?")
## UNIQUE TERRITORY
Which ideas does each competitor "own" that others don't touch?
Are these working? Untapped opportunity or dead end?
## STYLE COMPARISON
| Competitor | Dominant Hook | Dominant Emotion | Avg Engagement |
Compare their approaches.
## WHO'S WINNING WHICH IDEAS
For the top 20 ideas overall, who performs best on each?
| Idea | Comp A Avg | Comp B Avg | Comp C Avg | Winner |
## THE PLAYBOOK I'D STEAL FROM EACH
For each competitor, what ONE thing would I take?
- Competitor A: [specific tactic]
- Competitor B: [specific tactic]
- Competitor C: [specific tactic]
## WHITE SPACE
Based on all three:
- What ideas work but nobody's doubling down on?
- What emotional angles are underused?
- What's my positioning opportunity?
Save as /output/competitor_comparison.md
```
---
## Prompt 9: Idea-Specific Deep Dive (Optional)
If a particular idea interests you and you want to see exactly how it's being executed:
```
Read /output/tagged_posts_normalized.csv
Filter to posts where core_idea = "{{specific idea}}"
Show me:
## ALL POSTS WITH THIS IDEA
List every post that expresses this idea.
Include:
- Competitor
- Full post text
- Engagement
- Hook type
- Emotion
Sort by engagement descending.
## WHAT SEPARATES WINNERS FROM LOSERS
Compare the top 5 vs bottom 5 posts with this idea:
- How do they open differently?
- What's the tone difference?
- Length difference?
- Any specific phrases in winners?
## HOW I SHOULD EXECUTE THIS IDEA
Based on what works:
- Best hook type for this idea
- Best emotion to pair with it
- Specific angle or framing that performs
- What to avoid
Write me 3 different versions of this idea I could post, each with a different hook style.
Save as /output/idea_deep_dive_{{idea_slug}}.md
```
---
That's the complete revised sequence. The key difference is you're now tracking **specific arguments** rather than generic categories, so your final output tells you exactly which ideas to use, not just which topics to cover.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment