New Business Pitch Builder
Turn an audit of a prospect's paid, organic and funnel surface into a pitch with a prioritized gap list, confidence-discounted opportunity sizing in gross profit, and a 90-day engagement outline built from the gaps that scored highest.
At a glance
New Business Pitch Builder is an AI skill that you can use in Claude Code, Codex, or type.com.
- Updated
See an example
Example output from a sample run. Company names and figures are sample data.
New business pitch: Tidewater Outfitters, prepared 2026-09-22
13 gaps found, worth $27,028 a month in gross profit ($324,333 annualized) after confidence haircuts, counting only gaps that do not overlap. That is 2.85x the proposed $9,500 monthly retainer, so the fee is matched if roughly 35.1% of the estimate is realized. A further $6,518 a month of paid spend could be redeployed or verified.
$60,000 of monthly paid media across 5 channels returns 1,101 conversions and $93,585 of platform-reported revenue (1.56x). The site converts 1.39% of traffic end to end.
| # | Area | Gap | Monthly (adj.) | Annual (adj.) | Effort |
|---|---|---|---|---|---|
| 1 | Paid media | Meta Ads costs $66.67 per conversion against $39.22 on Google Shopping | $3,624 | $43,482 | 2w |
| 2 | Funnel | Checkout started to Purchase converts at 35.00% against a 40.00% benchmark | $7,782 | $93,384 | 6w |
| 3 | Paid media | Microsoft Ads reports no conversions on $2,000 of monthly spend | $1,200 | $14,400 | 1w |
| 4 | Funnel | Sessions to Product view converts at 40.00% against a 45.00% benchmark | $6,803 | $81,633 | 6w |
| 5 | Funnel | Add to cart to Checkout started converts at 45.00% against a 50.00% benchmark | $6,047 | $72,562 | 6w |
| 6 | Paid media | Google Search converts at 2.00% against a 2.80% benchmark | $3,927 | $47,124 | 4w |
…plus 7 more gaps in the full report, ranked by adjusted annual value per week of delivery effort.
| Area | Gaps | Valued as | Monthly (adjusted) | Annual (adjusted) |
|---|---|---|---|---|
| Funnel | 4 | gross profit | $25,579 | $306,948 |
| Paid media — conversion rate | 2 | gross profit | $6,872 | $82,467 |
| Organic search | 4 | gross profit | $1,449 | $17,385 |
| Paid media — spend efficiency and tracking | 3 | recovered spend | $6,518 | $78,212 |
Next actions
- Days 1-30, stop the leaks: reallocate spend from Meta Ads to the strongest cost-per-acquisition channels, and rebuild conversion tracking so the $2,000 of monthly Microsoft Ads spend is proven or cut.
- Days 31-60, convert the traffic already arriving: instrument the funnel and run a test roadmap against Checkout started to Purchase (35.00% vs a 40.00% benchmark).
- Days 61-90, compound the gains: technical, content and link work on near-miss organic pages, led by 'rain jacket' at position 14 with 40,000 monthly searches.
Inputs: paid snapshot, SEO pages, funnel steps and benchmark file; average order value $85.00 at 55.0% gross margin, or $46.75 gross profit per order.
Produced by running bash examples/run.sh on the sample data bundled with this skill.
How to use New Business Pitch Builder
- type.com: Choose Use Skill to add New Business Pitch Builder to your type.com workspace.
- Claude Code: Download the skill and extract it into
~/.claude/skills/new-business-pitch-builder/(or.claude/skills/new-business-pitch-builder/in a project). Then ask Claude to use New Business Pitch Builder. - Codex: Download the skill and extract it into
~/.agents/skills/new-business-pitch-builder/(or.agents/skills/new-business-pitch-builder/in a repository). Then ask Codex to use New Business Pitch Builder.
AI agents can read this page as Markdown or fetch the raw SKILL.md.
Frequently asked questions
What is New Business Pitch Builder?
New Business Pitch Builder is an AI skill that you can use in Claude Code, Codex, or type.com.
What does New Business Pitch Builder do?
Turn an audit of a prospect's paid, organic and funnel surface into a pitch with a prioritized gap list, confidence-discounted opportunity sizing in gross profit, and a 90-day engagement outline built from the gaps that scored highest.
Can I use New Business Pitch Builder in Claude Code or Codex?
Yes. New Business Pitch Builder is a standard Agent Skills folder with a SKILL.md file. Download it and extract it into ~/.claude/skills/ for Claude Code or ~/.agents/skills/ for Codex.
Who created New Business Pitch Builder?
The type.com team created New Business Pitch Builder. The type.com team reviews every skill before it is published in the Skills Library.
Related guide
Browse the technical files
--- name: new-business-pitch-builder description: Turn an audit of a prospect's paid, organic and funnel surface into a pitch with a prioritized gap list, confidence-discounted opportunity sizing in gross profit, and a 90-day engagement outline built from the gaps that scored highest. --- # New business pitch builder Converts four exported files about a prospect into the spine of a pitch: what is broken, what each fix is worth, in what order, and what the first 90 days look like. Every number is traceable to a line in the input and to a stated assumption, so the prospect can argue with the assumption instead of dismissing the number. ## Before you run This skill ships scripts and sample data alongside this SKILL.md. Before running any command: 1. **Get the files.** Make sure the skill's other files (`scripts/`, `examples/` and anything else listed with this skill) are in your working folder at the same relative paths. Some environments load only SKILL.md; if yours did, fetch each file from this skill's published files and write it to the matching path. In Type, read them with the skill-file tools. Anywhere else, the Type Skills Library API lists every file with its path, content and `sha256`: GET `https://api.type.com/api/public/library/skills` and take the entry with slug `new-business-pitch-builder`. 2. **Check the copies are exact.** Compare each file's size in bytes, not characters (and its hash, where your tools report one), with the published version before running. A copy written out from the published file is fine once its byte size and hash match; never run a script you summarised or reconstructed from memory. 3. **Run from the skill's folder**, calling interpreters explicitly: `python3 scripts/…` and `bash examples/run.sh`. 4. **Try the sample first.** If the skill ships `examples/run.sh` and `examples/expected_output.txt`, run `bash examples/run.sh`; its output should match the expected file exactly. If it doesn't, stop and report the first differing line rather than running on real data. ## When to use this - Preparing a pitch, an audit deck or a proposal for a prospect where a data pull is possible (shared read-only access, a Looker Studio export, or numbers the prospect supplied in discovery). - Qualifying an inbound lead: run it early to see whether there is enough opportunity to justify the pursuit. - Building a renewal or expansion case for an existing client — the math is identical. Do not use it to invent numbers for a prospect who has shared nothing. Without real inputs the output is a confident fiction, which is worse than no deck. ## Gathering the inputs Four CSVs, specified in `DATA_CONTRACT.md`. The script reads local files only. 1. **`paid_snapshot.csv`** — one row per paid channel for a representative month: spend, impressions, clicks, conversions, revenue. Sources: the prospect's ad accounts if read access was granted, a shared reporting dashboard, or figures they provided. Use one clean month, not a partial one. 2. **`seo_pages.csv`** — URL, target keyword, monthly search volume, current position, current monthly clicks. Sources: the prospect's Search Console export, or a third-party rank/volume tool. Never estimate positions by eye. 3. **`funnel_steps.csv`** — the site funnel as an ordered list of steps with user counts, from sessions through purchase or qualified lead. Source: the analytics property's funnel or path report. 4. **`benchmarks.csv`** — the comparison rates the pitch is argued against: per-channel conversion rate, per-step funnel rate, and optional position-CTR overrides. Use the agency's own portfolio medians where possible; cite the source in the file's `source` column and be ready to defend it in the room. Benchmarks are the load-bearing assumption of the entire deck. Ask the prospect for average order value and gross margin. If they will not share margin, use a conservative industry figure and say so on the slide — the entire opportunity scales linearly with it. ## Running it First run: `bash examples/run.sh` builds the pitch for the bundled sample prospect in `examples/data/`. The equivalent command, which you point at your own exports by replacing the `examples/data/` paths: ```bash python3 scripts/build_pitch.py \ --paid examples/data/paid_snapshot.csv \ --seo examples/data/seo_pages.csv \ --funnel examples/data/funnel_steps.csv \ --benchmarks examples/data/benchmarks.csv \ --prospect "Tidewater Outfitters" \ --aov 85 \ --gross-margin 55 \ --as-of 2026-09-22 \ --proposed-retainer 9500 ``` - `--aov` and `--gross-margin` convert incremental conversions into gross profit. Both are required; there is no default, because a guessed margin silently changes every number in the deck. - `--as-of` is required and only labels the analysis. - `--target-position` (default 3) and `--max-position` (default 20) bound the organic estimate. - `--reallocation-threshold` (default 25) is how much of a channel's spend must be recoverable before it is called a gap. - `--confidence-scale` (default 1.0, maximum 1.0) uniformly lowers every confidence haircut. Use `0.7` or `0.6` for a deliberately conservative version — useful when the prospect is analytical or burned by a previous agency. - `--proposed-retainer` compares the non-overlapping gross-profit estimate to the fee. Omit it if pricing is not yet on the table. - `--json` for machine output. ## Reading and presenting the output - **What we found** is the opening slide. It is written to be read aloud. - **Prioritized gaps** is ranked by adjusted annual value per week of delivery effort, so the quick wins lead. Present the table, then the two or three detail blocks you intend to defend — do not read all of them. - Every gap shows both a **raw** and an **adjusted** value. Present the adjusted number. Keep the raw number available for the question "where did that come from", and never total the raw column on a slide. - **Opportunity summary** is the one-number-per-area slide. It deliberately has no total row and no raw column. Gaps are valued in two units — **gross profit** (extra orders) and **recovered spend** (paid budget that can be moved or cut) — and the two are never added together. The funnel and paid conversion-rate rows lift conversion of the same visitors, so the **non-overlapping gross profit** line counts only the larger of the two plus organic search. Quote that line and the recovered-spend line separately; do not add the table's rows on a slide. Funnel work usually dominates; that is real, and it is also the work a prospect is least likely to believe, so lead with the fast paid fixes and let the funnel number sit behind them. - The **retainer comparison** uses only the non-overlapping gross-profit figure. Present it as "the estimate is N times the fee", never as a promise that the fee pays for itself. - **Proposed 90-day engagement** is populated from the gaps that actually scored, not from a template: the phases contain the workstreams that follow from this prospect's evidence. Edit the wording, keep the mapping. - **How these numbers were built** and **What this analysis cannot see** belong in the appendix and in the room. Presenting the limits is what makes the rest credible. ## Limits - Opportunity sizing is arithmetic against benchmarks, not a forecast and not a guarantee. Never present it as revenue the agency will deliver. - Benchmarks are supplied, not derived. A generous benchmark file produces a generous pitch; the skill cannot tell whether a benchmark is fair. - Each paid channel contributes at most one gap, and funnel gaps are each computed with the other steps held at their current rates. Even so, gaps across areas overlap: improving paid conversion rate and fixing checkout touch the same users. - Organic estimates assume ranking at the target position is achievable and ignore SERP features, intent mismatch, cannibalization and competitive difficulty. Keywords beyond `--max-position` are excluded outright. - It uses platform-reported conversions and revenue as given. No attribution correction, no incrementality, no de-duplication across channels. - It does not price the engagement, write the proposal, or assess whether the prospect can execute. It produces the analytical spine a human turns into a pitch.