From 4a4a3160f3ade89776999b898eb9619e6121ebb2 Mon Sep 17 00:00:00 2001 From: Reza Rezvani Date: Sun, 19 Oct 2025 06:05:42 +0200 Subject: [PATCH] feat: initialize marketing skills repository with content-creator skill MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add comprehensive content-creator skill package including: - Brand voice analyzer (Python CLI tool) - SEO optimizer with scoring and recommendations - Brand guidelines with 5 personality archetypes - 15+ content frameworks and templates - Platform-specific social media optimization guides - Content calendar template - Marketing skills roadmap for future expansion πŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .gitignore | 16 + CLAUDE.md | 167 ++++++ marketing-skill/content-creator/SKILL.md | 236 ++++++++ .../assets/content_calendar_template.md | 99 ++++ .../references/brand_guidelines.md | 199 +++++++ .../references/content_frameworks.md | 534 ++++++++++++++++++ .../references/social_media_optimization.md | 317 +++++++++++ .../scripts/brand_voice_analyzer.py | 185 ++++++ .../content-creator/scripts/seo_optimizer.py | 419 ++++++++++++++ marketing-skill/marketing_skills_roadmap.md | 244 ++++++++ 10 files changed, 2416 insertions(+) create mode 100644 .gitignore create mode 100644 CLAUDE.md create mode 100644 marketing-skill/content-creator/SKILL.md create mode 100644 marketing-skill/content-creator/assets/content_calendar_template.md create mode 100644 marketing-skill/content-creator/references/brand_guidelines.md create mode 100644 marketing-skill/content-creator/references/content_frameworks.md create mode 100644 marketing-skill/content-creator/references/social_media_optimization.md create mode 100644 marketing-skill/content-creator/scripts/brand_voice_analyzer.py create mode 100644 marketing-skill/content-creator/scripts/seo_optimizer.py create mode 100644 marketing-skill/marketing_skills_roadmap.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9e17184 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +.vscode +.DS_Store +AGENTS.md +PROMPTS.md +.env +.env.local +.env.development.local +.env.test.local +.env.production.local +.env.development +.env.test +.env.production +.env.local +.env.development.local +.env.test.local +.env.production.local \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..c2bc4d5 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,167 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Purpose + +This is a **marketing skills library** for Claude AI - reusable, production-ready skill packages that bundle marketing best practices, analysis tools, and strategic frameworks. The repository provides modular skills (starting with `content-creator`) that marketing teams can download and use directly. + +**Key Distinction**: This is NOT a traditional application. It's a library of skill packages meant to be extracted and deployed by users into their own Claude workflows. + +## Architecture Overview + +### Skill Package Structure + +Each skill follows a consistent modular architecture: + +``` +marketing-skill/ +└── {skill-name}/ + β”œβ”€β”€ SKILL.md # Master documentation: workflows, usage, best practices + β”œβ”€β”€ scripts/ # Python CLI tools for analysis/optimization + β”œβ”€β”€ references/ # Knowledge bases: frameworks, guidelines, templates + └── assets/ # Reusable templates for end users +``` + +**Design Philosophy**: Skills are self-contained packages. Each includes executable tools (Python scripts), knowledge bases (markdown references), and user-facing templates. Teams can extract a skill folder and use it immediately. + +### Component Relationships + +1. **SKILL.md** β†’ Entry point defining workflows, referencing scripts and knowledge bases +2. **scripts/** β†’ Algorithmic analysis tools (brand voice, SEO) that process user content +3. **references/** β†’ Static knowledge bases that inform content creation (frameworks, platform guidelines) +4. **assets/** β†’ Templates that users copy and customize (content calendars, checklists) + +**Key Pattern**: Knowledge flows from references β†’ into SKILL.md workflows β†’ executed via scripts β†’ applied using templates. + +## Core Components + +### Python Analysis Scripts + +Located in `scripts/`, these are **pure algorithmic tools** (no ML/LLM calls): + +**brand_voice_analyzer.py** (185 lines): +- Analyzes text for formality, tone, perspective, readability +- Uses Flesch Reading Ease formula for readability scoring +- Outputs JSON or human-readable format +- Usage: `python scripts/brand_voice_analyzer.py content.txt [json]` + +**seo_optimizer.py** (419 lines): +- Comprehensive SEO analysis: keyword density, structure, meta tags +- Calculates SEO score (0-100) with actionable recommendations +- Usage: `python scripts/seo_optimizer.py article.md "primary keyword" "secondary,keywords"` + +**Implementation Notes**: +- Scripts use standard library only (except PyYAML for future features) +- Designed for CLI invocation - no server/API needed +- Process content files directly from filesystem +- Return structured data (JSON) or formatted text + +### Reference Knowledge Bases + +Located in `references/`, these are **expert-curated guideline documents**: + +- **brand_guidelines.md**: Voice framework with 5 personality archetypes (Expert, Friend, Innovator, Guide, Motivator) +- **content_frameworks.md**: 15+ content templates (blog posts, email, social, video scripts, case studies) +- **social_media_optimization.md**: Platform-specific best practices for LinkedIn, Twitter/X, Instagram, Facebook, TikTok + +**Critical Architecture Point**: References are NOT code - they're knowledge bases that inform both human users and Claude when creating content. When editing, maintain structured markdown with clear sections, checklists, and examples. + +## Development Commands + +### Running Analysis Tools + +```bash +# Analyze brand voice +python marketing-skill/content-creator/scripts/brand_voice_analyzer.py content.txt + +# Analyze with JSON output +python marketing-skill/content-creator/scripts/brand_voice_analyzer.py content.txt json + +# SEO optimization +python marketing-skill/content-creator/scripts/seo_optimizer.py article.md "main keyword" + +# SEO with secondary keywords +python marketing-skill/content-creator/scripts/seo_optimizer.py article.md "main keyword" "secondary,keywords" +``` + +### Development Environment + +No build system, package managers, or test frameworks currently exist. This is intentional - skills are designed to be lightweight and dependency-free. + +**If adding dependencies**: +- Keep scripts runnable with minimal setup (`pip install package` at most) +- Document all dependencies in SKILL.md +- Prefer standard library implementations over external packages + +## Working with Skills + +### Creating New Skills + +Follow the roadmap in `marketing-skill/marketing_skills_roadmap.md`. When adding a new skill: + +1. Create skill folder: `marketing-skill/{skill-name}/` +2. Copy structure from `content-creator/` as template +3. Write SKILL.md first (defines workflows before building tools) +4. Build scripts if algorithmic analysis is needed +5. Curate reference knowledge bases +6. Create user-facing templates in assets/ + +**Quality Standard**: Each skill should save users 40%+ time while improving consistency/quality by 30%+. + +### Editing Existing Skills + +**SKILL.md**: This is the master document users read first. Changes here impact user workflows directly. + +**Scripts**: Pure logic implementation. No LLM calls, no external APIs (keeps skills portable and fast). + +**References**: Expert knowledge curation. Focus on actionable checklists, specific metrics, and platform-specific details. + +**Critical**: Maintain consistency across all markdown files. Use the same voice, formatting, and structure patterns established in content-creator. + +## Git Workflow + +Repository is initialized but has no commits yet. Recommended workflow: + +```bash +# Feature branches for new skills +git checkout -b feature/seo-optimizer-skill + +# Semantic versioning by skill +git tag v1.0-content-creator +git tag v1.0-seo-optimizer + +# Commit messages +feat(content-creator): add LinkedIn content framework +fix(seo-optimizer): correct keyword density calculation +docs(social-media): update TikTok best practices +``` + +**.gitignore excludes**: .vscode/, CLAUDE.md, AGENTS.md, PROMPTS.md, .env* (these are user-specific configuration files) + +## Roadmap Context + +Current status: **Phase 1 Complete** (content-creator skill ready for deployment) + +Next priorities: +- Phase 2 (Weeks 3-6): seo-optimizer, social-media-manager, campaign-analytics skills +- Phase 3 (Weeks 7-10): email-marketing, paid-ads-manager, competitor-intelligence skills +- Phase 4 (Weeks 11-12): conversion-optimizer, influencer-outreach skills + +See `marketing-skill/marketing_skills_roadmap.md` for detailed implementation plan and ROI projections. + +## Key Principles + +1. **Skills are products**: Each skill should be deployable as a standalone package +2. **Documentation-driven**: Success depends on clear, actionable documentation +3. **Algorithm over AI**: Use deterministic analysis (code) rather than LLM calls when possible +4. **Template-heavy**: Provide ready-to-use templates users can customize +5. **Platform-specific**: Generic advice is less valuable than specific platform best practices + +## Anti-Patterns to Avoid + +- Creating dependencies between skills (keep each self-contained) +- Adding complex build systems or test frameworks (maintain simplicity) +- Generic marketing advice (focus on specific, actionable frameworks) +- LLM calls in scripts (defeats the purpose of portable, fast analysis tools) +- Over-documenting file structure (skills are simple by design) diff --git a/marketing-skill/content-creator/SKILL.md b/marketing-skill/content-creator/SKILL.md new file mode 100644 index 0000000..882dd12 --- /dev/null +++ b/marketing-skill/content-creator/SKILL.md @@ -0,0 +1,236 @@ +--- +name: content-creator +description: Comprehensive content marketing skill for creating blog posts, social media content, and SEO-optimized materials. Includes brand voice development, content templates, SEO analysis tools, and social media optimization strategies. Use when creating any marketing content, developing brand guidelines, optimizing for SEO, or planning content calendars. +--- + +# Content Creator + +A comprehensive skill for creating high-performing marketing content with consistent brand voice, SEO optimization, and platform-specific best practices. + +## Quick Start + +### For Brand Voice Development +1. Run `scripts/brand_voice_analyzer.py` on existing content to establish baseline +2. Review `references/brand_guidelines.md` to select voice attributes +3. Apply chosen voice consistently across all content + +### For Blog Content Creation +1. Choose template from `references/content_frameworks.md` +2. Research keywords for topic +3. Write content following template structure +4. Run `scripts/seo_optimizer.py [file] [primary-keyword]` to optimize +5. Apply recommendations before publishing + +### For Social Media Content +1. Review platform best practices in `references/social_media_optimization.md` +2. Use appropriate template from `references/content_frameworks.md` +3. Optimize based on platform-specific guidelines +4. Schedule using `assets/content_calendar_template.md` + +## Core Workflows + +### Establishing Brand Voice (First Time Setup) + +When creating content for a new brand or client: + +1. **Analyze Existing Content** (if available) + ```bash + python scripts/brand_voice_analyzer.py existing_content.txt + ``` + +2. **Define Voice Attributes** + - Review brand personality archetypes in `references/brand_guidelines.md` + - Select primary and secondary archetypes + - Choose 3-5 tone attributes + - Document in brand guidelines + +3. **Create Voice Sample** + - Write 3 sample pieces in chosen voice + - Test consistency using analyzer + - Refine based on results + +### Creating SEO-Optimized Blog Posts + +1. **Keyword Research** + - Identify primary keyword (search volume 500-5000/month) + - Find 3-5 secondary keywords + - List 10-15 LSI keywords + +2. **Content Structure** + - Use blog template from `references/content_frameworks.md` + - Include keyword in title, first paragraph, and 2-3 H2s + - Aim for 1,500-2,500 words for comprehensive coverage + +3. **Optimization Check** + ```bash + python scripts/seo_optimizer.py blog_post.md "primary keyword" "secondary,keywords,list" + ``` + +4. **Apply SEO Recommendations** + - Adjust keyword density to 1-3% + - Ensure proper heading structure + - Add internal and external links + - Optimize meta description + +### Social Media Content Creation + +1. **Platform Selection** + - Identify primary platforms based on audience + - Review platform-specific guidelines in `references/social_media_optimization.md` + +2. **Content Adaptation** + - Start with blog post or core message + - Use repurposing matrix from `references/content_frameworks.md` + - Adapt for each platform following templates + +3. **Optimization Checklist** + - Platform-appropriate length + - Optimal posting time + - Correct image dimensions + - Platform-specific hashtags + - Engagement elements (polls, questions) + +### Content Calendar Planning + +1. **Monthly Planning** + - Copy `assets/content_calendar_template.md` + - Set monthly goals and KPIs + - Identify key campaigns/themes + +2. **Weekly Distribution** + - Follow 40/25/25/10 content pillar ratio + - Balance platforms throughout week + - Align with optimal posting times + +3. **Batch Creation** + - Create all weekly content in one session + - Maintain consistent voice across pieces + - Prepare all visual assets together + +## Key Scripts + +### brand_voice_analyzer.py +Analyzes text content for voice characteristics, readability, and consistency. + +**Usage**: `python scripts/brand_voice_analyzer.py [json|text]` + +**Returns**: +- Voice profile (formality, tone, perspective) +- Readability score +- Sentence structure analysis +- Improvement recommendations + +### seo_optimizer.py +Analyzes content for SEO optimization and provides actionable recommendations. + +**Usage**: `python scripts/seo_optimizer.py [primary_keyword] [secondary_keywords]` + +**Returns**: +- SEO score (0-100) +- Keyword density analysis +- Structure assessment +- Meta tag suggestions +- Specific optimization recommendations + +## Reference Guides + +### When to Use Each Reference + +**references/brand_guidelines.md** +- Setting up new brand voice +- Ensuring consistency across content +- Training new team members +- Resolving voice/tone questions + +**references/content_frameworks.md** +- Starting any new content piece +- Structuring different content types +- Creating content templates +- Planning content repurposing + +**references/social_media_optimization.md** +- Platform-specific optimization +- Hashtag strategy development +- Understanding algorithm factors +- Setting up analytics tracking + +## Best Practices + +### Content Creation Process +1. Always start with audience need/pain point +2. Research before writing +3. Create outline using templates +4. Write first draft without editing +5. Optimize for SEO +6. Edit for brand voice +7. Proofread and fact-check +8. Optimize for platform +9. Schedule strategically + +### Quality Indicators +- SEO score above 75/100 +- Readability appropriate for audience +- Consistent brand voice throughout +- Clear value proposition +- Actionable takeaways +- Proper visual formatting +- Platform-optimized + +### Common Pitfalls to Avoid +- Writing before researching keywords +- Ignoring platform-specific requirements +- Inconsistent brand voice +- Over-optimizing for SEO (keyword stuffing) +- Missing clear CTAs +- Publishing without proofreading +- Ignoring analytics feedback + +## Performance Metrics + +Track these KPIs for content success: + +### Content Metrics +- Organic traffic growth +- Average time on page +- Bounce rate +- Social shares +- Backlinks earned + +### Engagement Metrics +- Comments and discussions +- Email click-through rates +- Social media engagement rate +- Content downloads +- Form submissions + +### Business Metrics +- Leads generated +- Conversion rate +- Customer acquisition cost +- Revenue attribution +- ROI per content piece + +## Integration Points + +This skill works best with: +- Analytics platforms (Google Analytics, social media insights) +- SEO tools (for keyword research) +- Design tools (for visual content) +- Scheduling platforms (for content distribution) +- Email marketing systems (for newsletter content) + +## Quick Commands + +```bash +# Analyze brand voice +python scripts/brand_voice_analyzer.py content.txt + +# Optimize for SEO +python scripts/seo_optimizer.py article.md "main keyword" + +# Check content against brand guidelines +grep -f references/brand_guidelines.md content.txt + +# Create monthly calendar +cp assets/content_calendar_template.md this_month_calendar.md +``` diff --git a/marketing-skill/content-creator/assets/content_calendar_template.md b/marketing-skill/content-creator/assets/content_calendar_template.md new file mode 100644 index 0000000..725f6b1 --- /dev/null +++ b/marketing-skill/content-creator/assets/content_calendar_template.md @@ -0,0 +1,99 @@ +# Content Calendar Template - [Month Year] + +## Monthly Goals +- **Traffic Goal**: +- **Lead Generation Goal**: +- **Engagement Goal**: +- **Key Campaign**: + +## Week 1: [Date Range] + +### Monday [Date] +**Platform**: Blog +**Topic**: +**Keywords**: +**Status**: [ ] Planned [ ] Written [ ] Reviewed [ ] Published +**Owner**: +**Notes**: + +**Platform**: LinkedIn +**Type**: Article Share +**Caption**: +**Hashtags**: +**Time**: 10:00 AM + +### Tuesday [Date] +**Platform**: Instagram +**Type**: Carousel +**Topic**: +**Visuals**: [ ] Created [ ] Approved +**Caption**: +**Hashtags**: +**Time**: 12:00 PM + +### Wednesday [Date] +**Platform**: Email Newsletter +**Subject Line**: +**Segment**: +**CTA**: +**Status**: [ ] Drafted [ ] Designed [ ] Scheduled + +### Thursday [Date] +**Platform**: Twitter/X +**Type**: Thread +**Topic**: +**Thread Length**: +**Media**: [ ] Images [ ] GIFs [ ] None +**Time**: 2:00 PM + +### Friday [Date] +**Platform**: Multi-channel +**Campaign**: +**Assets Needed**: +- [ ] Blog post +- [ ] Social graphics +- [ ] Email +- [ ] Video + +## Week 2: [Date Range] +[Repeat structure] + +## Week 3: [Date Range] +[Repeat structure] + +## Week 4: [Date Range] +[Repeat structure] + +## Content Bank (Ideas for Future) +1. +2. +3. +4. +5. + +## Performance Review (End of Month) + +### Top Performing Content +1. **Title/Topic**: + - **Metric**: + - **Why it worked**: + +2. **Title/Topic**: + - **Metric**: + - **Why it worked**: + +### Lessons Learned +- +- +- + +### Adjustments for Next Month +- +- +- + +## Resource Links +- Brand Guidelines: [Link] +- Asset Library: [Link] +- Analytics Dashboard: [Link] +- Team Calendar: [Link] diff --git a/marketing-skill/content-creator/references/brand_guidelines.md b/marketing-skill/content-creator/references/brand_guidelines.md new file mode 100644 index 0000000..90b3124 --- /dev/null +++ b/marketing-skill/content-creator/references/brand_guidelines.md @@ -0,0 +1,199 @@ +# Brand Voice & Style Guidelines + +## Brand Voice Framework + +### 1. Voice Dimensions + +#### Formality Spectrum +- **Formal**: Legal documents, investor communications, crisis responses +- **Professional**: B2B content, whitepapers, case studies +- **Conversational**: Blog posts, social media, email newsletters +- **Casual**: Community engagement, behind-the-scenes content + +#### Tone Attributes +Choose 3-5 primary attributes for your brand: +- **Authoritative**: Position as industry expert +- **Friendly**: Approachable and warm +- **Innovative**: Forward-thinking and creative +- **Trustworthy**: Reliable and transparent +- **Inspiring**: Motivational and uplifting +- **Educational**: Informative and helpful +- **Witty**: Clever and entertaining (use sparingly) + +#### Perspective +- **First Person Plural (We/Our)**: Creates partnership feeling +- **Second Person (You/Your)**: Direct and engaging +- **Third Person**: Objective and professional + +### 2. Brand Personality Archetypes + +Choose one primary and one secondary archetype: + +**The Expert** +- Tone: Knowledgeable, confident, informative +- Content: Data-driven, research-backed, educational +- Example: "Our research shows that 87% of businesses..." + +**The Friend** +- Tone: Warm, supportive, conversational +- Content: Relatable, helpful, encouraging +- Example: "We get it - marketing can be overwhelming..." + +**The Innovator** +- Tone: Visionary, bold, forward-thinking +- Content: Cutting-edge, disruptive, trendsetting +- Example: "The future of marketing is here..." + +**The Guide** +- Tone: Wise, patient, instructive +- Content: Step-by-step, clear, actionable +- Example: "Let's walk through this together..." + +**The Motivator** +- Tone: Energetic, positive, inspiring +- Content: Empowering, action-oriented, transformative +- Example: "You have the power to transform your business..." + +### 3. Writing Principles + +#### Clarity First +- Use simple words when possible +- Break complex ideas into digestible pieces +- Lead with the main point +- Use active voice (80% of the time) + +#### Customer-Centric +- Focus on benefits, not features +- Address pain points directly +- Use "you" more than "we" +- Include customer success stories + +#### Consistency +- Maintain voice across all channels +- Use approved terminology +- Follow formatting standards +- Apply style rules uniformly + +### 4. Language Guidelines + +#### Words We Use +- **Action verbs**: Transform, accelerate, optimize, unlock, elevate +- **Positive descriptors**: Seamless, powerful, intuitive, strategic +- **Outcome-focused**: Results, growth, success, impact, ROI + +#### Words We Avoid +- **Jargon**: Synergy, leverage (as verb), bandwidth (for availability) +- **Overused**: Innovative, disruptive, cutting-edge (unless truly applicable) +- **Weak**: Very, really, just, maybe, hopefully +- **Negative**: Can't, won't, impossible, problem (use "challenge") + +### 5. Content Structure Templates + +#### Blog Post Structure +1. **Hook** (1-2 sentences): Grab attention with a question, statistic, or bold statement +2. **Context** (1 paragraph): Explain why this matters now +3. **Main Content** (3-5 sections): Deliver value with clear subheadings +4. **Conclusion** (1 paragraph): Summarize key points +5. **Call to Action**: Clear next step for readers + +#### Social Media Framework +- **LinkedIn**: Professional insights, industry news, thought leadership +- **Twitter/X**: Quick tips, engaging questions, thread stories +- **Instagram**: Visual storytelling, behind-the-scenes, inspiration +- **Facebook**: Community building, longer narratives, events + +### 6. Messaging Pillars + +Define 3-4 core themes that appear consistently: + +1. **Innovation & Technology** + - AI-powered solutions + - Data-driven insights + - Future-ready strategies + +2. **Customer Success** + - Real results and ROI + - Partnership approach + - Tailored solutions + +3. **Expertise & Trust** + - Industry leadership + - Proven methodologies + - Transparent communication + +4. **Growth & Transformation** + - Scaling businesses + - Digital transformation + - Continuous improvement + +### 7. Audience Personas + +#### Decision Makers (C-Suite) +- **Tone**: Professional, strategic, ROI-focused +- **Content**: High-level insights, business impact, competitive advantages +- **Pain Points**: Growth, efficiency, competition + +#### Practitioners (Marketing Managers) +- **Tone**: Practical, supportive, educational +- **Content**: How-to guides, best practices, tools +- **Pain Points**: Time, resources, skills + +#### Innovators (Early Adopters) +- **Tone**: Exciting, cutting-edge, visionary +- **Content**: Trends, new features, future predictions +- **Pain Points**: Staying ahead, differentiation + +### 8. Channel-Specific Guidelines + +#### Website Copy +- Headlines: 6-12 words, benefit-focused +- Body: Short paragraphs (2-3 sentences) +- CTAs: Action-oriented, specific + +#### Email Marketing +- Subject Lines: 30-50 characters, personalized +- Preview Text: Complement subject, add urgency +- Body: Scannable, one main message + +#### Blog Content +- Title: Include primary keyword, under 60 characters +- Introduction: Hook within first 50 words +- Sections: 200-300 words each +- Lists: 5-7 items optimal + +### 9. Grammar & Mechanics + +#### Punctuation +- Oxford comma: Always use +- Em dashes: For emphasisβ€”like this +- Exclamation points: Maximum one per piece + +#### Capitalization +- Headlines: Title Case for H1, Sentence case for H2-H6 +- Product names: As trademarked +- Job titles: Lowercase unless before name + +#### Numbers +- Spell out one through nine +- Use numerals for 10 and above +- Always use numerals for percentages + +### 10. Inclusivity Guidelines + +- Use gender-neutral language +- Avoid idioms that don't translate +- Consider global audience +- Ensure accessibility in formatting +- Represent diverse perspectives + +## Quick Reference Checklist + +Before publishing any content, verify: +- [ ] Matches brand voice and tone +- [ ] Free of jargon and complex terms +- [ ] Includes clear value proposition +- [ ] Has appropriate CTA +- [ ] Follows grammar guidelines +- [ ] Mobile-friendly formatting +- [ ] Accessible to all audiences +- [ ] Proofread and fact-checked diff --git a/marketing-skill/content-creator/references/content_frameworks.md b/marketing-skill/content-creator/references/content_frameworks.md new file mode 100644 index 0000000..8ecdc06 --- /dev/null +++ b/marketing-skill/content-creator/references/content_frameworks.md @@ -0,0 +1,534 @@ +# Content Creation Frameworks & Templates + +## Content Types & Templates + +### 1. Blog Post Templates + +#### How-To Guide Template +```markdown +# How to [Achieve Desired Outcome] in [Timeframe] + +## Introduction +- Hook: Question or surprising fact +- Problem statement +- What reader will learn +- Why it matters now + +## Prerequisites/What You'll Need +- Tool/Resource 1 +- Tool/Resource 2 +- Estimated time + +## Step 1: [Action] +- Clear instruction +- Why this step matters +- Common mistakes to avoid +- Visual aid or example + +## Step 2: [Action] +[Repeat structure] + +## Step 3: [Action] +[Repeat structure] + +## Troubleshooting Common Issues +### Issue 1: [Problem] +**Solution**: [Fix] + +### Issue 2: [Problem] +**Solution**: [Fix] + +## Results You Can Expect +- Immediate outcomes +- Long-term benefits +- Success metrics + +## Next Steps +- Advanced techniques +- Related guides +- CTA for product/service + +## Conclusion +- Recap key points +- Reinforce value +- Final encouragement +``` + +#### Listicle Template +```markdown +# [Number] [Adjective] Ways to [Achieve Goal] in [Year] + +## Introduction +- Context/trend driving this topic +- Promise of what reader gains +- Credibility statement + +## 1. [First Item - Most Important] +**Why it matters**: [Brief explanation] +**How to implement**: [2-3 actionable steps] +**Pro tip**: [Expert insight] +**Example**: [Real-world application] + +## 2. [Second Item] +[Repeat structure] + +[Continue for all items] + +## Bonus Tip: [Overdelivery] +[Something extra valuable] + +## Bringing It All Together +- How items work synergistically +- Priority order for implementation +- Expected timeline for results + +## Your Action Plan +1. Start with [easiest item] +2. Progress to [next steps] +3. Measure [metrics] + +## Conclusion & CTA +``` + +#### Case Study Template +```markdown +# How [Company] Achieved [Result] Using [Solution] + +## Executive Summary +- Company overview +- Challenge faced +- Solution implemented +- Key results (3 metrics) + +## The Challenge +### Background +- Industry context +- Company situation +- Previous attempts + +### Specific Pain Points +- Pain point 1 +- Pain point 2 +- Pain point 3 + +## The Solution +### Strategy Development +- Discovery process +- Strategic approach +- Why this solution + +### Implementation +- Phase 1: [Timeline & Actions] +- Phase 2: [Timeline & Actions] +- Phase 3: [Timeline & Actions] + +## The Results +### Quantitative Outcomes +- Metric 1: X% increase +- Metric 2: $Y saved +- Metric 3: Z improvement + +### Qualitative Benefits +- Team feedback +- Customer response +- Market position + +## Key Takeaways +1. Lesson learned +2. Best practice discovered +3. Unexpected benefit + +## How You Can Achieve Similar Results +- Prerequisite conditions +- Implementation roadmap +- Success factors + +## CTA: Start Your Success Story +``` + +#### Thought Leadership Template +```markdown +# [Provocative Statement About Industry Future] + +## The Current State +- Industry snapshot +- Prevailing wisdom +- Why status quo is insufficient + +## The Emerging Trend +### What's Changing +- Driver 1: [Technology/Market/Behavior] +- Driver 2: [Technology/Market/Behavior] +- Driver 3: [Technology/Market/Behavior] + +### Evidence & Examples +- Data point 1 +- Case example +- Expert validation + +## Implications for [Industry] +### Short-term (6-12 months) +- Immediate adjustments needed +- Quick wins available +- Risks of inaction + +### Long-term (2-5 years) +- Fundamental shifts +- New opportunities +- Competitive landscape + +## Strategic Recommendations +### For Leaders +- Strategic priorities +- Investment areas +- Organizational changes + +### For Practitioners +- Skill development +- Process adaptation +- Tool adoption + +## The Path Forward +- Call for industry action +- Your organization's role +- Next steps for readers + +## Join the Conversation +- Thought-provoking question +- Invitation to share perspectives +- CTA for deeper engagement +``` + +### 2. Social Media Templates + +#### LinkedIn Post Framework +``` +🎯 Hook/Pattern Interrupt + +Context paragraph explaining the situation or challenge. + +Key insight or lesson learned: + +β€’ Bullet point 1 (specific detail) +β€’ Bullet point 2 (measurable outcome) +β€’ Bullet point 3 (unexpected discovery) + +Brief story or example that illustrates the point. + +Takeaway message with clear value. + +Question to encourage engagement? + +#Hashtag1 #Hashtag2 #Hashtag3 +``` + +#### Twitter/X Thread Template +``` +1/ Bold opening statement or question that stops the scroll + +2/ Context - why this matters right now + +3/ Problem most people face + +4/ Conventional solution (and why it falls short) + +5/ Better approach - introduction + +6/ Step 1 of better approach + β€’ Specific action + β€’ Why it works + +7/ Step 2 of better approach + [Continue pattern] + +8/ Real example or case study + +9/ Common objection addressed + +10/ Results you can expect + +11/ One powerful tip most people miss + +12/ Recap in 3 key points: + - Point 1 + - Point 2 + - Point 3 + +13/ CTA: If you found this helpful, [action] + +14/ P.S. - Bonus insight or resource +``` + +#### Instagram Caption Template +``` +[Attention-grabbing first line - appears in preview] + +[Story or relatable scenario - 2-3 sentences] + +Here's what I learned: + +[Key insight or lesson] + +3 things that changed everything: +1️⃣ [First point] +2️⃣ [Second point] +3️⃣ [Third point] + +[Call-out or question to audience] + +Drop a [emoji] if you've experienced this too! + +What's your biggest challenge with [topic]? Let me know below πŸ‘‡ + +- +#hashtag1 #hashtag2 #hashtag3 #hashtag4 #hashtag5 +[10-30 relevant hashtags total] +``` + +### 3. Email Marketing Templates + +#### Newsletter Template +``` +Subject: [Benefit] + [Urgency/Curiosity] +Preview: [Complements subject, doesn't repeat] + +Hi [Name], + +[Personal observation or timely hook - 1-2 sentences] + +[Transition to main topic - why reading this matters] + +## Main Content Section + +[Key points in scannable format] +β€’ Point 1: [Benefit-focused] +β€’ Point 2: [Specific example] +β€’ Point 3: [Actionable tip] + +[Brief elaboration on most important point - 2-3 sentences] + +## Resource of the Week + +[Title with link] +[One sentence on why it's valuable] + +## Quick Win You Can Implement Today + +[Specific, actionable tip - 2-3 steps max] + +[Closing thought or question] + +[Signature] +[Name] + +P.S. [Additional value or soft CTA] +``` + +#### Promotional Email Template +``` +Subject: [Specific benefit] by [deadline/timeframe] +Preview: [Scarcity or exclusivity element] + +Hi [Name], + +[Acknowledge pain point or aspiration] + +[Agitate - why this problem persists] + +I've got something that can help: + +[Solution introduction - what it is] + +Here's what you get: +βœ“ Benefit 1 (not feature) +βœ“ Benefit 2 (not feature) +βœ“ Benefit 3 (not feature) + +[Social proof - testimonial or results] + +[Handle main objection] + +[Clear CTA button: "Get Started" / "Claim Yours"] + +[Urgency element - deadline or limited availability] + +[Signature] + +P.S. [Reinforce urgency or add bonus] +``` + +### 4. Content Planning Frameworks + +#### Content Pillar Strategy +``` +Pillar 1: Educational (40%) +- How-to guides +- Tutorials +- Best practices +- Tips & tricks + +Pillar 2: Inspirational (25%) +- Success stories +- Case studies +- Transformations +- Vision pieces + +Pillar 3: Conversational (25%) +- Behind-the-scenes +- Team spotlights +- Q&As +- Polls/questions + +Pillar 4: Promotional (10%) +- Product updates +- Offers +- Event announcements +- CTAs +``` + +#### Monthly Content Calendar Structure +``` +Week 1: +- Monday: Educational (blog post) +- Wednesday: Inspirational (social) +- Friday: Conversational (email) + +Week 2: +- Monday: Educational (video/guide) +- Wednesday: Case study +- Friday: Curated content + +Week 3: +- Monday: Educational (infographic) +- Wednesday: Behind-the-scenes +- Friday: Community spotlight + +Week 4: +- Monday: Monthly roundup +- Wednesday: Thought leadership +- Friday: Promotional +``` + +### 5. SEO Content Framework + +#### SEO-Optimized Article Structure +``` +URL: /primary-keyword-secondary-keyword + +Title Tag: Primary Keyword - Secondary Benefit | Brand +Meta Description: Action verb + primary keyword + benefit + CTA (155 chars) + +# H1: Primary Keyword + Unique Angle + +Introduction (50-100 words) +- Include primary keyword in first 100 words +- State what reader will learn +- Why it matters + +## H2: Secondary Keyword Variation 1 + +[Content with LSI keywords naturally integrated] + +### H3: Specific subtopic +- Detail point 1 +- Detail point 2 +- Detail point 3 + +## H2: Secondary Keyword Variation 2 + +[Content continues...] + +## H2: Related Questions (FAQ Schema) + +### Question 1? +[Concise answer with keyword] + +### Question 2? +[Concise answer with keyword] + +## Conclusion +- Recap main points +- Include primary keyword +- Clear next action + +Internal Links: 2-3 relevant articles +External Links: 1-2 authoritative sources +``` + +### 6. Video Script Templates + +#### Educational Video Script +``` +[0-5 seconds: Hook] +"What if I told you [surprising statement]?" + +[5-15 seconds: Introduction] +"Hi, I'm [Name] and today we're solving [problem]" + +[15-30 seconds: Context] +- Why this matters +- What you'll learn +- What you'll achieve + +[30 seconds - 2 minutes: Main Content] +Section 1: [Key Point] +- Explanation +- Example +- Visual aid + +Section 2: [Key Point] +[Repeat structure] + +Section 3: [Key Point] +[Repeat structure] + +[Final 15-30 seconds] +- Quick recap +- Call to action +- End screen elements +``` + +### 7. Content Repurposing Matrix + +``` +Original: Blog Post (2000 words) +β”œβ”€β”€ Social Media +β”‚ β”œβ”€β”€ 5 Twitter posts (key quotes) +β”‚ β”œβ”€β”€ 1 LinkedIn article (executive summary) +β”‚ β”œβ”€β”€ 3 Instagram carousels (main points) +β”‚ └── 1 Facebook post (intro + link) +β”œβ”€β”€ Email +β”‚ └── Newsletter feature (summary + CTA) +β”œβ”€β”€ Video +β”‚ β”œβ”€β”€ YouTube explainer (script from post) +β”‚ └── TikTok/Reels (quick tips) +β”œβ”€β”€ Audio +β”‚ └── Podcast talking points +└── Visual + β”œβ”€β”€ Infographic (data points) + └── Slide deck (presentation) +``` + +## Quick-Start Checklists + +### Pre-Publishing Checklist +- [ ] Keyword research completed +- [ ] Title under 60 characters +- [ ] Meta description written (155 chars) +- [ ] Headers properly structured (H1, H2, H3) +- [ ] Internal links added (2-3) +- [ ] Images optimized with alt text +- [ ] CTA included and clear +- [ ] Proofread and fact-checked +- [ ] Mobile preview checked + +### Content Quality Checklist +- [ ] Addresses specific audience need +- [ ] Provides unique value/perspective +- [ ] Includes actionable takeaways +- [ ] Uses appropriate brand voice +- [ ] Contains supporting data/examples +- [ ] Free of jargon and complex terms +- [ ] Scannable format (bullets, headers) +- [ ] Engaging hook in introduction +- [ ] Clear conclusion and next steps diff --git a/marketing-skill/content-creator/references/social_media_optimization.md b/marketing-skill/content-creator/references/social_media_optimization.md new file mode 100644 index 0000000..d93766a --- /dev/null +++ b/marketing-skill/content-creator/references/social_media_optimization.md @@ -0,0 +1,317 @@ +# Social Media Optimization Guide + +## Platform-Specific Best Practices + +### LinkedIn +**Audience**: B2B professionals, decision-makers, thought leaders +**Best Times**: Tuesday-Thursday, 8-10 AM and 5-6 PM +**Optimal Length**: 1,300-2,000 characters for posts + +#### Content Formats +- **Text Posts**: 1,300 characters optimal, use line breaks +- **Articles**: 1,900-2,000 words, include 5+ images +- **Videos**: 30 seconds - 10 minutes, native upload preferred +- **Documents**: PDF carousels, 10-15 slides +- **Polls**: 4 options max, 1-2 week duration + +#### Optimization Tips +- First 2 lines are crucial (shown in preview) +- Use emoji sparingly for visual breaks +- Include 3-5 relevant hashtags +- Tag people and companies when relevant +- Native video gets 5x more engagement +- Post consistently (3-5x per week optimal) + +#### Algorithm Factors +- Dwell time (time spent reading) +- Comments valued over likes +- Early engagement (first hour) crucial +- Creator mode boosts reach +- Replies to comments increase visibility + +### Twitter/X +**Audience**: News junkies, tech enthusiasts, real-time conversation +**Best Times**: Weekdays 9-10 AM and 7-9 PM +**Optimal Length**: 100-250 characters + +#### Content Formats +- **Single Tweets**: 250 characters, 1-2 hashtags +- **Threads**: 5-15 tweets, numbered format +- **Images**: 16:9 ratio, up to 4 per tweet +- **Videos**: Up to 2:20, square or landscape +- **Polls**: 2-4 options, 5 minutes - 7 days + +#### Optimization Tips +- Front-load important information +- Use threads for complex topics +- Include visuals (2-3x more engagement) +- Retweet with comment > regular RT +- Schedule threads for consistency +- Engage genuinely with replies + +#### Algorithm Factors +- Engagement rate (likes, RTs, replies) +- Relationship (mutual follows prioritized) +- Recency over evergreen +- Topic relevance to user interests +- Link posts receive less reach + +### Instagram +**Audience**: Visual-first, millennials & Gen Z, lifestyle focused +**Best Times**: Weekdays 11 AM - 1 PM and 7-9 PM +**Optimal Length**: 138-150 characters shown in preview + +#### Content Formats +- **Feed Posts**: Square (1:1) or vertical (4:5) +- **Stories**: 15 seconds max, vertical (9:16) +- **Reels**: 15-90 seconds, vertical (9:16) +- **Carousels**: 2-10 images/videos +- **IGTV/Video**: 1-60 minutes + +#### Optimization Tips +- First sentence crucial (caption preview) +- Use up to 30 hashtags (5-10 in caption, rest in comment) +- Carousel posts get highest engagement +- Stories with polls/questions boost views +- Reels get maximum organic reach +- Post consistently (1-2 feed posts daily) + +#### Algorithm Factors +- Relationship (DMs, comments, tags) +- Interest (based on past interactions) +- Timeliness (newer posts prioritized) +- Frequency of app usage +- Time spent on posts (saves valuable) + +### Facebook +**Audience**: Broad demographic, community-focused, local businesses +**Best Times**: Wednesday-Friday, 11 AM - 2 PM +**Optimal Length**: 50-80 characters for posts + +#### Content Formats +- **Text Posts**: 50-80 characters optimal +- **Images**: 1200x630px for links +- **Videos**: 1-3 minutes, square format +- **Stories**: Same as Instagram +- **Live Videos**: Minimum 10 minutes + +#### Optimization Tips +- Native video gets priority +- Ask questions to boost comments +- Share to relevant groups +- Use Facebook Creator Studio +- Tag locations for local reach +- Post 1-2 times per day max + +#### Algorithm Factors +- Meaningful interactions (comments > reactions) +- Video completion rate +- Friends and family prioritized +- Group posts get high visibility +- Live videos get 6x engagement + +### TikTok +**Audience**: Gen Z, entertainment-focused, trend-driven +**Best Times**: 6-10 AM and 7-11 PM +**Optimal Length**: 15-30 seconds + +#### Content Formats +- **Videos**: 15 seconds - 10 minutes +- **Aspect Ratio**: 9:16 vertical +- **Sounds**: Trending audio crucial +- **Effects**: Filters and transitions + +#### Optimization Tips +- Hook viewers in first 3 seconds +- Use trending sounds and hashtags +- Create content for FYP, not followers +- Post 1-4 times daily +- Engage with comments quickly +- Jump on trends within 24-48 hours + +#### Algorithm Factors +- Completion rate most important +- Shares and saves valued +- Comment engagement +- Following similar creators +- Time spent on app + +## Content Optimization Strategies + +### Hashtag Strategy + +#### Research Methods +1. **Competitor Analysis**: Study successful competitors +2. **Platform Search**: Use native search for suggestions +3. **Hashtag Tools**: RiteTag, Hashtagify, All Hashtag +4. **Trending Topics**: Monitor daily/weekly trends +5. **Brand Hashtags**: Create unique campaign tags + +#### Hashtag Mix Formula +- 30% High-volume (1M+ posts) +- 40% Medium-volume (100K-1M posts) +- 30% Low-volume/Niche (<100K posts) + +#### Platform-Specific Guidelines +- **Instagram**: 10-30 hashtags (mix in caption and first comment) +- **LinkedIn**: 3-5 professional hashtags +- **Twitter**: 1-2 hashtags max +- **Facebook**: 1-3 hashtags +- **TikTok**: 3-5 trending + niche tags + +### Visual Content Optimization + +#### Image Best Practices +- **Resolution**: Minimum 1080px width +- **File Size**: Under 5MB for faster loading +- **Alt Text**: Always include for accessibility +- **Branding**: Consistent filters/overlays +- **Text Overlay**: Less than 20% of image + +#### Video Optimization +- **Captions**: Always include (85% watch without sound) +- **Thumbnail**: Custom, eye-catching +- **Length**: Platform-specific optimal duration +- **Format**: MP4 for best compatibility +- **Aspect Ratio**: Vertical for stories/reels, square for feed + +### Caption Writing Formulas + +#### AIDA Formula +- **Attention**: Hook in first line +- **Interest**: Expand on the hook +- **Desire**: Benefits and value +- **Action**: Clear CTA + +#### PAS Formula +- **Problem**: Identify pain point +- **Agitate**: Emphasize consequences +- **Solution**: Present your answer + +#### Before-After-Bridge +- **Before**: Current situation +- **After**: Desired outcome +- **Bridge**: How to get there + +### Engagement Tactics + +#### Conversation Starters +- Ask open-ended questions +- Create polls and surveys +- "Fill in the blank" posts +- "This or that" choices +- Caption contests +- Opinion requests + +#### Community Building +- Respond to comments within 2 hours +- Like and reply to user comments +- Share user-generated content +- Create branded hashtags +- Host Q&A sessions +- Run challenges or contests + +### Analytics & KPIs + +#### Vanity Metrics (Track but don't obsess) +- Follower count +- Like count +- View count + +#### Performance Metrics (Focus here) +- Engagement rate: (Likes + Comments + Shares) / Reach Γ— 100 +- Click-through rate: Clicks / Impressions Γ— 100 +- Conversion rate: Conversions / Clicks Γ— 100 +- Share/Save rate: Shares / Reach Γ— 100 + +#### Business Metrics (Ultimate goal) +- Website traffic from social +- Lead generation +- Sales attribution +- Customer acquisition cost +- Customer lifetime value + +### Content Calendar Planning + +#### Weekly Posting Schedule Template +``` +Monday: Motivational (Quote/Inspiration) +Tuesday: Educational (How-to/Tips) +Wednesday: Promotional (Product/Service) +Thursday: Engaging (Poll/Question) +Friday: Fun (Behind-scenes/Casual) +Saturday: User-Generated Content +Sunday: Curated Content/Rest +``` + +#### Monthly Theme Structure +- Week 1: Awareness content +- Week 2: Consideration content +- Week 3: Decision content +- Week 4: Retention/Community + +### Crisis Management Protocol + +#### Response Timeline +- **0-15 minutes**: Acknowledge awareness +- **15-60 minutes**: Gather facts +- **1-2 hours**: Official response +- **24 hours**: Follow-up update +- **48-72 hours**: Resolution summary + +#### Response Guidelines +1. Acknowledge quickly +2. Take responsibility if appropriate +3. Show empathy +4. Provide facts only +5. Outline action steps +6. Follow up publicly + +## Tool Stack Recommendations + +### Content Creation +- **Design**: Canva, Adobe Creative Suite +- **Video**: CapCut, InShot, Adobe Premiere +- **Copy**: Grammarly, Hemingway Editor +- **AI Assistance**: ChatGPT, Claude, Jasper + +### Scheduling & Management +- **All-in-One**: Hootsuite, Buffer, Sprout Social +- **Visual-First**: Later, Planoly +- **Enterprise**: Sprinklr, Khoros +- **Free Options**: Meta Business Suite, TweetDeck + +### Analytics & Monitoring +- **Native**: Platform Insights/Analytics +- **Third-Party**: Socialbakers, Brandwatch +- **Listening**: Mention, Brand24 +- **Competitor Analysis**: Social Blade, Rival IQ + +### Influencer & UGC +- **Discovery**: AspireIQ, GRIN +- **Management**: CreatorIQ, Klear +- **UGC Curation**: TINT, Stackla +- **Rights Management**: Rights Manager + +## Compliance & Best Practices + +### Legal Considerations +- Include #ad or #sponsored for paid partnerships +- Respect copyright and attribution +- Follow GDPR for data collection +- Comply with platform terms of service +- Get permission for UGC usage + +### Accessibility Guidelines +- Add alt text to all images +- Include captions on videos +- Use CamelCase for hashtags (#LikeThis) +- Avoid text-only images +- Ensure color contrast compliance + +### Brand Safety +- Moderate comments regularly +- Set up keyword filters +- Have crisis management plan +- Monitor brand mentions +- Establish posting permissions diff --git a/marketing-skill/content-creator/scripts/brand_voice_analyzer.py b/marketing-skill/content-creator/scripts/brand_voice_analyzer.py new file mode 100644 index 0000000..92ab6f7 --- /dev/null +++ b/marketing-skill/content-creator/scripts/brand_voice_analyzer.py @@ -0,0 +1,185 @@ +#!/usr/bin/env python3 +""" +Brand Voice Analyzer - Analyzes content to establish and maintain brand voice consistency +""" + +import re +from typing import Dict, List, Tuple +import json + +class BrandVoiceAnalyzer: + def __init__(self): + self.voice_dimensions = { + 'formality': { + 'formal': ['hereby', 'therefore', 'furthermore', 'pursuant', 'regarding'], + 'casual': ['hey', 'cool', 'awesome', 'stuff', 'yeah', 'gonna'] + }, + 'tone': { + 'professional': ['expertise', 'solution', 'optimize', 'leverage', 'strategic'], + 'friendly': ['happy', 'excited', 'love', 'enjoy', 'together', 'share'] + }, + 'perspective': { + 'authoritative': ['proven', 'research shows', 'experts agree', 'data indicates'], + 'conversational': ['you might', 'let\'s explore', 'we think', 'imagine if'] + } + } + + def analyze_text(self, text: str) -> Dict: + """Analyze text for brand voice characteristics""" + text_lower = text.lower() + word_count = len(text.split()) + + results = { + 'word_count': word_count, + 'readability_score': self._calculate_readability(text), + 'voice_profile': {}, + 'sentence_analysis': self._analyze_sentences(text), + 'recommendations': [] + } + + # Analyze voice dimensions + for dimension, categories in self.voice_dimensions.items(): + dim_scores = {} + for category, keywords in categories.items(): + score = sum(1 for keyword in keywords if keyword in text_lower) + dim_scores[category] = score + + # Determine dominant voice + if sum(dim_scores.values()) > 0: + dominant = max(dim_scores, key=dim_scores.get) + results['voice_profile'][dimension] = { + 'dominant': dominant, + 'scores': dim_scores + } + + # Generate recommendations + results['recommendations'] = self._generate_recommendations(results) + + return results + + def _calculate_readability(self, text: str) -> float: + """Calculate Flesch Reading Ease score""" + sentences = re.split(r'[.!?]+', text) + words = text.split() + syllables = sum(self._count_syllables(word) for word in words) + + if len(sentences) == 0 or len(words) == 0: + return 0 + + avg_sentence_length = len(words) / len(sentences) + avg_syllables_per_word = syllables / len(words) + + # Flesch Reading Ease formula + score = 206.835 - 1.015 * avg_sentence_length - 84.6 * avg_syllables_per_word + return max(0, min(100, score)) + + def _count_syllables(self, word: str) -> int: + """Count syllables in a word (simplified)""" + word = word.lower() + vowels = 'aeiou' + syllable_count = 0 + previous_was_vowel = False + + for char in word: + is_vowel = char in vowels + if is_vowel and not previous_was_vowel: + syllable_count += 1 + previous_was_vowel = is_vowel + + # Adjust for silent e + if word.endswith('e'): + syllable_count -= 1 + + return max(1, syllable_count) + + def _analyze_sentences(self, text: str) -> Dict: + """Analyze sentence structure""" + sentences = re.split(r'[.!?]+', text) + sentences = [s.strip() for s in sentences if s.strip()] + + if not sentences: + return {'average_length': 0, 'variety': 'low'} + + lengths = [len(s.split()) for s in sentences] + avg_length = sum(lengths) / len(lengths) if lengths else 0 + + # Calculate variety + if len(set(lengths)) < 3: + variety = 'low' + elif len(set(lengths)) < 5: + variety = 'medium' + else: + variety = 'high' + + return { + 'average_length': round(avg_length, 1), + 'variety': variety, + 'count': len(sentences) + } + + def _generate_recommendations(self, analysis: Dict) -> List[str]: + """Generate recommendations based on analysis""" + recommendations = [] + + # Readability recommendations + if analysis['readability_score'] < 30: + recommendations.append("Consider simplifying language for better readability") + elif analysis['readability_score'] > 70: + recommendations.append("Content is very easy to read - consider if this matches your audience") + + # Sentence variety + if analysis['sentence_analysis']['variety'] == 'low': + recommendations.append("Vary sentence length for better flow and engagement") + + # Voice consistency + if analysis['voice_profile']: + recommendations.append("Maintain consistent voice across all content") + + return recommendations + +def analyze_content(content: str, output_format: str = 'json') -> str: + """Main function to analyze content""" + analyzer = BrandVoiceAnalyzer() + results = analyzer.analyze_text(content) + + if output_format == 'json': + return json.dumps(results, indent=2) + else: + # Human-readable format + output = [ + f"=== Brand Voice Analysis ===", + f"Word Count: {results['word_count']}", + f"Readability Score: {results['readability_score']:.1f}/100", + f"", + f"Voice Profile:" + ] + + for dimension, profile in results['voice_profile'].items(): + output.append(f" {dimension.title()}: {profile['dominant']}") + + output.extend([ + f"", + f"Sentence Analysis:", + f" Average Length: {results['sentence_analysis']['average_length']} words", + f" Variety: {results['sentence_analysis']['variety']}", + f" Total Sentences: {results['sentence_analysis']['count']}", + f"", + f"Recommendations:" + ]) + + for rec in results['recommendations']: + output.append(f" β€’ {rec}") + + return '\n'.join(output) + +if __name__ == "__main__": + import sys + + if len(sys.argv) > 1: + with open(sys.argv[1], 'r') as f: + content = f.read() + + output_format = sys.argv[2] if len(sys.argv) > 2 else 'text' + print(analyze_content(content, output_format)) + else: + print("Usage: python brand_voice_analyzer.py [json|text]") diff --git a/marketing-skill/content-creator/scripts/seo_optimizer.py b/marketing-skill/content-creator/scripts/seo_optimizer.py new file mode 100644 index 0000000..8e77aee --- /dev/null +++ b/marketing-skill/content-creator/scripts/seo_optimizer.py @@ -0,0 +1,419 @@ +#!/usr/bin/env python3 +""" +SEO Content Optimizer - Analyzes and optimizes content for SEO +""" + +import re +from typing import Dict, List, Set +import json + +class SEOOptimizer: + def __init__(self): + # Common stop words to filter + self.stop_words = { + 'the', 'a', 'an', 'and', 'or', 'but', 'in', 'on', 'at', 'to', 'for', + 'of', 'with', 'by', 'from', 'as', 'is', 'was', 'are', 'were', 'be', + 'been', 'being', 'have', 'has', 'had', 'do', 'does', 'did', 'will', + 'would', 'could', 'should', 'may', 'might', 'must', 'can', 'shall' + } + + # SEO best practices + self.best_practices = { + 'title_length': (50, 60), + 'meta_description_length': (150, 160), + 'url_length': (50, 60), + 'paragraph_length': (40, 150), + 'heading_keyword_placement': True, + 'keyword_density': (0.01, 0.03) # 1-3% + } + + def analyze(self, content: str, target_keyword: str = None, + secondary_keywords: List[str] = None) -> Dict: + """Analyze content for SEO optimization""" + + analysis = { + 'content_length': len(content.split()), + 'keyword_analysis': {}, + 'structure_analysis': self._analyze_structure(content), + 'readability': self._analyze_readability(content), + 'meta_suggestions': {}, + 'optimization_score': 0, + 'recommendations': [] + } + + # Keyword analysis + if target_keyword: + analysis['keyword_analysis'] = self._analyze_keywords( + content, target_keyword, secondary_keywords or [] + ) + + # Generate meta suggestions + analysis['meta_suggestions'] = self._generate_meta_suggestions( + content, target_keyword + ) + + # Calculate optimization score + analysis['optimization_score'] = self._calculate_seo_score(analysis) + + # Generate recommendations + analysis['recommendations'] = self._generate_recommendations(analysis) + + return analysis + + def _analyze_keywords(self, content: str, primary: str, + secondary: List[str]) -> Dict: + """Analyze keyword usage and density""" + content_lower = content.lower() + word_count = len(content.split()) + + results = { + 'primary_keyword': { + 'keyword': primary, + 'count': content_lower.count(primary.lower()), + 'density': 0, + 'in_title': False, + 'in_headings': False, + 'in_first_paragraph': False + }, + 'secondary_keywords': [], + 'lsi_keywords': [] + } + + # Calculate primary keyword metrics + if word_count > 0: + results['primary_keyword']['density'] = ( + results['primary_keyword']['count'] / word_count + ) + + # Check keyword placement + first_para = content.split('\n\n')[0] if '\n\n' in content else content[:200] + results['primary_keyword']['in_first_paragraph'] = ( + primary.lower() in first_para.lower() + ) + + # Analyze secondary keywords + for keyword in secondary: + count = content_lower.count(keyword.lower()) + results['secondary_keywords'].append({ + 'keyword': keyword, + 'count': count, + 'density': count / word_count if word_count > 0 else 0 + }) + + # Extract potential LSI keywords + results['lsi_keywords'] = self._extract_lsi_keywords(content, primary) + + return results + + def _analyze_structure(self, content: str) -> Dict: + """Analyze content structure for SEO""" + lines = content.split('\n') + + structure = { + 'headings': {'h1': 0, 'h2': 0, 'h3': 0, 'total': 0}, + 'paragraphs': 0, + 'lists': 0, + 'images': 0, + 'links': {'internal': 0, 'external': 0}, + 'avg_paragraph_length': 0 + } + + paragraphs = [] + current_para = [] + + for line in lines: + # Count headings + if line.startswith('# '): + structure['headings']['h1'] += 1 + structure['headings']['total'] += 1 + elif line.startswith('## '): + structure['headings']['h2'] += 1 + structure['headings']['total'] += 1 + elif line.startswith('### '): + structure['headings']['h3'] += 1 + structure['headings']['total'] += 1 + + # Count lists + if line.strip().startswith(('- ', '* ', '1. ')): + structure['lists'] += 1 + + # Count links + internal_links = len(re.findall(r'\[.*?\]\(/.*?\)', line)) + external_links = len(re.findall(r'\[.*?\]\(https?://.*?\)', line)) + structure['links']['internal'] += internal_links + structure['links']['external'] += external_links + + # Track paragraphs + if line.strip() and not line.startswith('#'): + current_para.append(line) + elif current_para: + paragraphs.append(' '.join(current_para)) + current_para = [] + + if current_para: + paragraphs.append(' '.join(current_para)) + + structure['paragraphs'] = len(paragraphs) + + if paragraphs: + avg_length = sum(len(p.split()) for p in paragraphs) / len(paragraphs) + structure['avg_paragraph_length'] = round(avg_length, 1) + + return structure + + def _analyze_readability(self, content: str) -> Dict: + """Analyze content readability""" + sentences = re.split(r'[.!?]+', content) + words = content.split() + + if not sentences or not words: + return {'score': 0, 'level': 'Unknown'} + + avg_sentence_length = len(words) / len(sentences) + + # Simple readability scoring + if avg_sentence_length < 15: + level = 'Easy' + score = 90 + elif avg_sentence_length < 20: + level = 'Moderate' + score = 70 + elif avg_sentence_length < 25: + level = 'Difficult' + score = 50 + else: + level = 'Very Difficult' + score = 30 + + return { + 'score': score, + 'level': level, + 'avg_sentence_length': round(avg_sentence_length, 1) + } + + def _extract_lsi_keywords(self, content: str, primary_keyword: str) -> List[str]: + """Extract potential LSI (semantically related) keywords""" + words = re.findall(r'\b[a-z]+\b', content.lower()) + word_freq = {} + + # Count word frequencies + for word in words: + if word not in self.stop_words and len(word) > 3: + word_freq[word] = word_freq.get(word, 0) + 1 + + # Sort by frequency and return top related terms + sorted_words = sorted(word_freq.items(), key=lambda x: x[1], reverse=True) + + # Filter out the primary keyword and return top 10 + lsi_keywords = [] + for word, count in sorted_words: + if word != primary_keyword.lower() and count > 1: + lsi_keywords.append(word) + if len(lsi_keywords) >= 10: + break + + return lsi_keywords + + def _generate_meta_suggestions(self, content: str, keyword: str = None) -> Dict: + """Generate SEO meta tag suggestions""" + # Extract first sentence for description base + sentences = re.split(r'[.!?]+', content) + first_sentence = sentences[0] if sentences else content[:160] + + suggestions = { + 'title': '', + 'meta_description': '', + 'url_slug': '', + 'og_title': '', + 'og_description': '' + } + + if keyword: + # Title suggestion + suggestions['title'] = f"{keyword.title()} - Complete Guide" + if len(suggestions['title']) > 60: + suggestions['title'] = keyword.title()[:57] + "..." + + # Meta description + desc_base = f"Learn everything about {keyword}. {first_sentence}" + if len(desc_base) > 160: + desc_base = desc_base[:157] + "..." + suggestions['meta_description'] = desc_base + + # URL slug + suggestions['url_slug'] = re.sub(r'[^a-z0-9-]+', '-', + keyword.lower()).strip('-') + + # Open Graph tags + suggestions['og_title'] = suggestions['title'] + suggestions['og_description'] = suggestions['meta_description'] + + return suggestions + + def _calculate_seo_score(self, analysis: Dict) -> int: + """Calculate overall SEO optimization score""" + score = 0 + max_score = 100 + + # Content length scoring (20 points) + if 300 <= analysis['content_length'] <= 2500: + score += 20 + elif 200 <= analysis['content_length'] < 300: + score += 10 + elif analysis['content_length'] > 2500: + score += 15 + + # Keyword optimization (30 points) + if analysis['keyword_analysis']: + kw_data = analysis['keyword_analysis']['primary_keyword'] + + # Density scoring + if 0.01 <= kw_data['density'] <= 0.03: + score += 15 + elif 0.005 <= kw_data['density'] < 0.01: + score += 8 + + # Placement scoring + if kw_data['in_first_paragraph']: + score += 10 + if kw_data.get('in_headings'): + score += 5 + + # Structure scoring (25 points) + struct = analysis['structure_analysis'] + if struct['headings']['total'] > 0: + score += 10 + if struct['paragraphs'] >= 3: + score += 10 + if struct['links']['internal'] > 0 or struct['links']['external'] > 0: + score += 5 + + # Readability scoring (25 points) + readability_score = analysis['readability']['score'] + score += int(readability_score * 0.25) + + return min(score, max_score) + + def _generate_recommendations(self, analysis: Dict) -> List[str]: + """Generate SEO improvement recommendations""" + recommendations = [] + + # Content length recommendations + if analysis['content_length'] < 300: + recommendations.append( + f"Increase content length to at least 300 words (currently {analysis['content_length']})" + ) + elif analysis['content_length'] > 3000: + recommendations.append( + "Consider breaking long content into multiple pages or adding a table of contents" + ) + + # Keyword recommendations + if analysis['keyword_analysis']: + kw_data = analysis['keyword_analysis']['primary_keyword'] + + if kw_data['density'] < 0.01: + recommendations.append( + f"Increase keyword density for '{kw_data['keyword']}' (currently {kw_data['density']:.2%})" + ) + elif kw_data['density'] > 0.03: + recommendations.append( + f"Reduce keyword density to avoid over-optimization (currently {kw_data['density']:.2%})" + ) + + if not kw_data['in_first_paragraph']: + recommendations.append( + "Include primary keyword in the first paragraph" + ) + + # Structure recommendations + struct = analysis['structure_analysis'] + if struct['headings']['total'] == 0: + recommendations.append("Add headings (H1, H2, H3) to improve content structure") + if struct['links']['internal'] == 0: + recommendations.append("Add internal links to related content") + if struct['avg_paragraph_length'] > 150: + recommendations.append("Break up long paragraphs for better readability") + + # Readability recommendations + if analysis['readability']['avg_sentence_length'] > 20: + recommendations.append("Simplify sentences for better readability") + + return recommendations + +def optimize_content(content: str, keyword: str = None, + secondary_keywords: List[str] = None) -> str: + """Main function to optimize content""" + optimizer = SEOOptimizer() + + # Parse secondary keywords from comma-separated string if provided + if secondary_keywords and isinstance(secondary_keywords, str): + secondary_keywords = [kw.strip() for kw in secondary_keywords.split(',')] + + results = optimizer.analyze(content, keyword, secondary_keywords) + + # Format output + output = [ + "=== SEO Content Analysis ===", + f"Overall SEO Score: {results['optimization_score']}/100", + f"Content Length: {results['content_length']} words", + f"", + "Content Structure:", + f" Headings: {results['structure_analysis']['headings']['total']}", + f" Paragraphs: {results['structure_analysis']['paragraphs']}", + f" Avg Paragraph Length: {results['structure_analysis']['avg_paragraph_length']} words", + f" Internal Links: {results['structure_analysis']['links']['internal']}", + f" External Links: {results['structure_analysis']['links']['external']}", + f"", + f"Readability: {results['readability']['level']} (Score: {results['readability']['score']})", + f"" + ] + + if results['keyword_analysis']: + kw = results['keyword_analysis']['primary_keyword'] + output.extend([ + "Keyword Analysis:", + f" Primary Keyword: {kw['keyword']}", + f" Count: {kw['count']}", + f" Density: {kw['density']:.2%}", + f" In First Paragraph: {'Yes' if kw['in_first_paragraph'] else 'No'}", + f"" + ]) + + if results['keyword_analysis']['lsi_keywords']: + output.append(" Related Keywords Found:") + for lsi in results['keyword_analysis']['lsi_keywords'][:5]: + output.append(f" β€’ {lsi}") + output.append("") + + if results['meta_suggestions']: + output.extend([ + "Meta Tag Suggestions:", + f" Title: {results['meta_suggestions']['title']}", + f" Description: {results['meta_suggestions']['meta_description']}", + f" URL Slug: {results['meta_suggestions']['url_slug']}", + f"" + ]) + + output.extend([ + "Recommendations:", + ]) + + for rec in results['recommendations']: + output.append(f" β€’ {rec}") + + return '\n'.join(output) + +if __name__ == "__main__": + import sys + + if len(sys.argv) > 1: + with open(sys.argv[1], 'r') as f: + content = f.read() + + keyword = sys.argv[2] if len(sys.argv) > 2 else None + secondary = sys.argv[3] if len(sys.argv) > 3 else None + + print(optimize_content(content, keyword, secondary)) + else: + print("Usage: python seo_optimizer.py [primary_keyword] [secondary_keywords]") diff --git a/marketing-skill/marketing_skills_roadmap.md b/marketing-skill/marketing_skills_roadmap.md new file mode 100644 index 0000000..95259a0 --- /dev/null +++ b/marketing-skill/marketing_skills_roadmap.md @@ -0,0 +1,244 @@ +# Marketing Team Skills Suite - Implementation Roadmap + +## Completed Skill: content-creator βœ… + +The **content-creator** skill is ready for deployment and includes: + +### Key Components +- **Brand Voice Analyzer**: Python tool to analyze and maintain consistent brand voice +- **SEO Optimizer**: Automated SEO scoring and optimization recommendations +- **Content Frameworks**: 15+ templates for different content types +- **Social Media Guidelines**: Platform-specific best practices and algorithms +- **Content Calendar Template**: Monthly planning and tracking system + +### How to Deploy +1. Download the `content-creator.zip` file +2. Extract to your team's shared drive or tool repository +3. Install Python dependencies: `pip install pyyaml` +4. Team members can use with Claude by uploading the skill +5. Run training session on brand voice establishment + +## Additional Skills to Create + +### 1. seo-optimizer (Priority: High) +**Purpose**: Deep SEO analysis and technical optimization +**Components**: +- Technical SEO audit scripts +- Schema markup generators +- Keyword research workflows +- Competitor analysis tools +- Link building strategies +- Core Web Vitals optimization + +### 2. social-media-manager (Priority: High) +**Purpose**: Social media campaign management and automation +**Components**: +- Platform API integrations +- Hashtag research tools +- Engagement tracking dashboards +- Influencer outreach templates +- Community management workflows +- Crisis response protocols + +### 3. campaign-analytics (Priority: High) +**Purpose**: Performance measurement and reporting +**Components**: +- GA4 integration scripts +- Custom dashboard templates +- ROI calculation tools +- Attribution modeling +- A/B testing frameworks +- Executive report generators + +### 4. email-marketing (Priority: Medium) +**Purpose**: Email campaign creation and automation +**Components**: +- Email template library +- Segmentation strategies +- Automation workflow builders +- Deliverability checkers +- Subject line optimizers +- Performance tracking + +### 5. paid-ads-manager (Priority: Medium) +**Purpose**: PPC campaign optimization +**Components**: +- Google Ads scripts +- Facebook Ads templates +- Budget optimization tools +- Ad copy generators +- Landing page frameworks +- Performance trackers + +### 6. competitor-intelligence (Priority: Medium) +**Purpose**: Market and competitor analysis +**Components**: +- Competitor tracking scripts +- SWOT analysis templates +- Market trend analyzers +- Pricing strategy tools +- Content gap analysis +- Share of voice calculators + +### 7. conversion-optimizer (Priority: Low) +**Purpose**: CRO and landing page optimization +**Components**: +- A/B testing scripts +- Heatmap analysis guides +- Landing page templates +- Form optimization tools +- Cart abandonment strategies +- User journey mappers + +### 8. influencer-outreach (Priority: Low) +**Purpose**: Influencer marketing management +**Components**: +- Influencer database templates +- Outreach email templates +- Contract templates +- Campaign briefs +- Performance tracking +- ROI calculators + +## Implementation Strategy + +### Phase 1: Foundation (Weeks 1-2) +1. Deploy content-creator skill +2. Establish brand voice and guidelines +3. Train team on skill usage +4. Gather feedback for improvements + +### Phase 2: Core Expansion (Weeks 3-6) +1. Create seo-optimizer skill +2. Create social-media-manager skill +3. Create campaign-analytics skill +4. Integrate with existing tools + +### Phase 3: Enhancement (Weeks 7-10) +1. Create email-marketing skill +2. Create paid-ads-manager skill +3. Create competitor-intelligence skill +4. Optimize based on usage patterns + +### Phase 4: Advanced (Weeks 11-12) +1. Create conversion-optimizer skill +2. Create influencer-outreach skill +3. Create custom skills based on team needs +4. Document best practices + +## Best Practices for Skill Adoption + +### Training Approach +1. **Skill Champions**: Assign one team member per skill +2. **Weekly Workshops**: 30-minute skill training sessions +3. **Documentation**: Create internal wikis for each skill +4. **Feedback Loops**: Weekly optimization based on usage + +### Success Metrics +- Time saved per content piece: Target 40% reduction +- Content quality score: Target 85%+ consistency +- SEO performance: Target 30% improvement in 90 days +- Team adoption rate: Target 100% within 30 days + +### Integration Points +- **CMS Integration**: WordPress, HubSpot, Contentful +- **Analytics**: Google Analytics, Adobe Analytics +- **Social Tools**: Hootsuite, Buffer, Sprout Social +- **Email Platforms**: Mailchimp, SendGrid, Klaviyo +- **Design Tools**: Canva, Figma, Adobe Creative Suite + +## Recommended Tech Stack Integration + +### Core Marketing Stack +```yaml +Content Creation: + - Claude + Skills (AI-powered creation) + - Grammarly (writing assistance) + - Canva (visual design) + +SEO & Analytics: + - Semrush/Ahrefs (keyword research) + - Google Analytics 4 + - Google Search Console + +Social Media: + - Hootsuite/Buffer (scheduling) + - Later (visual planning) + - Sprout Social (analytics) + +Email Marketing: + - Mailchimp/Klaviyo + - Litmus (testing) + - SendGrid (delivery) + +Project Management: + - Jira (task tracking) + - Confluence (documentation) + - Slack (communication) +``` + +## ROI Projections + +### Time Savings +- Content Creation: 3 hours β†’ 1.5 hours per piece +- SEO Optimization: 2 hours β†’ 30 minutes per piece +- Social Media: 5 hours β†’ 2 hours per week +- **Total Monthly Savings**: ~80 hours + +### Quality Improvements +- Brand Consistency: 60% β†’ 95% +- SEO Scores: Average 65 β†’ 85 +- Engagement Rates: +40% expected +- Conversion Rates: +25% expected + +### Cost Benefits +- Reduced outsourcing: -$5,000/month +- Increased productivity: +$8,000 value/month +- Better results: +$10,000 revenue/month +- **Total Monthly Impact**: +$23,000 + +## Next Steps + +1. **Immediate Actions**: + - Deploy content-creator skill to team + - Schedule training session (this week) + - Identify skill champions + +2. **Week 1 Goals**: + - Run brand voice workshop + - Create first content using skill + - Gather initial feedback + +3. **Month 1 Targets**: + - 100% team adoption + - 20+ pieces created with skills + - Measurable time savings documented + +4. **Quarter 1 Objectives**: + - All Phase 1-2 skills deployed + - 40% time reduction achieved + - ROI demonstrated + +## Support Resources + +### Training Materials +- Video tutorials for each skill +- Written documentation +- Example use cases +- Troubleshooting guides + +### Technical Support +- Slack channel: #marketing-skills +- Weekly office hours +- Skill improvement requests +- Bug reporting process + +### Continuous Improvement +- Monthly skill reviews +- Quarterly updates +- User feedback integration +- Performance optimization + +--- + +**Ready to transform your marketing operations?** Start with the content-creator skill and build from there. Each skill compounds the value of the others, creating a powerful, AI-enhanced marketing machine.