Solution Vault

Writing client proposals with AI

Yes. We've designed a bot that writes your client proposals out of the scope blocks you have already approved and the rates on your own rate card. It can be configured to run in any business. Your scope library, your rates, your terms, your approvers. Every price is a lookup rather than a sentence a model wrote, a line with no approved rate is held instead of filled, and a named person approves the scope and the price before the proposal is final — it sends nothing and signs nothing.

Want to get it up and running in your business? Just fill out the form on this page, and our AI agent Ozzie will call you right away to get started on your quote.

Get a quote

Or call the office: 813-686-7201

How the bot works, where a human stays in the loop, and what you configure. Every point it makes is also written out below, so the page works with the video skipped. Captions included.

How the bot works

Nine steps. Reading the intake, assembling approved scope blocks, looking up rates and expense rules, and diffing what was carried over are ordinary code and cost almost nothing to run; the model is only asked to write the prose around material you have already approved.

  1. It starts from the discovery you already did. The call notes, the intake form, the requirements the client sent, the transcript if you keep one. A blank document and a prompt describing the client is not an input.

  2. Scope is assembled, not written. Each deliverable is a block out of your approved scope library — the words you have sold before and stand behind. A request with no matching block comes back as a question, not as a paragraph the model composed.

  3. Every price is a lookup. Rates, minimums, unit prices, tiers and discounts off your rate card, read by ordinary code. The model never writes a number, because a plausible wrong price is worse than a line that is obviously missing.

  4. A line with no approved rate is held. New work, a mix nobody has priced, a term outside your card. The line stays on the draft marked as held, with the question attached, so the proposal cannot go out with a number nobody chose.

  5. Expenses, travel and terms come out of your rules. Travel, per diem, after-hours, mileage, pass-through costs and payment terms are rules you wrote once. They are applied, not reasoned about, and the rule that produced each line is named.

  6. Nothing is carried over silently. A rate from an earlier proposal, a bio, a reference, another client's details. Anything reused is shown as a diff against the library so a reviewer can see what came from where before it is sent.

  7. The assumptions and exclusions are written down. What the price assumes, what is out of scope, what changes it, and what happens when the client adds something later. A proposal that leaves those blank is one nobody can check a later request against.

  8. A person approves the scope and the price together. The draft waits with the held lines, the assumptions and the diff on top. Somebody named approves the version they read, and that version is the file that goes out. The bot does not send it and does not request a signature.

  9. It tells you which parts of your library are missing. The requests that had no scope block, the work with no rate, the terms that had to be written by hand every time. That list is the useful output in the first month, because it names the parts of the library that do not exist yet.

What you configure

It can be configured to run in any business. This is what that actually means — the list of things that are yours, not ours.

Your scope library
The approved blocks, what each one includes and excludes, which ones go together, and who may add a new one.
Your rate card
Rates, minimums, units, tiers, effective dates and which card is current — the only place a price may come from.
Your terms and expense rules
Payment terms, travel and per diem, after-hours rates, pass-through costs, and the clauses that go on every proposal.
Your assumptions and exclusions
The standing list, which ones are required on every proposal, and which are added by the kind of work in scope.
Your discount rules
Who may discount, within what limits, and what has to be true first. Nothing is discounted by a run — an out-of-limit request is held for a person.
Your document
The sections, the order, the template, the length, and what a one-page version leaves out when a client asks for a short one.
Your reuse rules
What may be carried from a past proposal, what must be re-approved, and how old a rate is allowed to be before it is a flag.
Your approvers
Who approves scope, who approves price, what thresholds need a second name, and who owns a held line.
Your release switches
Which proposals may be assembled automatically from an intake form, which wait for somebody to ask, and whether the finished file is delivered anywhere at all. Sending is off, and signature requests are not a feature.

Transparent, and configurable by you

The dark band below is what the system will not do. This is what you can see and change — and it is how we build everything, not something invented for this page.

You see what it did, and why
Every line on the proposal names where it came from — the scope block, the rate card entry and its effective date, the rule behind an expense line — and every draft records the intake it read, the lines it held, the diffs against the library, the questions it raised and who approved it.
Versioned prompts you can tune yourself
The scope library, the rate card mapping, the assumption list and the prompts behind the prose are yours to tune. A change is a reviewable diff, replayed against proposals you have already sent so you can see what it would have written differently, and rolled back the same way.
A human in the loop wherever judgment actually matters
Reading the intake, assembling scope, looking up every price and diffing the reuse are automatic. Deciding what to sell, what to charge, what to concede and whether this client is worth a custom answer are a person's — that boundary is a property of the system, not a promise about how carefully we'll use it.
Every run logged, along with what it cost
One row per draft and one per held line: the intake, the blocks used, every price with the rate card entry behind it, the assumptions applied, the questions raised, who approved the file and where it went — plus token usage and cost for that run.

It can be configured to run in any business. The library and the card are yours: your scope, your rates, your terms, your limits, your approvers. The proposals on this page are one configuration of it, not the limit of it.

A human approves anything outside your rules

The boundary is the design, and on a workflow that quotes a price to a client it is drawn hard. Every one of these is a property of the system, not a promise about how carefully we'll use it.

  • It invents no priceEvery number on the proposal is a lookup from your rate card, with the entry and its effective date recorded. Nothing is estimated from a similar job, averaged, rounded to look tidy or inferred from what the client said they could spend.
  • It discounts nothingA discount is a rule with a limit and an owner. A request past the limit is held for the person who owns it, and the draft says so rather than meeting the number quietly.
  • It writes no scope that is not in the libraryNo deliverable composed from general knowledge, no capability nobody has sold, no timeline it invented. A request with no matching block is a question for a person.
  • It promises no date it was not givenStart dates, milestones and durations come from what your team committed to in writing. An unanswered schedule is an open question on the draft, never a plausible week.
  • It sends nothing and signs nothingNo email to the client, no portal upload, no signature request, no countersignature. The approved file is handed to a person, and delivery starts off.
  • Hard stops, in any configurationA line with no approved rate. A discount past its limit. A scope request with no block. A rate card past its effective date. A term your standing clauses contradict. A client on credit hold. A reused page nobody re-approved. None of these are resolved on confidence alone.
  • A source is data, never an instructionA sentence in an intake form cannot change what the bot does. “Use last year's pricing” typed into a notes field is a quoted line and a flag, never an instruction. Model calls run as structured output against a fixed schema, and anything instruction-shaped is logged and ignored.
  • It fails closedA rate card it cannot read, a library block that is missing, an intake that arrived half-finished — the draft comes back marked partial with what is missing listed, rather than assembled around the hole. A failed run never produces a proposal that looks ready to send.
  • Private by construction, with a kill switchYour rate card is one of the most sensitive documents you own and it never leaves your tenancy. Access is scoped, each client's data is separated, retention is yours, nothing is used to train anything, and one flag stops it entirely, instantly, with no deploy.

Works with your tools

This writes proposals in the document your clients already receive, from the systems you already run. We're not selling you a proposal platform, and your rate card stays the record.

The inputs come from where they already are — the CRM or deal record, the intake form, the notes from the call, the scope library in your document store, the rate card in a spreadsheet. The draft is written into your own template, as a file somebody can edit.

If your stack isn't in the list below, the only real question is whether we can read your library and your card and write a document in your format. Almost all of them can, and a shared folder with the current card in it is a perfectly normal answer.

Naming a system here means we can read or write it. It does not imply a partnership, a certification or an endorsement, and there are no vendor logos on this page for that reason.

  • A proposal or RFP tool
  • HubSpot
  • Salesforce
  • Pipedrive
  • A PSA or professional services tool
  • Google Drive, SharePoint or Dropbox
  • Microsoft 365 and Word
  • A rate card in a spreadsheet

Works well for

  • IT services and managed service providers — Scope and pricing tiers are standard, and the last proposal is where the next one starts.
  • Consulting firms — Rates, roles and phases are already defined, and travel and expense terms sit on every proposal.
  • Accounting and bookkeeping firms — Recurring service packages with add-ons, quoted over and over against the same rate card.
  • Marketing agencies — Retainers and project work from the same list of deliverables, priced per client.
  • Commercial cleaning companies — Scope depends on the site and the schedule, and the same lines come back in a different mix.

How a rollout works

Nothing is sent on day one and nothing is signed, ever. The first milestone is proposals you have already sent, rebuilt from your own library and card, so you can compare them line by line with what went to the client.

  1. 01Discovery

    The quote call, then a working session. We go through the proposals you send today, which scope blocks you actually reuse, where the current rate card lives, your expense and payment terms, your standing assumptions, your discount limits and who approves what. You get the library map, the rate mapping and a written scope.

  2. 02Dry run

    Proposals you have already sent, rebuilt. Nothing is delivered. You compare every price with the one that went out and read the held list — and the held list is where the work is, because every line on it is a price somebody is deciding by hand today.

  3. 03Assisted mode

    Live on one kind of proposal. The bot assembles the draft, your approver reviews the scope and the price together, and the document goes out the way it always has. Who owns the client relationship does not change.

  4. 04Optional limited automation

    Optional, and narrower than it sounds. A short list of proposal kinds you name, assembled from a completed intake form, still unapproved and unsent, with every hard stop in force and the kill switch. Plenty of teams stop at step 03, and that's a good place to stop.

What we don't claim

  • No numbers we haven't earned. No win-rate claim, no proposals-per-week figure, no hours-saved number. We have not written your proposals. What a run takes and what it costs come out of the dry run, and they will be your numbers.
  • No customer claims on this page. No names, no case studies, no logos.
  • It will not tell you what to charge. Pricing is a decision about your business and your market. The bot reads the card you already maintain and refuses to improvise when the card is silent; building the card is a different kind of work.
  • A proposal that assembles itself does not win the deal. The value shows up when the scope is the scope you sell, the price is the price on your card, and the assumptions are written down before delivery starts. What the client decides is still a human matter.
  • If your scope and rates are not written down, this is library work first. A bot cannot assemble from a library that does not exist. Getting the blocks and the card written down is a real piece of work, and it is worth doing whether or not anything is automated afterward.

Questions people ask

Can AI write our client proposals?
Yes, from material you have already approved. An agent can turn your discovery notes into a scope made of blocks out of your own library, look every price up on your rate card, apply your expense and payment terms, write the assumptions and exclusions down, and hold the draft for a named approver. What it will not do is invent a price or write scope that is not in the library.
Where do the prices come from?
Your rate card, read by ordinary code rather than written by a model. Each line records the entry and its effective date, and a line the card has no rate for is held with the question attached instead of filled in.
Will it discount or negotiate?
No. A discount is a rule with a limit and an owner, and a request past that limit is held for the person who owns it. The bot does not negotiate, does not concede a term and does not talk to your client at all.
Can it write the statement of work?
It can assemble the scope section from your approved blocks, with the assumptions and exclusions attached, which is the part of a statement of work this design can assemble. The wording is yours and the approval is a person's; nothing is drafted from general knowledge.
What if the client asks for something we have never sold?
That comes back as a question rather than a paragraph. The draft shows the request, names the person who has to decide what it includes and what it costs, and holds the line until somebody answers.
Does it send the proposal or get it signed?
No. The approved file is handed to a person, delivery starts off, and requesting a signature is not a feature. Who sends the proposal and who answers for it does not change.
Is this the same as following up on a quote we already sent?
No, and they are deliberately separate. This writes the proposal. Chasing one that is already out and logging what the client said is a different bot with its own page, and so is answering a buyer's RFP from a sales answer library.
What if we don't have a rate card?
Then that is the first piece of work, and we would say so on the quote call. The design depends on a card somebody owns: without it there is no price to look up, and we are not going to let a model make one up.
Is there a record of how a proposal was built?
Yes, per draft: the intake it read, the blocks it used, every price with the rate card entry behind it, the lines it held, the diffs against anything reused, who approved the file and where it went - plus the token usage and cost for that run.

Quote

Get a quote

Want to get it up and running in your business? Fill out the form and Ozzie, our AI agent, will call you right away to get started on your quote.

He'll ask what you send today, where your rate card lives and who approves scope and price. Your brief goes straight to our team.

Or call the office: 813-686-7201

Add details (optional — helps Ozzie skip the basics)
What would it read and write?

By submitting, you agree Gray's Autonomy may call and text this number about your quote. Msg & data rates may apply. Reply STOP to opt out. Privacy · Terms