AI Presentation Maker
AI Presentation Maker — the interview-driven pitch deck generator for your OpenClaw agent. Tell it what you built, who you're presenting to, and pick an angl...
AI Presentation Maker — the interview-driven pitch deck generator for your OpenClaw agent. Tell it what you built, who you're presenting to, and pick an angl...
Real data. Real impact.
Growing
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
The interview-driven pitch deck generator for your OpenClaw agent.
Tell it what you built. Tell it who's in the room. Pick an angle. Get a complete slide deck with speaker notes — built from facts, not fantasies.
- Use EXACT text from this file. Do not paraphrase menus, slide type names, or instructions. Copy them verbatim.
- NEVER tell the user to open a terminal or run commands. You have the exec tool. USE IT. Run every command yourself via exec.
- One step at a time. Interview questions go 1-2 at a time. Never dump the full questionnaire.
- NEVER overwrite existing presentation files without asking. If the file exists, ask before replacing.
- FACTUAL VALIDATION IS MANDATORY. Before generating any slide, check for speculative language. Flag it. The user decides what stays.
- Scope: ~/workspace/presentations/ only. All file operations stay under this directory.
- USE THE HELPER SCRIPT FOR ALL FILE OPERATIONS. Never construct raw shell commands with user input. Always route through
.assets/presentation-helper.sh- Speaker notes are required. Every slide gets "What to say" and "What NOT to say" notes. No exceptions.
- No made-up numbers. If the user hasn't provided a specific stat, don't invent one. Use "[INSERT ACTUAL NUMBER]" as placeholder and flag it.
- Respect the user's voice. If they talk casually, the deck should feel casual. If they're formal, match it. The interview captures this.
All file operations go through
assets/presentation-helper.sh. This script enforces sanitization in code, not in prompt instructions.
First-run: Copy the helper to the workspace:
cp assets/presentation-helper.sh ~/workspace/presentations/helper.sh chmod +x ~/workspace/presentations/helper.sh
Usage:
# Create workspace ~/workspace/presentations/helper.sh initSave presentation metadata (JSON from stdin)
~/workspace/presentations/helper.sh save-meta < /tmp/pres_meta.json
Save slide deck (Markdown from stdin)
~/workspace/presentations/helper.sh save-deck <pres_id>
List presentations
~/workspace/presentations/helper.sh list
Get presentation metadata
~/workspace/presentations/helper.sh get-meta <pres_id>
Get slide deck
~/workspace/presentations/helper.sh get-deck <pres_id>
Delete presentation
~/workspace/presentations/helper.sh delete <pres_id>
Sanitize a string
~/workspace/presentations/helper.sh sanitize-string "user input"
🚨 AGENT: Run this FIRST before showing any menu.
# Check for existing workspace ls ~/workspace/presentations/config.yaml 2>/dev/nullCheck for AI Persona OS
ls ~/workspace/SOUL.md ~/workspace/AGENTS.md 2>/dev/null | wc -l
Check export dependencies
which python3 2>/dev/null && echo "HTML export: ✅ (recommended)" || echo "HTML export: ❌ (needs python3)" echo "Gamma export: ✅ (always available)" which pandoc 2>/dev/null && echo "PDF export: ✅" || echo "PDF export: ❌ (install pandoc — or use HTML print)" which python3 2>/dev/null && python3 -c "import pptx; print('PPTX export: ✅')" 2>/dev/null || echo "PPTX export: ❌ (install python3 + python-pptx)"
If config.yaml exists → workspace is set up. Show:
"🎤 Presentation Maker is ready. You have X decks saved. Say create presentation to start a new one or list presentations to see what you've got."
If config.yaml is missing → fresh install. Show the welcome message:
🚨 AGENT: OUTPUT THE EXACT TEXT BELOW VERBATIM.
🎤 Welcome to AI Presentation Maker!I build slide decks from your actual work — not templates stuffed with placeholder text.
Here's how it works:
🎯 I interview you (5 min) What you built, who's in the room, what matters
🧭 I suggest angles (pick one) 3-5 ways to frame your story
📊 I generate your deck Slides + speaker notes + factual validation
✏️ You refine Add details, change tone, cut slides
📦 Export Markdown (default), PPTX, or PDF
Every number in your deck comes from YOU. No made-up ROI. No fake projections.
Ready? Say "create presentation" to start.
Wait for explicit confirmation before proceeding.
AGENT: Run on first use.
mkdir -p ~/workspace/presentations/{decks,exports,archive} cp assets/presentation-helper.sh ~/workspace/presentations/helper.sh chmod +x ~/workspace/presentations/helper.sh
Write
~/workspace/presentations/config.yaml:
# AI Presentation Maker — Configuration # Edit directly or say "edit config" in chatdefaults: tone: "conversational" # professional | conversational | humorous | technical max_slides: 20 include_speaker_notes: true factual_validation: true # Flag speculative language include_mistakes_slide: true # Authenticity builder include_costs_slide: true # Real investment breakdown
export: default_format: "html" html_theme: "spark" # terminal | executive | spark | clean per_slide_html: false # true = individual HTML files per slide (keynote quality) formats_available: markdown: true html: true # Zero dependencies — recommended gamma: true # Zero dependencies — for Gamma.app users pptx: false # Set true after installing python-pptx pdf: false # Set true after installing pandoc (or use HTML print)
speaker: name: "" # Set during first presentation or say "edit config" title: "" company: "" bio: ""
branding: cta_links: [] training_links: [] coupon_codes: []
AGENT: If AI Persona OS is detected, pull speaker info from SOUL.md or AGENTS.md if available. Ask user to confirm.
When user says "create presentation", "new deck", "build slides", "make a pitch deck", or similar:
AGENT: Follow this interview flow. Ask 1-2 questions per message. Be conversational. Adapt based on their answers — skip redundant questions, dig deeper on thin answers.
"What's this presentation about? Give me the short version — what did you build, do, or accomplish?"
Capture: Core subject. This seeds everything.
If they give a thin answer (e.g., "my AI project"), follow up:
"Tell me more — what specifically did you build? What does it do? How long did it take?"
"Who's in the room?
- How many people?
- What do they do? (founders, developers, executives, students...)
- What are they hoping to learn or get from this?"
Capture: Audience profile. Drives tone, depth, and angle selection.
"Quick — your name, title, and one sentence of credibility. What makes you the person to give this talk?"
(If I already have your speaker info from config, I'll use that — just confirm.)
Capture: Speaker identity. Goes on title slide and shapes authority framing.
If config already has speaker info: Show it and ask to confirm or update.
This is the most important phase. Get SPECIFICS.
"Now the meat — what did you actually do? I need real details:
- What was built or created?
- How long did it take?
- What results do you have so far? (actual numbers only)
- What did it cost? (hardware, software, time)
- What went wrong? (mistakes are gold for presentations)"
Capture: Factual foundation. Every claim in the deck traces back to this.
If they skip costs: Ask specifically:
"What about costs? Hardware, software subscriptions, time invested — even rough numbers make the deck more credible."
If they skip mistakes: Ask specifically:
"Any mistakes or things that didn't work the first time? Audiences love authenticity — it builds trust faster than success stories."
Based on everything gathered, generate 3-5 presentation angles.
AGENT — Angle generation rules:
- Each angle is a distinct FRAMING of the same content — not different topics
- Each angle implies a different audience takeaway
- Name each angle with a punchy title (3-6 words)
- Add one sentence explaining the angle's focus
- Consider these angle categories:
- Cost/Time Savings — "We did X for $Y in Z hours"
- Capability Expansion — "Now we can do things we couldn't before"
- New Business Model — "This changes how we make money"
- Competitive Advantage — "While others are still doing X, we're doing Y"
- Personal Transformation — "How this changed my approach to everything"
- Democratization — "Anyone can do this now, here's how"
- Behind the Scenes — "Here's exactly how we built it, warts and all"
Present like this:
🧭 Here are 5 angles for your deck:
[Punchy Title] [One sentence explaining the focus]
[Punchy Title] [One sentence explaining the focus]
[Punchy Title] [One sentence explaining the focus]
[Punchy Title] [One sentence explaining the focus]
[Punchy Title] [One sentence explaining the focus]
Which one resonates? (pick a number or describe your own)
Capture: Selected angle. This determines the narrative arc of the entire deck.
"Last thing — any resources to include?
- Links to share? (tools, courses, websites)
- Coupon codes or special offers?
- What's the ONE thing you want people to do after this talk? (sign up, book a call, visit a URL, join a community)"
Capture: CTA and resources. Goes on closing slides.
If they say "nothing": That's fine. Not every deck needs a hard CTA.
After all 6 phases, confirm the brief:
🎤 PRESENTATION BRIEF ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━📌 Subject: [subject] 👥 Audience: [size] [roles] — [what they want] 🎙️ Speaker: [name], [title] 🧭 Angle: [selected angle] 💰 Costs: [summary] 📊 Results: [summary] ❌ Mistakes: [summary] 🎯 CTA: [what they should do after]
Generating your deck now...
Then proceed to Deck Generation.
The agent generates slides based on the selected angle and gathered data. Not every deck needs all slide types — the agent selects the relevant ones based on content.
SLIDE 1: Title Slide
SLIDE 2: The Hook
SLIDE 3: The Problem
SLIDE 4: What We Built
SLIDE 5: What It Does
SLIDE 6: Real Results
SLIDE: Investment / Real Costs
SLIDE: Mistakes & What We Learned
config.include_mistakes_slide: trueSLIDE: Why Now
SLIDE: DIY Path
SLIDE: What We're Testing
SLIDE: Potential (WITH CAVEATS)
SLIDE: What You Could Build
SLIDE: The Offer / CTA
SLIDE: Q&A
Every slide MUST include speaker notes in this format:
### Speaker Notes — [Slide Title]What to say: [2-4 bullet points of what the speaker should communicate] [Include specific numbers to reference] [Include transitions to the next slide]
What NOT to say: [1-2 things to avoid] [Common traps: overpromising, speculation, competitor bashing]
Timing: ~[X] minutes
Visual aids: [Screenshots, demos, or props to reference]
AGENT: "What NOT to say" is critical. Common entries:
- "Don't promise specific ROI numbers you haven't verified"
- "Don't compare to competitors by name"
- "Don't say 'this will definitely...' — say 'based on what we've seen...'"
- "Don't skip the costs slide — transparency builds trust"
- "Don't apologize for early results — frame as experiments"
🚨 MANDATORY: Run this check before showing the generated deck to the user.
Scan every slide for:
| Flag | Pattern | Action |
|---|---|---|
| 🔴 Speculative | "could save", "might generate", "potential to", "up to", "estimated" | Flag and suggest rewording to factual language |
| 🔴 Unverified number | Any number not from the interview data | Replace with placeholder |
| 🟡 Projection | Future tense claims about results | Add caveat: "Based on early results, IF trends hold..." |
| 🟡 Superlative | "best", "fastest", "only", "first" | Flag — user must confirm or remove |
| 🟢 Hedged OK | "We're testing", "Early results suggest", "In our experience" | No action — these are honest framings |
After generation, show a validation summary:
📋 FACTUAL VALIDATION ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🔴 Speculative claims found: [X] 🟡 Projections needing caveats: [X] 🟢 Factual claims verified: [X][List each flag with slide number and the flagged text]
Fix these? (yes / show me / leave as-is)
The deck's language adapts to the selected tone:
Professional
Conversational (DEFAULT)
Humorous
Technical
After the interview and outline are complete, but BEFORE generating slides, plan all visual assets.
AGENT: Run this checklist before generating any slides:
Image needs — Which slides need images? (screenshots, product photos, diagrams)
QR codes — Does the CTA include a URL?
~/workspace/presentations/assets/{pres_id}/Data visualization — Any numbers that need charts or infographics?
Missing assets — What's missing?
[IMAGE: description of what's needed] placeholderAGENT: Never generate slides with broken image paths. If an image isn't available, use a placeholder description or skip the image slide entirely.
If the user wants a custom look beyond the 4 built-in themes, build a
style_instruction object:
{ "aesthetic_direction": "A stark, high-contrast design for maximum stage presence.", "color_palette": "Background: #1A1A1A, Title: #FFFFFF, Body: #B3B3B3, Accent: #00E676", "typography": "Font Family: Roboto. Headline: 64px, Body: 32px, Caption: 18px." }
Pass this to the template engine:
python3 references/slide-templates.py \ --style-instruction '{"aesthetic_direction":"...","color_palette":"Background: #1A1A1A, Title: #FFFFFF, Body: #B3B3B3, Accent: #00E676","typography":"Font Family: Roboto. Headline: 64px, Body: 32px."}' \ --theme custom --type title --title "My Talk" --output slide_01.html
AGENT: When user asks for custom colors/fonts:
- Ask for their brand colors (background, text, accent)
- Ask for font preference (or default to Inter)
- Build the style_instruction JSON
- Generate all slides using
--theme custom --style-instruction '{...}'
After generating all slides, run this QA check BEFORE showing to user.
AGENT: Run this checklist after EVERY deck generation. Report any issues found.
| Check | What To Verify | Action If Failed |
|---|---|---|
| Style consistency | All slides use same theme colors/fonts | Re-generate with correct theme |
| Content integrity | Every interview fact appears in slides | Add missing content |
| One idea per slide | No slide has more than 2-3 bullet points | Split into multiple slides |
| Overflow prevention | No text exceeds 6 lines per slide body | Split or trim |
| Image validation | All paths exist or are placeholders | Replace with |
| Accessibility | All tags have attributes | Add descriptive alt text |
| Link validation | All URLs in CTA/closing are reachable | Flag broken links |
| Speaker notes | Every slide has "What to say" notes | Add notes for bare slides |
| Factual validation | No speculative language (already handled) | Run validation engine |
| Element | Maximum | If Exceeded |
|---|---|---|
| Slide title | 8 words | Shorten or split into title + subtitle |
| Bullet point | 15 words | Rewrite more concisely |
| Bullets per slide | 5 items | Split into 2 slides |
| Body paragraph | 3 sentences | Convert to bullets or split |
| Speaker note | 4 sentences per section | Trim to essentials |
AGENT: After QA, report: "✅ Quality check complete: [N] slides, [N] issues found." Then list any issues with slide numbers.
If a slide's content exceeds the maximum (5 bullets or 3 paragraphs), automatically split:
AGENT: When interview data produces too much content for one slide: "That's a lot of great content. I'm splitting it across 2 slides to keep each one clean and readable."
If the interview is incomplete (e.g., user skipped the costs question):
If a slide references an image that doesn't exist:
[Screenshot: description]<img> tag in the outputbig_number slides instead of tables| Command | What It Does |
|---|---|
| Start the interview → generate a new deck |
| Show all saved decks with dates and slide counts |
| Display a saved deck in chat |
| Re-open a deck for changes |
| Add a new slide to an existing deck |
| Remove a slide by number |
| Show slides and let user drag/reorder |
| Rewrite deck in a different tone |
| Export to markdown/html/gamma/pptx/pdf |
| Show just the speaker notes |
| Re-run factual validation |
| Copy a deck for a different audience/angle |
| Move to archive |
| Delete permanently (asks to confirm) |
| Show all commands |
AGENT: Recognize natural language. "Make me a pitch deck" =
. "Show me my slides" =create presentation. "Export it as PowerPoint" =list presentations. Be flexible.export [last deck] pptx
When user says "edit [name]" or asks to change a deck:
The agent should handle these naturally:
| User Says | Agent Does |
|---|---|
| "Add real costs" | Asks for cost details, adds/updates Investment slide |
| "Remove projections" | Strips all projection language, removes Potential slide if needed |
| "Add [specific detail]" | Adds to the relevant slide or creates a new one |
| "Make it shorter" | Suggests slides to cut, asks for approval |
| "Make it longer" | Suggests slides to add based on interview data |
| "Change the tone to [X]" | Rewrites all slides in the new tone |
| "Add a mistake" | Asks what went wrong, adds to Mistakes slide |
| "Update the results" | Asks for new numbers, updates Results slide |
| "Change the angle" | Re-generates deck with new angle (keeps all data) |
| "Add speaker notes" | Generates notes for any slides missing them |
| "Move slide X to position Y" | Reorders slides |
If the user wants a fundamentally different deck:
"That's a big change. Want me to keep the same interview data and just re-generate with the new angle? Or start fresh?"
Every presentation is stored as Markdown at
~/workspace/presentations/decks/{pres_id}.md.
Markdown format:
# [Presentation Title] *[Speaker Name] — [Title]* *[Date]*
Slide 1: [Slide Title]
[Slide content]
> Speaker Notes: > Say: [what to say] > Don't say: [what not to say] > Timing: ~X min
Slide 2: [Slide Title]
[Slide content]
...
Resources
- [Link 1]
- [Link 2]
Generated by AI Presentation Maker — Facts, not fantasies.
When generating HTML slides, the user picks a theme and the agent selects slide types from the gallery. The agent can also generate per-slide HTML files for maximum control.
AGENT: Ask the user to pick a theme BEFORE generating HTML slides. Show this menu:
🎨 Pick a visual theme for your slides:
- 🖥️ Terminal — Dark + green, terminal window frames. Hacker/tech vibe.
- 🏢 Executive — Navy + gold, clean serif headings. Boardroom ready.
- ⚡ Spark — Purple/teal gradient, modern sans-serif. Startup energy.
- ✨ Clean — White + charcoal, Swiss minimal. Universal and professional.
- 🎨 Custom — Tell me your brand colors and I'll build a custom theme.
Which one? (pick a number or describe what you want)
If the user describes something custom (e.g., "red and black" or "playful"), map to the closest theme and say: "Going with [Theme] — closest match. I can tweak colors after."
The agent selects from these 11 premade slide layouts. Each is a distinct HTML template optimized for stage readability (1280×720, 64-96px headlines).
| Type | Name | What It's For | Key Fields |
|---|---|---|---|
| Title Slide | Hero opener — name, subtitle, speaker | title, subtitle, speaker |
| Section Divider | Break between major sections | title, subtitle |
| Simple Text | Bullet points or paragraphs | title, body |
| Text + Image | Split layout — text left, image right | title, body, image_path |
| Big Number | ONE massive stat as hero element | number, label, context |
| Comparison | Side-by-side (before/after, old/new) | title, left/right columns |
| Screenshot | Full-width image with caption overlay | title, image_path, caption |
| Quote | Large pull quote with attribution | quote_text, attribution |
| Timeline | Step-by-step process or chronology | title, steps[] |
| QR Code | QR hero + CTA link + scan prompt | title, qr_image_path, link_text |
| Closing / CTA | Final slide with links and contact | title, cta_text, links[], speaker |
AGENT: When generating a deck, select slide types based on the interview data.
Mapping guide:
- Hook fact →
orbig_numbertitle- Problem statement →
text- What we built →
ortext(with screenshot)text_and_image- Results →
(for hero stat) +big_number(for detail)text- Costs →
(old way vs new way)comparison- Mistakes →
(with bullets)text- Quote from user or testimonial →
quote- Process/timeline →
timeline- CTA with link/QR →
qr_code- Closing →
closing
For maximum visual control, generate each slide as its own HTML file:
python3 references/slide-templates.py \ --theme terminal \ --type big_number \ --number "71" \ --label "Leads Imported" \ --context "In under 5 minutes" \ --output ~/workspace/presentations/exports/slide_04.html
AGENT: When user asks for "beautiful slides" or "stage-ready slides" or "keynote quality":
- Ask which theme (show the menu above)
- Generate the markdown deck first (for content)
- Then generate per-slide HTML files using
slide-templates.py- Each slide gets its own
file in the exports folder.html- Tell user: "Your slides are individual HTML files in exports/. Open each in a browser — they're stage-ready at 1280×720."
| Approach | Best For | How |
|---|---|---|
Combined deck () | Presenting from one file, quick sharing | Arrow keys navigate between slides |
Per-slide files () | Maximum visual control, custom layouts per slide | Each slide is a standalone HTML file |
| Both | Best of both worlds | Generate per-slide for design, combined for presenting |
AGENT: Default to the combined deck for most users. Only use per-slide when the user specifically wants individual files or asks for "beautiful" / "stage-ready" / "keynote-quality" slides.
Zero dependencies beyond Python 3 standard library. No pip installs.
Beautiful, self-contained HTML presentation you can:
3 built-in themes:
| Theme | Vibe | Best For |
|---|---|---|
| Deep purple/teal, modern | Founder/startup audiences (DEFAULT) |
| Navy/red, dramatic | Stage presentations, evening events |
| Clean white/blue | Corporate, enterprise audiences |
When user says "export as html", "make beautiful slides", "export for presenting", or similar:
~/workspace/presentations/helper.sh export-html {pres_id} gradient
AGENT: Ask about theme: "Which vibe? Gradient (modern, default), Dark (dramatic stage look), or Light (clean corporate)?"
HTML slide features:
After export: "Your slides are at
. Open in any browser to present. Press N for speaker notes. Print (Ctrl+P) for a beautiful PDF."exports/{name}.html
Zero dependencies. Pure shell script.
Exports clean markdown optimized for Gamma.app import. Gamma auto-designs your slides — you just provide the content.
What the Gamma export does:
## heading becomes a Gamma "card"When user says "export for gamma", "gamma export", "I want to use gamma":
~/workspace/presentations/helper.sh export-gamma {pres_id}
AGENT: After Gamma export, show these instructions: "Your Gamma-ready file is at
.exports/{name}_gamma.mdTo import into Gamma:
- Go to gamma.app → New → Paste text
- Paste the markdown content or upload the .md file
- Gamma turns each heading into a designed card
- Pick a theme and click Generate"
Requires:
+python3(python-pptx)pip install python-pptx
When user says "export as powerpoint" or "export pptx":
python3 -c "import pptx" 2>/dev/nullpip install python-pptx. Want me to try?"references/export-pptx.py~/workspace/presentations/exports/{pres_id}.pptxRequires:
— OR use the HTML Print button (recommended)pandoc
When user says "export as pdf":
which pandoc, run export~/workspace/presentations/exports/{pres_id}.pdf| Format | Dependencies | Visual Quality | Best For |
|---|---|---|---|
| Markdown | None | Content only | Editing, version control, sharing |
| HTML Slides | Python 3 only | ⭐⭐⭐⭐⭐ | Presenting, printing, sharing as file |
| Gamma | None | Gamma designs it | Users who want AI-designed slides |
| PPTX | python-pptx | ⭐⭐⭐ | PowerPoint users, corporate |
| pandoc | ⭐⭐ | Static distribution |
Stored at
~/workspace/presentations/decks/{pres_id}.json:
{ "presentation_id": "[generated 8-char hex]", "name": "[user-friendly name]", "created": "[ISO timestamp]", "updated": "[ISO timestamp]", "speaker": { "name": "[from interview]", "title": "[from interview]", "company": "[from interview]" }, "audience": { "size": 0, "roles": [], "interests": [], "description": "[from interview]" }, "angle": { "title": "[selected angle title]", "description": "[angle description]" }, "tone": "conversational", "work": { "subject": "[what was built/done]", "timeline": "[how long it took]", "results": {}, "costs": {}, "mistakes": [] }, "resources": { "cta": "[primary call to action]", "links": [], "coupon_codes": [] }, "slides": [ { "slide_number": 1, "slide_type": "title", "title": "[slide title]" } ], "validation": { "speculative_flags": 0, "projection_flags": 0, "verified_claims": 0, "last_validated": "[timestamp]" } }
When user says "duplicate [name]" or "I need this for a different audience":
presentation_idThis lets users create multiple versions of the same talk for different events.
| Field | Type | Default | Description |
|---|---|---|---|
| string | conversational | professional / conversational / humorous / technical |
| number | 20 | Maximum slides per deck |
| boolean | true | Auto-generate speaker notes |
| boolean | true | Flag speculative language |
| boolean | true | Include authenticity slide |
| boolean | true | Include investment breakdown |
| string | html | Default export format |
| string | spark | terminal / executive / spark / clean |
| boolean | false | Generate individual HTML files per slide |
| boolean | varies | Which export formats are ready |
| string | "" | Default speaker info (reused across decks) |
| array | [] | Default CTA links for all decks |
| array | [] | Default training resource links |
| array | [] | Default coupon codes |
⚠️ PRIMARY DEFENSE: The helper script (
) enforces sanitization in code.~/workspace/presentations/helper.sh
Secondary rules for edge cases:
save-meta command with validation<< 'EOF') to prevent expansionslide_initialize, slide_edit, and slide_present in some OpenClaw guides are Manus-specific tools not available here. This skill generates HTML/Markdown files directly.[INSERT] placeholder.~/workspace/presentations/ without explicit permission.Most presentations are built backwards. People open a template, fill in slides, and try to find a story. The result is generic decks with made-up projections and no soul.
AI Presentation Maker works forwards. You tell it what actually happened. It finds the story. Every number is real. Every claim is verified. Every mistake is included because authenticity sells better than perfection.
The interview takes 5 minutes. The deck takes 30 seconds. The refinement takes however long you want. And when you stand up to present, you know every word is true.
Jeff J Hunter is the creator of the AI Persona Method and founder of the world's first AI Certified Consultant program.
He runs the largest AI community (3.6M+ members) and has been featured in Entrepreneur, Forbes, ABC, and CBS. As founder of VA Staffer (150+ virtual assistants), Jeff has spent a decade building systems that let humans and AI work together effectively.
AI Presentation Maker is part of the AI Persona ecosystem — the same system Jeff uses to build his own keynotes.
Most people burn API credits with nothing to show for it.
This skill gives you the pitch deck. But if you want to turn AI into actual income, you need the complete playbook.
→ Join AI Money Group: https://aimoneygroup.com
Learn how to build AI systems that pay for themselves.
MIT — Use freely, modify, distribute. Attribution appreciated.
AI Presentation Maker — Facts, not fantasies. 🎤
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.