Created
December 9, 2025 05:34
-
-
Save mattgiaro/8a29af953d580fb345969bf74b0fd1ff to your computer and use it in GitHub Desktop.
prompt_chain.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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