| name | pitch-deck-builder |
| description | Transform rough ideas, bullet points, or text outlines into professional PowerPoint pitch decks. Create investor presentations, sales decks, or business proposals with proper structure and design. Use when the user mentions pitch deck, investor presentation, PowerPoint from notes, startup pitch, or wants to create slides from ideas. |
Pitch Deck Builder
What This Skill Does
This skill transforms rough notes, bullet points, or text outlines into polished PowerPoint presentations suitable for investor pitches, sales presentations, or business proposals. It automatically structures content into standard pitch deck format with professional layouts and design elements.
When to Use
Invoke this skill when the user:
- Mentions creating a pitch deck or investor presentation
- Has rough notes or ideas they want turned into slides
- Asks for help creating a PowerPoint presentation
- Needs a startup pitch, sales deck, or business proposal
- Wants to convert text outline into professional slides
- Mentions Y Combinator, investors, pitch, funding, or presentations
How It Works
Step 1: Parse Input and Structure Content
with open('startup_outline.txt', 'r') as f:
content = f.read()
deck_structure = [
'Title Slide',
'Problem',
'Solution',
'Product/Demo',
'Market Size',
'Business Model',
'Traction',
'Competition',
'Team',
'Financial Projections',
'Ask/Closing'
]
Step 2: Create PowerPoint with python-pptx
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor
prs = Presentation()
prs.slide_width = Inches(10)
prs.slide_height = Inches(7.5)
PRIMARY_COLOR = RGBColor(31, 71, 136)
SECONDARY_COLOR = RGBColor(79, 129, 189)
ACCENT_COLOR = RGBColor(155, 187, 89)
TEXT_COLOR = RGBColor(51, 51, 51)
slide = prs.slides.add_slide(prs.slide_layouts[6])
background = slide.background
fill = background.fill
fill.solid()
fill.fore_color.rgb = PRIMARY_COLOR
title_box = slide.shapes.add_textbox(Inches(1), Inches(2.5), Inches(8), Inches(1))
title_frame = title_box.text_frame
title_frame.text = "YourStartup"
title_para = title_frame.paragraphs[0]
title_para.font.size = Pt(60)
title_para.font.bold = True
title_para.font.color.rgb = RGBColor(255, 255, 255)
title_para.alignment = PP_ALIGN.CENTER
subtitle_box = slide.shapes.add_textbox(Inches(), Inches(), Inches(), Inches())
subtitle_frame = subtitle_box.text_frame
subtitle_frame.text =
subtitle_para = subtitle_frame.paragraphs[]
subtitle_para.font.size = Pt()
subtitle_para.font.color.rgb = RGBColor(, , )
subtitle_para.alignment = PP_ALIGN.CENTER
slide = prs.slides.add_slide(prs.slide_layouts[])
title = slide.shapes.title
title.text =
title.text_frame.paragraphs[].font.size = Pt()
title.text_frame.paragraphs[].font.color.rgb = PRIMARY_COLOR
content = slide.placeholders[]
tf = content.text_frame
tf.text =
point [
,
,
]:
p = tf.add_paragraph()
p.text = point
p.level =
p.font.size = Pt()
slide = prs.slides.add_slide(prs.slide_layouts[])
title = slide.shapes.title
title.text =
title.text_frame.paragraphs[].font.size = Pt()
title.text_frame.paragraphs[].font.color.rgb = PRIMARY_COLOR
content = slide.placeholders[]
tf = content.text_frame
tf.text =
point [
,
,
,
]:
p = tf.add_paragraph()
p.text = point
p.level =
p.font.size = Pt()
slide = prs.slides.add_slide(prs.slide_layouts[])
title = slide.shapes.title
title.text =
title.text_frame.paragraphs[].font.size = Pt()
title.text_frame.paragraphs[].font.color.rgb = PRIMARY_COLOR
left = Inches()
top = Inches()
width = Inches()
height = Inches()
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
tf.text =
tf.paragraphs[].alignment = PP_ALIGN.CENTER
tf.paragraphs[].font.size = Pt()
tf.paragraphs[].font.color.rgb = RGBColor(, , )
slide = prs.slides.add_slide(prs.slide_layouts[])
title = slide.shapes.title
title.text =
title.text_frame.paragraphs[].font.size = Pt()
title.text_frame.paragraphs[].font.color.rgb = PRIMARY_COLOR
left_start = Inches()
top_start = Inches()
box_width = Inches()
box_height = Inches()
spacing = Inches()
markets = [
(, , ),
(, , ),
(, , )
]
idx, (label, value, description) (markets):
left = left_start + idx * (box_width + spacing)
shape = slide.shapes.add_shape(
,
left, top_start, box_width, box_height
)
shape.fill.solid()
shape.fill.fore_color.rgb = SECONDARY_COLOR idx == (ACCENT_COLOR idx == PRIMARY_COLOR)
shape.line.color.rgb = RGBColor(, , )
tf = shape.text_frame
tf.text =
tf.paragraphs[].font.size = Pt()
tf.paragraphs[].font.bold =
tf.paragraphs[].font.color.rgb = RGBColor(, , )
tf.paragraphs[].alignment = PP_ALIGN.CENTER
desc_box = slide.shapes.add_textbox(left, top_start + box_height + Inches(), box_width, Inches())
desc_tf = desc_box.text_frame
desc_tf.text = description
desc_tf.paragraphs[].font.size = Pt()
desc_tf.paragraphs[].alignment = PP_ALIGN.CENTER
slide = prs.slides.add_slide(prs.slide_layouts[])
title = slide.shapes.title
title.text =
title.text_frame.paragraphs[].font.size = Pt()
title.text_frame.paragraphs[].font.color.rgb = PRIMARY_COLOR
content = slide.placeholders[]
tf = content.text_frame
tf.text =
point [
,
,
,
,
,
]:
p = tf.add_paragraph()
p.text = point
p.level =
p.font.size = Pt()
slide = prs.slides.add_slide(prs.slide_layouts[])
title = slide.shapes.title
title.text =
title.text_frame.paragraphs[].font.size = Pt()
title.text_frame.paragraphs[].font.color.rgb = PRIMARY_COLOR
content = slide.placeholders[]
tf = content.text_frame
tf.text =
point [
,
,
,
,
]:
p = tf.add_paragraph()
p.text = point
p.level =
p.font.size = Pt()
slide = prs.slides.add_slide(prs.slide_layouts[])
title = slide.shapes.title
title.text =
title.text_frame.paragraphs[].font.size = Pt()
title.text_frame.paragraphs[].font.color.rgb = PRIMARY_COLOR
comp_box = slide.shapes.add_textbox(Inches(), Inches(), Inches(), Inches())
tf = comp_box.text_frame
tf.text =
tf.paragraphs[].font.size = Pt()
point [
,
,
]:
p = tf.add_paragraph()
p.text = point
p.font.size = Pt()
slide = prs.slides.add_slide(prs.slide_layouts[])
title = slide.shapes.title
title.text =
title.text_frame.paragraphs[].font.size = Pt()
title.text_frame.paragraphs[].font.color.rgb = PRIMARY_COLOR
content = slide.placeholders[]
tf = content.text_frame
tf.text =
point [
,
,
,
]:
p = tf.add_paragraph()
p.text = point
p.level =
p.font.size = Pt()
slide = prs.slides.add_slide(prs.slide_layouts[])
background = slide.background
fill = background.fill
fill.solid()
fill.fore_color.rgb = ACCENT_COLOR
ask_box = slide.shapes.add_textbox(Inches(), Inches(), Inches(), Inches())
tf = ask_box.text_frame
tf.text =
tf.paragraphs[].font.size = Pt()
tf.paragraphs[].font.bold =
tf.paragraphs[].font.color.rgb = RGBColor(, , )
tf.paragraphs[].alignment = PP_ALIGN.CENTER
use_box = slide.shapes.add_textbox(Inches(), Inches(), Inches(), Inches())
tf = use_box.text_frame
tf.text =
tf.paragraphs[].font.size = Pt()
tf.paragraphs[].font.color.rgb = RGBColor(, , )
tf.paragraphs[].alignment = PP_ALIGN.CENTER
prs.save()
()
Required Libraries
Example Usage
User prompt: "Create a 10-slide investor pitch deck from these notes about my AI SaaS startup"
Claude will:
- Read the user's rough notes/outline
- Extract key information (problem, solution, market, etc.)
- Structure content into standard pitch deck format
- Create professional PowerPoint with:
- Title slide with company name
- Problem slide highlighting pain points
- Solution slide with key benefits
- Product/demo placeholder
- Market opportunity (TAM/SAM/SOM)
- Business model and pricing
- Traction and metrics
- Competitive landscape
- Team overview
- Funding ask and use of funds
- Apply professional design with consistent colors and fonts
- Output ready-to-present .pptx file
Output files:
pitch_deck.pptx - Complete 10-slide presentation
Tips for Best Results
- Provide clear information about your:
- Problem and solution
- Target market and size
- Business model and pricing
- Current traction (users, revenue, growth)
- Team background
- Funding ask
- The more details you provide, the more customized the deck
- Claude will use industry-standard pitch deck structure
- You can request specific slides to be added or modified
- Works for: investor pitches, sales decks, product presentations, business proposals
Customization Options
Users can request:
- Different color schemes (corporate, tech, creative)
- More or fewer slides
- Specific slide types (timeline, roadmap, financial projections)
- Industry-specific templates (B2B SaaS, consumer apps, hardware, etc.)
- Speaker notes for each slide