SkillAgentSearch skills...

proposal-builder

Turns whatever came out of a discovery conversation — a call transcript, a voice memo, jobsite photos, an RFP document, a set of drawings, or scrappy notes — into a branded, costed proposal, estimate, or statement of work built on the owner's own templates and historical pricing.

Install / Use

npx skills add anthropics/knowledge-work-plugins --skill proposal-builder

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

92/100

Supported Platforms

Universal

Our assessment of proposal-builder

proposal-builder scores 92/100 on our quality scale, 64th of 371 Content & Media skills we index (top 18%).

Its SKILL.md is 15 KB long, well organised into 13 sections and no code examples: a thorough specification that gives an agent plenty to work with.

With 25,526 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
30/30
Structure
13/20
Description
15/15
Adoption
19/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated yesterday, so proposal-builder is actively maintained.
  • It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.

Automated pattern scan on 2026-09-26. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

proposal-builder compared with similar skills

All 4 of these similar skills score higher than proposal-builder; compare them before choosing.

SkillScoreStarsUpdatedFormat
proposal-builder (this skill)by anthropics9225.5k1d agoSKILL.md
LocalAIby mudler10049.3ktodayMCP Server
siyuanby siyuan-note10046.5ktodayMCP Server
algorithmic-artby anthropics100177.9k3d agoSKILL.md
pptxby anthropics100177.9k3d agoSKILL.md

Frequently asked questions

How do I install proposal-builder?
Run npx skills add anthropics/knowledge-work-plugins --skill proposal-builder. The install tabs above show the steps for each supported agent.
Which AI agents does proposal-builder work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is proposal-builder safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is proposal-builder still maintained?
The repository was last updated yesterday, so proposal-builder is actively maintained.

name: proposal-builder description: > Turns whatever came out of a discovery conversation — a call transcript, a voice memo, jobsite photos, an RFP document, a set of drawings, or scrappy notes — into a branded, costed proposal, estimate, or statement of work built on the owner's own templates and historical pricing. Routes it for signature and triggers the deposit invoice once it's accepted. Works entirely from uploaded files when no connector is available, producing DOCX and PDF the owner can send themselves. Use this whenever a quote, bid, estimate, proposal, or SOW is the deliverable — including phrasings like "write this up for them," "put together a quote," "I need to bid this job," "turn my notes into a proposal," "respond to this RFP," or "price this out." Reach for it when the owner describes a job they just looked at, even without saying the word quote. allowed-tools: Read, WebFetch

Proposal Builder

Turn discovery into a document the customer can sign.

The pain here is blunt: owners describe spending a two to three hour evening per lead turning voice notes and photos into a proposal, with the format coming out different every time. Services businesses grow by quoting, and quoting is the bottleneck.

Step 1 — Ask where the discovery lives, then read it

Many connectors can feed this skill, so do not sweep them all. Open with one question: where should the material come from? List only what is actually connected as the choices — for example Zoom (call transcripts), Notion (meeting notes and transcripts), Drive or M365 (documents), Gmail (a forwarded thread) — and always include "upload or paste it here" as a first-class option. The owner picks; only the picked sources get searched. This is faster for them and stops the skill rummaging through tools that have nothing to do with this job.

Take whatever form the discovery arrives in. All of these are normal inputs:

  • A call or meeting transcript, from Zoom or a recording. Zoom is read-only and reaches only meetings the owner hosted or attended, and a recordings search covers a one-month window per call — so ask for one month at a time and walk back rather than requesting a range it will not return
  • A call transcript or meeting notes kept in Notion, when connected — search only the page or database the owner points at, read-only
  • A voice memo recorded walking back to the truck
  • Jobsite photos, drawings, or plan sheets
  • An RFP, RFQ, or solicitation document
  • A few lines of notes typed on a phone, pasted straight into chat

Extract into a structured picture: what the customer wants, what constraints exist, what's ambiguous, what's explicitly out of scope, and any date or budget mentioned. See reference/discovery_extraction.md for how to read each input type, including what photos and drawings can and cannot tell you.

Name the gaps out loud. A proposal built on a guessed square footage is a proposal that loses money. List what's missing and either ask or state the assumption in the document itself.

Optional — research the lead (Apollo)

With Apollo connected, offer once before pricing: "Want me to research [company] first?" This is the owner's call — on a no, or with Apollo not connected, skip silently and build from the discovery inputs alone.

On a yes, pull the company's profile: size, industry, location, growth signals like hiring or a new opening, and the right contact with their title. Use it two ways — sharpen the proposal's framing (a 12-person shop reads a different pitch than a 300-person operation), and confirm the document is addressed to the right person. Report what was found in two or three lines before drafting, and name Apollo as the source.

Research is context, never pricing. No Apollo signal changes a rate — pricing comes only from Step 2's comparables. And nothing found in research goes into the customer-facing document as a claim about them; it shapes tone and framing, not content.

Step 2 — Price it from history, not from scratch

Read reference/pricing_method.md. The core rule: price from what this owner has actually charged for comparable work, not from a general estimate.

Pull comparable jobs:

  • The connected ledger (MYOB, NetSuite, QuickBooks, Xero, or Zoho Books) — past invoices for similar work, with line detail. Zoho Books: list_invoices and list_estimates by customer or item, with list_items for the catalogue rates. Ledgers are peers (../../shared/connector-neutrality.md)
  • A payments connector (PayPal, Square, or Stripe) — charge history by customer when no ledger is connected; amounts only, no line detail
  • Uploaded price list or rate card — the common case
  • Past proposals — from Drive, M365, Confluence, or uploaded; a connected store is read only once it is confirmed as the owner's (../../shared/tenant-scope.md)

Find two or three genuinely comparable jobs and build from them, adjusting for what's different. Show the owner what you compared against, because that is what lets them trust the number in ten seconds instead of rebuilding it.

Never invent a rate. If there is no comparable and no rate card, leave the line at a placeholder, say clearly that it needs the owner's number, and build everything else around it. A proposal with one blank the owner fills in beats one with a fabricated figure they have to hunt for.

Step 3 — Build the document on their template

Use the owner's existing proposal template when one exists — from Drive, M365, Confluence, or uploaded. Matching their format matters more than improving it. A proposal that looks like their other proposals gets sent; a beautiful unfamiliar one gets rebuilt by hand.

Confluence, when Atlassian is connected, is a template and historical-document source. Search spaces by CQL for past proposals, scope boilerplate, standard terms, and rate pages, and read the pages directly. That is the whole of its role here — it is a document library, not a pricing system and not a record store. Pricing still comes from the ledger, an uploaded rate card, or past proposals; a Confluence page is only ever evidence of what the owner already writes and charges.

If no template exists, use the structure in reference/proposal_structure.md and offer to save it as their template going forward.

What every proposal needs, in the owner's own voice per the shared voice profile:

  • What the customer asked for, restated so they know they were heard
  • Scope, in specifics — and an explicit "not included" section
  • Pricing, broken into lines the customer can understand
  • Timeline and what it depends on
  • Terms: deposit, payment schedule, validity window
  • What happens next, in one sentence

The "not included" section is the most valuable part of the document. Scope disputes are where service businesses lose money, and they start with what nobody wrote down.

Step 4 — Flag the risks to the owner, not to the customer

Before showing the proposal, tell the owner privately what worries you about the job:

  • Assumptions that would change the price materially if wrong
  • Scope that could expand once work starts
  • Timeline commitments that depend on someone else
  • Payment terms weaker than what they normally get
  • Anything in an RFP that is unusual or expensive to comply with

This is separate from the document. The customer sees the proposal; the owner sees the proposal plus the honest read.

Step 5 — Deliver for review

Present the summary in chat, attach DOCX and PDF. Follow reference/output_template.md.

Lead with the number, the basis for it, and the open assumptions. The owner wants to check the price and the scope, in that order, and then send it.

Also render the proposal as a customer-facing HTML artifact using the house style (../../shared/artifact-style.md) — more polished than an internal page, since the customer may see it: scope panels, a line-item pricing table, timeline, and the "not included" section. The Step 4 risk flags, margin notes, and pricing rationale never appear on this page. The customer page carries the proposal; the owner's honest read stays in chat. The DOCX and PDF remain the send-able deliverables.

Notion, when the owner's stored output preference is notion or they ask for it, is an alternate review home: create the review copy as a Notion page instead of the artifact (one review copy, per the one-deliverable rule in ../../shared/artifact-style.md), in a destination the owner names — never overwriting an existing page, updated in place on revisions rather than duplicated. Connection alone does not trigger this; a page in their workspace is a write, so it happens only on preference or an explicit ask. The same content rule holds there: risk flags and pricing rationale stay out, because a Notion page is shareable and the customer may end up on it. If Notion is preferred but not connected, say so and use the artifact.

Canva, when the owner's stored output preference is canva or they ask for it, works the same way: create the review copy as a Canva Doc instead of the artifact, using the tool and content rules in ../../shared/artifact-style.md — a new design per revision, named with the version and date, never editing a design the owner did not ask to change. The same content rule holds: risk flags and pricing rationale stay out, because a Canva design is shareable and the customer may end up on it. The line-item pricing table becomes a list, one line per item, since a Canva Doc takes no tables. If Canva is preferred but not connected, say so and use the artifact. The DOCX and PDF remain the send-able deliverables either way.

Step 6 — Route for signature, with approval

Sending a priced proposal to a customer commits the owner's money and calendar. It never goes out without an explicit yes.

Say exactly what will happen before asking: who receives it, what the total is, what signature routing is used, and what happens on acceptance.

Check for the template at the start of this step, not the end. With DocuSign connected, list the account's templates and look for a match before promising a signature route. Tell the owner up front which close is available — "routed for signature in DocuSign" or "DOCX handed over for a one-time upload" — so the outcome is never a surprise after the approval.

With DocuSign connected, route for e-signature. Without it, the DOCX and PDF are the deliverable and the owner sends them. That is a complete outcome.

Read this before assuming the DocuSign leg is available. DocuSign will only take a document two ways: from a template that already exists in the account, or from a URL it can fetch without credentials. It does not accept a file upload. A proposal this skill just generated is neither of those things, and a link to it in Drive does not work — DocuSign cannot authenticate, so the call fails outright.

That leaves one honest conclusion: do not publish a proposal to a public URL to get it into DocuSign. A customer proposal carries pricing, scope and sometimes names. A URL anyone can fetch is a URL anyone can find. The workaround is worse than the manual step it saves.

So the routing order is:

  1. A matching template exists in DocuSign — use it. This is the only clean connected path.
  2. No template — hand the owner the DOCX and PDF and tell them plainly that DocuSign needs the file uploaded once on their side. One sentence, no apology. This is the normal outcome, not a failure.
  3. Never stand the document up at a public address to satisfy the connector.

Say which of these happened. An owner who thinks a proposal went out for signature when it is sitting in a folder will find out from the customer.

Step 7 — On acceptance

When a proposal is signed:

  1. Generate the deposit invoice or payment link per the terms, through whichever the owner approves — one, never both for the same deposit. The ledge

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars25.5k
CategoryContent
Updated1d ago
Forks3.0k

Languages

Python

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions