A WhatsApp brief should not become a cloud prompt
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 n

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission 💸
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 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:
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.
"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.
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.
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.