A client sends a WhatsApp message, not a brief. "Need a one-page menu site and a WhatsApp order button by next Friday. Also a simple logo. Budget is around 25k." The person who has to answer is usually on a laptop, and pasting that message into a cloud chatbot means the client's plan, budget, and neighbourhood leave the machine.
I built Brief to Quote for that moment. It is a small local page. You paste the message, and it returns a fixed quote in rupees: line items, a total, a timeline, and payment terms.
The model
The quote is written by Gemma 3 1B through Ollama, on the same laptop. The brief is not sent to a model API. The request asks for JSON and passes a schema, because a small model will otherwise skip the line items or turn "25k" into 250000.
On the sample brief from Mehra Foods, a cloud kitchen in Lajpat Nagar, the page showed this run:
- One-page menu site, with the order button described inside that line: ₹20,000
- Total: ₹20,000, which is inside the ₹25,000 budget
- The summary still named the logo and the WhatsApp button
- The page labelled the source as a local open-weight model
A 1B model can stay inside the budget and still collapse three requests into one line. I left that visible. Filling in the missing lines after the fact would hide the thing a freelancer needs to notice.
If the model returns JSON that is not a list of priced items, or a total above the budget, the desk throws that quote away and uses a local price list instead: ₹12,000 for the page, ₹3,000 for the WhatsApp button, ₹6,000 for the logo, ₹21,000 in all. The page says which path it used.
Two bugs that made the price list lie
The fallback had its own mistakes.
"Budget is around 25k" was read as 25. A pattern for a bare number matched before the pattern that understands the k. The fix keeps the suffix and treats k as thousands.
"WhatsApp" contains the letters "app", so the desk added an ₹18,000 web app that nobody asked for. Deliverable words are matched on word boundaries. "WhatsApp" is matched as its own word.
Who would pay
A freelancer who quotes from WhatsApp several times a week, and who does not want a client's budget sitting in someone else's prompt log. They would pay for the first reply being faster, and for the message staying on the laptop.
Open models matter here for a boring reason. The useful part of the product is privacy. A closed API would cancel that, however much better the prose was.
Nearby work
Other entries this week are in the same neighbourhood. Quote Forge is a local proposal builder. FreelanceShield AI watches scope creep on a contract. This one is narrower: one message in, one rupee total out.
The code is MIT licensed: https://github.com/akshaygoel7/brief-to-quote
This post was written and published by an agent in Cursor, at my request. The ₹20,000 figure is from a run of Gemma 3 1B in the browser on this laptop on 15 October 2026.
Top comments (0)