Build a Proposal-Drafting Agent for Consultants
Praxis turns a discovery-call transcript into a proposal: scope, timeline, fee, and a tasteful close.
- Tomorrow's proposal drafts in your inbox before you leave the office tonight.
- Praxis anchors fees from your real history — no underpricing surprises.
- Scope creep blocked at the proposal stage.
- A starting point you can clone in two clicks instead of seven.
-
Create the agent
Profile · Create
From the AgentsBooks dashboard click + New Agent. Pick the Custom Agent preset on the wizard's first card, then on step two enter:
- Name:
Praxis - Role:
Proposal Drafter
Praxis is just our worked example — the playbook teaches you how to build a proposal-drafting agent shaped to your practice. We use a name that sounds like a discipline because clients should feel they're reading the work of one, not the work of an autocomplete.
Click ✨ Create Agent at the bottom of the card. Praxis's empty profile hub opens automatically and we start filling it in.
- Name:
-
Personal: persona and voice
Personal
Open the Personal card on the profile hub. This is where Praxis earns the trust of your prospects. Set:
- Traits:
scope-disciplined, fee-confident, concise - Communication style:
crisp, consultative, low-adjective - Tone (default):
consultative and precise - Voice ID:
praxis-clear· Provider:elevenlabs· Pace:measured
Three traits is the sweet spot — more and the LLM averages them out. The voice block matters because Praxis can read drafts back to you on a walk before you send them.
- Traits:
-
Brain: model and system prompt
Brain
Open Brain. Pick a model that handles structured drafting — we use
claude-sonnet-4-6attemperature 0.5so Praxis is precise without being mechanical. Paste the system prompt that locks in the proposal contract:You are Praxis, a proposal drafter. Always start from the discovery-call transcript — never proposal from a brief alone. Map every client ask to a scoped deliverable; if you can't, name it a discovery sprint. Pull comparable engagements from long-term memory for fee anchoring. Refuse to draft a fixed-fee proposal where scope is undefined; offer time-and-materials instead.The system prompt is the contract between you and Praxis. The four rules above are the difference between a proposal that closes and one that quietly underprices itself.
-
Knowledge: case studies, fee bands, and templates
Knowledge
Open Knowledge and click Add Source. Praxis retrieves from this on every draft, so this is what makes proposals sound like you and priced like your last five engagements.
Upload at minimum:
- Case studies — top five engagements (each with client type, scope, fee, duration, outcome)
- Fee bands (low/mid/high anchors per engagement archetype)
- Scoping templates (deliverable list, milestone list, exclusion list)
Add two URL sources too: your case-study repository (weekly scrape) and the master scope template doc (manual scrape — it doesn't change often). The exclusion list in your scope template is the under-rated half of every proposal.
-
Memory: a long-term store
Memory
Open Memory and add a long-term store:
- Name:
client-history - Type:
vector_db - Default: ✅ on
- Purpose (in config): Archive of every prior engagement: scope, fee, duration, outcome. Source of fee anchoring and scope sanity checks.
Memory is the difference between a draft and a credible draft. Knowledge tells Praxis what your archetypes look like; Memory tells her what you actually charged the last comparable client and how it ended. That's the anchor your proposals have been missing.
- Name:
-
Heart: a scheduled task
Heart
Open Heart and create a scheduled task:
- Name:
Tomorrow's drafts - Trigger: Schedule · Cron
0 19 * * 1-5· TimezoneAmerica/New_York - Prompt: For every discovery transcript uploaded today: read it, map asks to scoped deliverables, anchor fee from client-history, draft a 1-page proposal. Save as email draft titled "Proposal —
— ". - Tools: knowledge-base, long-term-memory, email
- Memory namespace:
client-history
This is the loop that turns Praxis from an assistant you summon into a drafter who has tomorrow's proposals waiting in your inbox before you leave the office tonight.
- Name:
-
Outcome: Praxis goes live
Outcome
All seven cards are wired. Open Praxis's profile hub — every section now shows a green check and a one-line summary of what's configured. Hit Publish.
What you have:
- Email channel connected — drafts land in your inbox titled
Proposal — <client> — <date>, ready for one final read before you hit send. - Weeknight 7 PM run that converts every discovery transcript from the day into a 1-page proposal anchored against your real history.
- Scope-creep firewall — Praxis refuses to fixed-fee an undefined scope, every time.
- A starting point you can clone with the button on this playbook page — your proposal-drafter in two clicks instead of seven.
- Email channel connected — drafts land in your inbox titled