Prompt Runner
A sales prompt library turned into a web app where reps fill in deal context and send the finished prompt to their company's approved AI tools.
The Problem
Enterprise sales teams often have secure, company-approved AI environments like ChatGPT Enterprise, Claude for Work, or Gemini Business. The harder part is getting reps to write strong prompts. Most either type something vague or rebuild a good prompt from scratch every time.
Prompt libraries exist in Notion pages and Google Docs, but using them means copy-pasting a template, manually filling in deal context, and then pasting the assembled prompt into their secure AI tool. Too many steps, too much friction, and the prompt quality is inconsistent.
The Insight
The strongest sales prompts are structured templates built around deal context, not open-ended chats. A MEDDIC champion development plan needs the rep's read on the deal, the candidate's name, and their role. A competitive displacement email needs the competitor and the pain point. The template does the heavy lifting, but the deal context is what makes the output useful.
The finished prompt also doesn't need to stay inside one product. It just needs to land in whatever secure AI tool the company already uses. So this isn't a chatbot. It's a form-based system that assembles strong prompts and hands them off with one click.
The Solution
Prompt Runner is a full-stack web app with 100+ prompt templates across 9 sales categories. Users pick a prompt, fill in deal-specific fields, and watch the finished prompt assemble in real time. Then they either send it to ChatGPT, Claude, or Gemini with one click, or copy it into any other approved AI tool. The prompts carry the methodology; the rep adds the deal context.
How It Works
-
Step 01
Pick a prompt
The rep starts from a structured template instead of trying to remember a strong prompt from scratch.
-
Step 02
Fill in deal context
Named fields collect the exact context the template needs, from competitor details to champion roles.
-
Step 03
Preview the finished prompt
The assembled prompt updates live, so users can see the final wording before it leaves the app.
-
Step 04
Send it to approved AI
The prompt gets routed into the company's existing ChatGPT, Claude, or Gemini environment without running model calls inside Prompt Runner.
The Product
Architecture
Frontend
React 19 with TypeScript, Tailwind CSS 4, and shadcn/ui, plus Wouter, React Hook Form, and Fuse.js for the interaction layer.
Backend / API
Express 4.21 serves the prompt catalog behind a stateless API with Helmet headers, while history and favorites stay in localStorage.
Database
SQLite via Drizzle and LibSQL/Turso stores the prompt library, field definitions, and category relationships.
Deployment
Vite 7 builds the app into a production bundle that serves the whole prompt library without any runtime AI API dependency.
How the Secure Handoff Works
Build Process
Prompt Runner came together in three stages. I used Claude to draft and refine the prompt library, covering more than 100 templates across 9 sales categories. Each one was built with named fields, placeholder text, and a template string that assembles the final output.
Manus handled the planning work: data model, API surface, component hierarchy, and routing. From there, I used Amp, Cursor, and Claude Code to build the app itself: React UI, Express API, Drizzle schema, search, and the prompt assembly flow.
Key Design Decisions
- No AI API calls at runtime: Prompts are pre-authored templates assembled client-side. Zero latency, zero cost, and no client data flows through Prompt Runner itself. Data only enters the company’s own secure AI environment.
- One-click routing to secure AI: “Send to AI” buttons open ChatGPT, Claude, or Gemini with the prompt pre-filled, routing directly to whatever enterprise account the rep is already logged into. For other providers, copy-paste works with any tool.
- Form-driven assembly over free text: Structured inputs (deal context, competitor name, champion role) produce consistently better prompts than asking reps to write free-form context.
- Client-side history and favorites: localStorage keeps prompt history and favorites on the user’s device. No accounts, no server-side storage, no additional data exposure.
- Category taxonomy from real sales methodology: The 9 categories (Prospecting, Social Selling, Referral Selling, Discovery, Qualification, Objection Handling, Competitive, Closing, Email Drafting) map to the actual stages of an enterprise sales cycle, not generic AI use cases.
Application Features
- Category browser: 9 sales categories with prompt cards showing descriptions, field counts, and preview text. Visual hierarchy makes it easy to find the right prompt for the situation.
- Live prompt preview: As users fill in fields, the complete prompt assembles in real time on the right side of the screen. There's no submit button because the output is always current.
- Full-text search: Fuse.js indexes prompt titles, descriptions, categories, and field names. Search across the entire library from any screen.
- One-click copy and routing: Users can copy the finished prompt or send it directly to ChatGPT, Claude, or Gemini.
- History and favorites: Recently used prompts and starred templates persist locally for quick repeat use.
Tech Stack
Show the tools used on this build
What It Demonstrates
- Enterprise-safe AI enablement: Gives teams a practical way to use AI without sending client data through the wrong system.
- Domain expertise encoded in software: Real sales methodology (MEDDIC, Challenger, SPIN, Sandler) baked into structured templates, not generic prompt suggestions.
- Secure workflow design: The prompt gets built in one tool and executed in the customer's approved model environment.
- Full-stack application: React frontend, Express API, Drizzle ORM, search indexing, and local persistence in one working product.
Browse more case studies
Need a prompt system your team can actually use?
Prompt Runner is the kind of thing I build when a team's expertise is trapped in docs and needs to become a usable tool.