A visitor asks what a job will cost and gets told someone will be in touch. The Startup Ideas Podcast names the pattern: every "get an instant quote" form on the internet promises an answer and then sends "we'll email you by end of day." Their point about the fix is short: the speed is the thing the client notices.
An instant quote fixes the speed without letting AI make up a price. You write the prices. The model only reads the enquiry and picks which of your prices applies. If it can't tell, a person answers.
Write the price table
the step that pays off
Every row is a job you quote, with a low and a high price, what's included, and the condition that means you need to look first. Fill in the template below. Write jobs in the words customers use, because those are the words the enquiries will arrive in.
The table is the whole safety system. The AI's job is to read an enquiry and pick rows. The price the visitor sees comes out of your table, never out of the model.
Write your price table
Checkpoint
A price table with a row for every job you quote and the never-quoted list filled in.
Test it on enquiries you've already answered
Take twenty past enquiries you've already quoted. Run each one through the prompt below with your table, and compare the rows it picks with the price you gave.
Every mismatch is one of three things: a row is missing, a row's wording doesn't match how customers describe the job, or the enquiry should have gone to a person. Fix the table, not the prompt, and run the twenty again.
Match an enquiry to rows in the table
Pro tip
Watch the NO_MATCH answers. A model told to pick the closest row can quote the wrong job with confidence.
Checkpoint
Twenty past enquiries where the picked rows match what you quoted.
Put it on the site
This part is a build. The form sends the enquiry and your table to the model, the model returns rows, and the page looks those rows up in the table and shows the range. The visitor sees a price range and what it includes, plus a way to confirm. HAND_TO_PERSON and NO_MATCH show a plain line saying a person will reply, and when.
Chris (@everestchris6) outlines this build on jev, a new typesafe model that makes super fast decisions instead of writing: a quote tool that gives a business instant prices. Any model that returns the fixed format above can do the picking.
Checkpoint
A form that shows a range from your table, or says a person will reply.
Read every quote once a week
Look at the week's enquiries, the rows picked, and what happened next. Did the visitor book, go quiet, or dispute the range? A range people keep disputing is a row to rewrite. A job that keeps coming in as NO_MATCH is a row to add.
Checkpoint
A weekly look at quotes, with the table updated from it.
The takeaway
You end up with a quote form that answers in seconds with a range you wrote, a list of enquiries that always go to a person, and a weekly habit that keeps the table close to what you charge.
The limit: the range is only as good as your table, and a range isn't a contract. Jobs that need a look, or a customer whose description is wrong, still need a person before the price is final. Say so next to the range, and keep the confirm step.
Variations
Catalogue suppliers. Chris's guide builds the same tool for business-to-business suppliers and their catalogues. The table becomes your catalogue with quantity breaks, and the model picks items and quantities from a buyer's message.
Quote replies by email. Before building anything on the site, run the prompt on enquiries that arrive by email and reply with the range yourself. It tests the table with no build at all.
A range, not a number. Keep low and high prices in every row, even where you usually charge one figure. A range survives the details the enquiry left out.
Don't let the model set the price. Asking a model to "estimate a fair price" from a description is the version of this that goes wrong in public. The price always comes from your table.