Inspiration
The front office of a small business is still a person with a phone. Quotes live in WhatsApp. Invoices live in a notebook. Follow-up happens at midnight, or not at all. Shops that need an operator most cannot hire one, and they will not sit through a six-week “AI transformation.” They will pay for someone who takes the mess, decides, and hands back something they can run tomorrow morning.
What it does
MossDesk is a Gemini-operated firm, not a chatbot. The customer opens a job. Five agents execute in sequence, and each one is allowed to bind the business:
- Scout — operating picture, constraints, risk flags
- Pricer — take or decline; SKU; USD price inside a hard policy (floor $29 / ceiling $249)
- Operator — copy-paste scripts, a 7-day sequence, metrics
- Collector — invoice terms and dunning
- Auditor — SHIP, ESCALATE, or REJECT with a quality score (under 70 cannot ship)
The customer pays the price the Pricer set. Checkout does not let a human override it. The operator desk (/ops) is the production log: jobs, decisions, latency, model id, shipped vs escalated, and Stripe revenue separated from demo markers.
How we built it
Every agent call is a live Gemini generateContent request with JSON output. Pricer and Auditor decisions are binding, not suggestions. Policy clamps sit around the model, not instead of it. The stack is Next.js, a Cloud Run Dockerfile, and Stripe-ready checkout. Demo-payment buttons are labeled and excluded from the P&L.
What we learned
If an agent cannot name its decision in a verb — SET_PRICE, PACKAGE_READY, INVOICE_TERMS, SHIP, ESCALATE — it does not belong in the firm. Latency, model id, and rationale are stored with the job so a shop can ask “why did you charge $79?” and get an answer that is not a vibe.
Challenges
Gemini 2.5 Flash is no longer available to new users, so production uses gemini-3.5-flash-lite. Direct Google API calls from some networks fail without a proxy. The part no repository can fake remains the same: an arms-length customer who pays. Related-party charges, if any, are listed separately as the rules require.
Testing
- Open the site (GitHub README has the latest URL).
- Click Run live bakery job (30–90s) or
/startwith your own mess. - Watch Scout → Pricer → Operator → Collector → Auditor.
- Open
/ops,/api/health, and/api/evidence. /pay/[id]— Stripe if configured; the local demo-pay button is not revenue.
Category: Small Business Services
Google Cloud product: Cloud Run
Gemini model: gemini-3.5-flash-lite
Circle Agentic Economy Prize: No (checkout is human-completed; not agent-driven USDC).
Built With
- gemini-api
- google-cloud-run
- next.js
- stripe
- typescript
Log in or sign up for Devpost to join the conversation.