Pitch Deck Creator for EdTech Startups
Overview
Transform content-heavy pitch materials into visually compelling, narrative-driven pitch decks. This skill guides EdTech startup founders through collaborative content refinement, wireframe validation, professional design generation, and hybrid deck creation (PowerPoint + Google Slides).
Target User: EdTech startup founders with written pitch content who need help with structure, narrative flow, and visual design.
Core Value: Combines storytelling expertise with graphic design principles to maximize investor impact.
When to Use This Skill
Use this skill when:
- •User asks to "create a pitch deck" or "design a presentation"
- •User has pitch content but needs help with structure and visual design
- •User mentions they don't know how to make content visually appealing
- •User wants to refine existing pitch materials for investors
- •User says they have content but struggle with narrative flow
Trigger phrases: "create pitch deck," "design presentation," "make slides," "help with my pitch"
Prerequisites
Required from user:
- •Content markdown file structured by slide topics (similar to Harry_Llama_Pitch_Deck_Content.md format)
- •Each slide should have: slide number, title, and content organized by section
Resource locations:
- •Best practices:
/pitch_deck_skill/(articles, examples, design principles) - •Example decks:
examples/(visual reference images relative to skill directory) - •Output directory:
./pitch_deck_output/(will be created in working directory)
The 7-Phase Process
Phase 1: Discovery & Setup
Goal: Gather requirements and understand user's needs.
Actions:
- •
Ask user for content markdown file path
- •
Use
AskUserQuestiontool to gather:- •Purpose: Investor pitch | Customer pitch | Partnership pitch | Internal pitch
- •Target Audience: VCs | Angels | Strategic investors | Corporate partners
- •Tone: Bold/aggressive | Professional/measured | Visionary/aspirational | Data-driven/analytical
- •Format Preference: PowerPoint | Google Slides | Both
- •Brand Assets: Colors (hex codes), Fonts (names), Logo location
- •
Use
Readtool to load:- •User's content markdown file
- •Best practices resource:
resources.md(from skill directory) - •2-3 example pitch deck images from
examples/folder (useReadtool to view visual design patterns) - •1-2 HTML template examples from templates folder for reference
- •
Use
TodoWriteto create checklist:- • Content analysis and collaborative editing
- • Text wireframes generation
- • ASCII wireframes confirmation
- • HTML slides generation
- • Visual preview and iteration
- • PowerPoint creation
- • Google Slides creation (if requested)
Output: Complete understanding of requirements + loaded resources.
Phase 2: Content Analysis & Collaborative Editing
Goal: Refine content for maximum narrative impact through collaborative editing.
Analysis Criteria: Evaluate content against EdTech pitch deck best practices:
- •Narrative flow: Story builds logically (Problem → Solution → Market → Why Us)
- •Clarity: Each point immediately understandable (no jargon, concrete examples)
- •Emotional impact: Connects with investor motivations (FOMO, vision, urgency)
- •Data balance: Right mix of numbers and story (not too dry, not too fluffy)
- •Slide economy: Can any slides be combined/removed? (10-20 slides ideal)
- •Audience alignment: Tone matches investor expectations (confident but honest)
Analysis Process:
- •
Read through ALL slide content
- •
Identify issues per slide:
- •Redundant points
- •Unclear messaging
- •Missing emotional hooks
- •Too much/too little data
- •Poor narrative transitions
- •Weak value propositions
- •
Prioritize by impact: HIGH (narrative/clarity) > MEDIUM (emotional/data) > LOW (polish)
Edit Presentation Format: For each proposed change, show:
═══════════════════════════════════════════════ SLIDE X: [Slide Title] SECTION: [Which part of the slide] CURRENT: [Original text] PROPOSED: [Edited text] RATIONALE: [Why this change improves the pitch - specific principle applied] IMPACT: [High/Medium/Low] - [Narrative/Clarity/Emotional/Data] ═══════════════════════════════════════════════
Presentation Strategy:
- •Present 3-5 edits at a time (don't overwhelm)
- •Start with HIGH impact changes first
- •After each batch, ask: "Approve all | Approve some | Reject all | Suggest alternative"
- •If "Approve some": Present each edit individually for Accept/Reject decision
- •If "Suggest alternative": Listen to user's direction, regenerate proposals
Editing Guidelines:
- •Preserve founder's voice - Don't make it sound generic
- •Respect data integrity - Never change numbers without explicit approval
- •Flag assumptions - If proposing content not in original, clearly mark as [SUGGESTED ADDITION]
- •Prioritize high-impact - Show most important changes first
- •Show before/after - Make it easy to compare
Collaborative Loop:
- •Present batch of edits
- •Gather user decisions
- •Apply approved changes
- •Present next batch
- •Repeat until all slides reviewed
Output:
- •Refined content markdown with all approved edits applied
- •Use
Writetool to save:./pitch_deck_output/content_refined.md - •Mark Phase 2 todo as complete
Phase 3: Text Wireframes
Goal: Define slide layouts in text form before visual design.
For each slide, describe:
- •Layout structure: Header placement, content zones (left/right/center), footer
- •Content organization: How many sections, how points are grouped
- •Visual emphasis: Which elements are primary/secondary/tertiary
- •Special elements: Stats callout boxes, charts, images, tables
Text Wireframe Format:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ SLIDE X: [Title] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ LAYOUT TYPE: [Full-bleed header | Split-screen | Centered | Grid] HEADER ZONE: - Background: [Brand color] - Title: [Large, bold, brand accent color] - Position: [Top-left | Centered | Top-banner] CONTENT ZONE: - Organization: [3-column | Left-text-right-visual | Bullet list | Cards] - Primary element: [Main headline or key stat] - Secondary elements: [Supporting points] - Emphasis: [Callout box | Color highlight | Size variation] SPECIAL ELEMENTS: - [Stats callout box bottom-right] - [Chart placeholder center] - [Icon grid for features] FOOTER: - [Logo left | Page number right] WHITESPACE: [~35% of slide] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Validation: After presenting all text wireframes, ask: "Do these layouts support the narrative flow? Any slides that need restructuring?"
If user requests changes, update wireframes before proceeding.
Output:
- •Text wireframe descriptions for all slides
- •Use
Writetool to save:./pitch_deck_output/wireframes_text.md - •Mark Phase 3 todo as complete
Phase 4: ASCII Wireframes
Goal: Show spatial relationships and visual hierarchy before committing to code.
ASCII Wireframe Format:
╔═══════════════════════════════════════════════════════════════╗ ║ SLIDE X: [TITLE] ║ ╠═══════════════════════════════════════════════════════════════╣ ║ ┌───────────────────────────────────────────────────────────┐ ║ ║ │ [HEADER BANNER] │ ║ ║ │ ████████ SLIDE TITLE ████████ │ ║ ║ └───────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ║ ║ │ POINT 1 │ │ POINT 2 │ │ POINT 3 │ ║ ║ │ │ │ │ │ │ ║ ║ │ • Detail │ │ • Detail │ │ • Detail │ ║ ║ │ • Detail │ │ • Detail │ │ • Detail │ ║ ║ └─────────────┘ └─────────────┘ └─────────────┘ ║ ║ ║ ║ ┌──────────────────┐ ║ ║ │ ▓▓ STAT CALLOUT │ ║ ║ │ 114 hours/year │ ║ ║ │ $5,800+ wasted │ ║ ║ └──────────────────┘ ║ ║ ─────────────────────────────────────────────────────────── ║ ║ [Logo] Page X of Y ║ ╚═══════════════════════════════════════════════════════════════╝
Visual Elements Key:
- •
████= Primary emphasis (titles, headers) - •
▓▓= Secondary emphasis (stats, callouts) - •
│─┐┘┌└= Boxes/containers - •
╔═╗╚╝║= Slide borders - •Spacing = Whitespace (critical for readability)
Create ASCII wireframes for:
- •All slides from Phase 3
- •Show spatial relationships clearly
- •Indicate relative sizing (bigger boxes = more emphasis)
- •Demonstrate whitespace distribution
Presentation: Present 3-4 wireframes at a time with brief explanation of design rationale.
Validation: After showing all ASCII wireframes: "Do these visual layouts work for you? Any slides need adjustment before we code them?"
If changes needed, regenerate specific wireframes.
Output:
- •ASCII wireframes for all slides
- •Use
Writetool to save:./pitch_deck_output/wireframes_ascii.txt - •Mark Phase 4 todo as complete
Phase 5: HTML Slide Generation
Goal: Create professional HTML slides with proper styling and brand application.
Visual Design Reference:
Before generating HTML, review example pitch deck images from examples/ folder to understand:
- •Professional slide layouts and spacing
- •Effective use of visual hierarchy
- •Color palette application
- •Balance between text and visuals
- •Modern design patterns for investor decks
Design Principles Application:
Visual Hierarchy:
- •Titles: 36-54pt, bold, brand primary color
- •Headings: 24-30pt, bold, dark neutral
- •Body text: 14-18pt, regular weight, high contrast
- •Captions/Stats: 12-16pt, accent color for emphasis
Layout Principles:
- •Whitespace: 30-40% of slide should be empty (breathing room)
- •Alignment: Consistent grid system (left-align text blocks, center hero content)
- •Contrast: High contrast for readability (dark text on light background, or vice versa)
- •Focal point: One primary element per slide (eye knows where to look first)
- •Color psychology: Brand colors reinforce identity, accent colors guide attention
EdTech-Specific Design:
- •Problem slides: Contrasting colors to show pain (reds/oranges for urgency)
- •Solution slides: Calm, confident colors (blues/greens for trust)
- •Data slides: Clean charts, not cluttered tables (visualize numbers)
- •Team slides: Professional but approachable (headshots + credentials)
Template Structure: Follow existing HTML template pattern (like slide01_cover.html):
<!DOCTYPE html>
<html>
<head>
<style>
html { background: #ffffff; }
body {
width: 720pt; height: 405pt; margin: 0; padding: 0;
background: [background-color];
font-family: [user-specified-font], Arial, sans-serif;
display: flex;
/* Layout specific to slide type */
}
/* Slide-specific styles */
</style>
</head>
<body>
<!-- Content structured per wireframe -->
</body>
</html>
Dimensions:
- •720pt × 405pt (16:9 aspect ratio)
- •Standard presentation size
Generation Process:
- •
For each slide:
- •Load approved wireframe
- •Apply refined content
- •Insert user's brand colors
- •Apply design principles
- •Generate clean HTML + CSS
- •
Use
Writetool to create:./pitch_deck_output/slideXX_[topic].html - •
Special slide types:
- •Tables: Use proper HTML table markup (competitive analysis, financials)
- •Charts: Create CSS-based visualizations or note placeholders for later insertion
- •Icons: Use unicode symbols or note where custom icons needed
Quality Checks:
- •✅ Color contrast meets WCAG AA standards (4.5:1 for text)
- •✅ No slide has >100 words (slide economy)
- •✅ Font sizes readable at distance (14pt minimum)
- •✅ Visual hierarchy clear (title > heading > body obvious)
- •✅ Whitespace properly distributed (30-40%)
Output:
- •Individual HTML files for each slide:
slideXX_[topic].html - •Mark Phase 5 todo as complete
Phase 6: Visual Preview & Iteration
Goal: User reviews designs and requests any adjustments.
Preview Generation:
- •Create
slide_preview.htmlshowing all slides:
<!DOCTYPE html>
<html>
<head>
<style>
.preview-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
padding: 20px;
}
.slide-preview {
border: 2px solid #ccc;
background: white;
}
.slide-preview iframe {
width: 360px;
height: 202.5px;
border: none;
}
.slide-label {
text-align: center;
padding: 5px;
background: #f5f5f5;
font-family: Arial, sans-serif;
}
</style>
</head>
<body>
<div class="preview-container">
<!-- iframe for each slide -->
</div>
</body>
</html>
- •
Use
Writetool to create:./pitch_deck_output/slide_preview.html - •
Tell user: "Preview file created at: ./pitch_deck_output/slide_preview.html - Open in browser to review all slides"
Iteration Process:
- •
Ask: "How do the slides look? Any adjustments needed?"
- •
If changes requested:
- •User specifies: "Slide 5 feels cluttered" or "Change color on slide 8"
- •Identify specific issue
- •Regenerate ONLY affected slides
- •Update preview file
- •Show user the changes
- •
Repeat until user approves
Common Adjustments:
- •Color tweaks (contrast, mood)
- •Content spacing (more/less whitespace)
- •Font size adjustments
- •Layout refinements
- •Emphasis changes (what stands out)
Exit Criteria: User explicitly says: "Looks great" | "I approve these designs" | "Let's create the deck"
Output:
- •Approved HTML slides ready for conversion
- •Mark Phase 6 todo as complete
Phase 7: Final Deck Creation (Hybrid Approach)
Goal: Generate PowerPoint and/or Google Slides from approved HTML designs.
Option A: PowerPoint Creation via Node.js
Prerequisites Check:
- •Use
Bashto check Node.js installation:
node --version
- •Check if dependencies exist:
cd ./pitch_deck_output && ls node_modules 2>/dev/null
- •If dependencies missing, install:
cd ./pitch_deck_output && npm init -y && npm install pptxgenjs
Script Generation:
- •Copy html2pptx.js converter from template directory:
cp /Users/bmcmanus/Documents/my_docs/portfolio/lucid-north.com/business/pitch_deck_workspace/html2pptx.js ./pitch_deck_output/
- •Generate custom
create_pitch_deck.jsusingWritetool:
const pptxgen = require('pptxgenjs');
const html2pptx = require('./html2pptx.js');
async function createPitchDeck() {
const pptx = new pptxgen();
pptx.layout = 'LAYOUT_16x9';
pptx.author = '[User Name/Company]';
pptx.title = '[Deck Title]';
// Slide 1: Cover
await html2pptx('slide01_cover.html', pptx);
// Slide 2: Problem
await html2pptx('slide02_problem.html', pptx);
// [... add all slides ...]
// Handle special slides with tables/charts
// [table generation code if needed]
// Save presentation
await pptx.writeFile({ fileName: '[DeckName]_Pitch_Deck.pptx' });
console.log('Pitch deck created successfully!');
}
createPitchDeck().catch(err => {
console.error('Error creating pitch deck:', err);
process.exit(1);
});
- •Use
Writetool to save:./pitch_deck_output/create_pitch_deck.js
Execution:
cd ./pitch_deck_output && node create_pitch_deck.js
Validation:
- •Check for .pptx file creation
- •If errors, troubleshoot dependencies or HTML formatting issues
Output: Tell user: "PowerPoint deck created: ./pitch_deck_output/[DeckName]_Pitch_Deck.pptx"
Option B: Google Slides Creation via API
Prerequisites:
- •Check if Google Slides API is available
- •Verify user authentication
Process:
- •
Create new presentation via API
- •
For each HTML slide:
- •Parse HTML structure
- •Extract text content and styling
- •Convert to Google Slides API format:
- •Text boxes with positioning
- •Shapes for containers
- •Colors from brand palette
- •Images (if any)
- •
Add slides sequentially
- •
Apply master theme if available
API Conversion Logic:
HTML element → Slides API element <h1> → Text box (title style) <p> → Text box (body style) <div class="stats-box"> → Shape with fill + text <ul><li> → Bulleted text box
Authentication Handling:
- •If auth fails: Inform user, provide setup instructions
- •Fall back to PowerPoint option if Google Slides unavailable
Output:
- •Google Slides presentation link
- •Share with user: "Google Slides deck created: [link]"
Both Options Workflow:
If user selected "Both formats":
- •Generate PowerPoint first (Option A)
- •Then generate Google Slides (Option B)
- •Provide both outputs to user
Final Deliverables:
- •✅ PowerPoint file:
./pitch_deck_output/[DeckName]_Pitch_Deck.pptx - •✅ Google Slides link (if requested)
- •✅ All HTML source files (for future edits)
- •✅ Preview file (for quick reference)
Mark Phase 7 todo as complete
Error Handling & Common Issues
Issue: Content File Not Structured Correctly
Detection: Missing slide markers like "## SLIDE X:", inconsistent formatting
Solution:
- •Show user the expected format:
## SLIDE 1: COVER SLIDE **Title:** [Title text] **Tagline:** [Tagline text] ## SLIDE 2: THE PROBLEM ### [Section Heading] [Content...]
- •Offer to restructure if possible, or ask user to fix and re-run
Issue: Brand Colors Don't Provide Enough Contrast
Detection: Contrast ratio calculation fails WCAG AA standards (<4.5:1)
Solution:
- •Calculate contrast ratio between text and background
- •If fails: Suggest adjusted shades
- •Darken text or lighten background
- •Show before/after hex codes
- •Preview adjusted colors in one slide
- •Get user approval before applying globally
Issue: Too Much Content Per Slide
Detection: Character count >500 per slide, >5 bullet points
Solution:
- •Identify overloaded slide
- •Propose splitting into 2 slides with clear flow:
- •Example: "Slide 5 has 8 bullet points. Split into 'Part 1' and 'Part 2'?"
- •Show proposed content division
- •User approves split
Issue: Node.js Conversion Fails
Detection: Script error, dependency issues, HTML parsing failures
Solution:
- •Check error message
- •Common fixes:
- •Install missing dependencies:
npm install pptxgenjs - •Validate HTML (check for unclosed tags)
- •Simplify complex CSS (some styles don't convert)
- •Install missing dependencies:
- •If unfixable: Offer HTML-only fallback
- •User can manually import HTML to PowerPoint
- •Provide instructions for import process
Issue: Google Slides API Authentication Fails
Detection: API returns 401/403 errors
Solution:
- •Inform user: "Google Slides API authentication required"
- •Provide setup instructions:
- •Enable Google Slides API in Google Cloud Console
- •Create OAuth credentials
- •Authorize application
- •Fall back to PowerPoint option
- •Offer to retry after user completes setup
Quality Validation Checklist
Before marking any phase complete, verify:
Content Quality (Phase 2)
- •✅ All required slides present (Cover, Problem, Solution, Market, Team, Ask)
- •✅ No slide has >5 bullet points (slide economy principle)
- •✅ Stats formatted consistently ($5.8K vs $5,800 - pick one style)
- •✅ Every claim has supporting evidence or rationale
- •✅ Narrative flows logically without gaps
- •✅ Tone matches target audience expectations
Design Quality (Phase 5)
- •✅ Color contrast meets WCAG AA (4.5:1 minimum)
- •✅ Font sizes readable (14pt minimum body text)
- •✅ No text-heavy slides (>100 words triggers warning)
- •✅ Visual hierarchy clear (title > heading > body obvious)
- •✅ Brand colors applied consistently
- •✅ Whitespace properly distributed (30-40%)
Technical Quality (Phase 7)
- •✅ All HTML files validate (no broken tags)
- •✅ CSS renders correctly (test in browser)
- •✅ Node.js dependencies installed (if using PowerPoint)
- •✅ Output files created successfully
- •✅ Files have correct naming convention
Success Metrics
A successful pitch deck creation includes:
- •✅ Content refined through collaborative editing (>3 meaningful improvements made)
- •✅ Visual designs approved at wireframe stage (no major revisions in HTML phase)
- •✅ Final deck generated in requested format(s)
- •✅ User can present immediately (no additional work needed)
- •✅ Design follows best practices (validated against checklist)
- •✅ User expresses satisfaction: "This looks great" or equivalent
Key Principles
Throughout the process:
- •Collaborative, not prescriptive - Always show before/after, explain rationale, get approval
- •Validate early, validate often - Catch issues at wireframe stage, not after coding
- •Preserve founder's voice - Refine, don't replace; maintain authenticity
- •Design with purpose - Every visual choice supports narrative goals
- •Iterate gracefully - Make it easy to adjust specific elements without redoing everything
- •Educate as you go - Explain design principles so user learns for future decks
Remember:
- •This is the user's pitch, not yours - guide, don't dictate
- •Investors see dozens of decks - help user stand out with clarity + design
- •Every slide should pass the "glance test" - key message clear in 3 seconds
- •If user disagrees with a suggestion, respect their judgment (they know their business)
After Completion
Once deck is created:
- •
Summarize what was delivered:
- •Number of slides created
- •Key improvements made during editing phase
- •Format(s) provided (PowerPoint/Google Slides)
- •Location of all output files
- •
Offer additional support:
- •"Need any slides adjusted?"
- •"Want to create alternate versions (different audiences)?"
- •"Should I generate speaker notes for any slides?"
- •
Suggest next steps:
- •"Practice the pitch with these slides"
- •"Get feedback from advisors"
- •"Iterate based on investor questions"
Notes for Skill Maintenance
Resource locations are hardcoded:
- •Best practices:
/Users/bmcmanus/Documents/pitch_deck_skill/ - •HTML templates:
/Users/bmcmanus/Documents/my_docs/portfolio/lucid-north.com/business/pitch_deck_workspace/
If resources move: Update paths in Phase 1 and Phase 7 (Option A: PowerPoint creation)
If new best practices added: Skill will automatically incorporate them during Phase 1 resource loading
If HTML template structure changes: Update Phase 5 template structure section to match new pattern