← Carlos Cardona

DEALMAX. A proposal that defends itself when you're not in the room.

Jun 2026 · dealmax.devance.co · github.com/venturedesigner/dealmax · Solo project

Paste your call notes, the prospect's domain, and what you sell. DealMax researches the prospect on the live web, builds a cited interactive proposal page, and embeds a deal agent that answers the buying committee's questions, handles objections, and books meetings. Built and deployed in 8 hours at the Harness Engineering Hackathon, AWS Builder Loft, San Francisco.

Screenshot 2026 08 03 at 15.15.00

Screenshot 2026 08 03 at 15.12.12

Screenshot 2026 08 03 at 15.09.01

One test: pitching an AI platform to Gensler, one of the world's largest architecture firms. From pasted call notes, DealMax researched the firm, assembled a numbered source pool, and produced a proposal where every market claim traces to a source, with an assistant waiting for the committee's questions.

INSIGHT

Enterprise deals don't break on the call; they break in the boardroom, where the seller isn't present and a static PDF can't answer anything. A proposal that researches its reader, cites its claims, and answers questions on the spot keeps selling after the call ends.

WHAT I BUILT

  • Web-grounded prospect research
  • Cited deal briefs
  • Generative UI proposal renderer
  • Embedded deal agent
  • Meeting booking
  • Seller notifications
  • Seller dashboard

HOW IT'S BUILT

Node and Express with a single SQLite file; Vue 3 frontend, plain CSS. All model calls route through TrueFoundry's OpenAI-compatible gateway via the Vercel AI SDK. Composio handles web search and Google Calendar booking. The pipeline turns a prospect domain into targeted searches, dedupes results into a numbered source pool, then one LLM call writes a strict-JSON deal brief and a second emits a UI schema the Vue frontend renders through a component registry. Deployed behind nginx under pm2.

DECISIONS

Enforced citations at the data layer, not the prose layer. Every prospect or market claim in the brief must cite a source id or be omitted, and product claims come only from the seller's input. The page renderer binds facts by data key, so the model can restructure the page but cannot paraphrase a citation away. The cost: a rigid schema, and thinner proposals when research comes back weak, instead of confident filler.

Model-generated layout, hand-built renderer. The proposal's structure is decided by the model per prospect, emitted as a flat component schema compatible with OpenUI Lang. The official runtime was pre-1.0 with three releases, so I implemented the same pattern manually with a typed schema and Vue registry. The cost: I own a renderer; the win: migrating to the standard later is a renderer swap, not a data-model change. If schema generation fails, the page falls back to a static section order.

One SQLite file, no external services. No managed database, queues, or Docker; the whole backend is one process. Chosen for hackathon speed and operational simplicity. The cost: single node, no horizontal scale, which is the right tradeoff until real usage says otherwise.

LEARNINGS

  • The harness layer around AI products (gateways, action layers, generative-UI standards) is moving faster than any one product; keeping up is part of the job now.
  • Staged releases versus building the full vision at once is a co-founder compatibility test, not a scheduling detail. I mapped this product V0.1 to V1.3; the disagreement over that ended a partnership before it began.

STATUS

Live at dealmax.devance.co: anyone can generate a proposal from the intake form, open its page, and talk to the embedded agent. Still running on the hackathon-day deployment. A staged roadmap toward a full product exists; it is not currently being pursued.