Skip to content
Solo Consultant Sell Intermediate 7 min

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.
Read the steps
  1. Create the agent

    Profile · Create
    Wizard step 2 with the Custom Agent preset, name Praxis, role Proposal Drafter, ready to 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.

  2. Personal: persona and voice

    Personal
    Personal card with Praxis's traits, communication style, tone, and TTS voice configured.

    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.

  3. Brain: model and system prompt

    Brain
    Brain card with claude-sonnet-4-6 selected and the four-rule proposal system prompt visible.

    Open Brain. Pick a model that handles structured drafting — we use claude-sonnet-4-6 at temperature 0.5 so 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.

  4. Knowledge: case studies, fee bands, and templates

    Knowledge
    Knowledge card with case studies, fee bands, scoping templates, and the master scope template attached.

    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.

  5. Memory: a long-term store

    Memory
    Memory card with the client-history vector store added and marked as default.

    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.

  6. Heart: a scheduled task

    Heart
    Heart card showing the weeknight 7 PM Tomorrow's-drafts task with email and memory configured.

    Open Heart and create a scheduled task:

    • Name: Tomorrow's drafts
    • Trigger: Schedule · Cron 0 19 * * 1-5 · Timezone America/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.

  7. Outcome: Praxis goes live

    Outcome
    Praxis's profile hub with all seven cards configured, ready to publish.

    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.

Ready to build it?

Setup takes the time it took to read this page.

Sign in to clone →
Image
Copy link
X
LinkedIn
Reddit
Download