DealPost
A plain-English brief goes in; an autonomous agent watches a simulated cross-border market full of traps, stays silent through every one, and strikes exactly once — when the true landed price truly breaks the ceiling — with a verifiable receipt for every decision.
Inspiration
Sticker prices lie. A "£59" sneaker is really €81.60 once you add shipping, FX, and duties — and roughly a third of audited EU shops fake their "was" prices to dodge the 30-day-low discount rule. Solidgate (a B2B payments partner) posed the challenge: could an agent hunt deals cross-border, see through the bait, and act on your behalf without ever overpaying or breaking a rule? The north star we locked on: one perfect strike, with receipts.
What it does
You state a want once — "Nike Dunk Low, size 43, under €80 delivered, new only; within €5 of target and low stock → just buy; otherwise ping me once." DealPost parses that into a typed, consent-bearing mandate, then watches a deterministic market timeline across currencies and merchants. For every listing it computes the real landed cost (sticker + shipping + FX
- duties − coupons), runs an Omnibus 30-day-low check to reject fake discounts, matches products to a canonical catalog with a confidence score, and applies hard policy constraints first. The outcome is one of four decisions — WATCH / REJECT / ESCALATE / AUTO_BUY — each shipping a receipt with the math, the alternatives it considered, why this one won, and clickable proof links. Deals above cap or low-confidence matches always escalate to a human; they never auto-buy.
How we built it
A deliberate "deterministic judgment, LLM at the edges" architecture — not an agent swarm. Typed, exhaustively-tested Python owns anything touching money, caps, and math (a cap is a ceiling the model can't reason around); the LLM only parses the brief into a pydantic-validated mandate, helps fuzzy matching, and narrates explanations.
- Backend — FastAPI (Python 3.12, pydantic v2): a seeded market simulator with labeled traps, a pure landed-cost engine, a matching engine, the rules-based judgment engine, an AP2/ACP-shaped mandate + mock checkout lifecycle, and an eval harness. Golden fixtures with real product imagery back a repeatable demo.
- Frontend — React 19 SPA (Vite, Tailwind v4, shadcn/ui, TanStack Query, Framer Motion): brief input → mandate/consent card → fast-forward hunt timeline with agent annotations → live strike receipt, plus voice input for the brief.
- Infra — Terraform for AWS (VPC + EC2, eu-central-1).
- Process — everything built terminal-first with Claude Code + Codex under a strict engineering bar and a human-in-the-loop build-loop: each cycle implement → verify with an independent subagent (evidence required) → red-team → document, gated on make verify (lint + strict types + tests) staying green.
Challenges we ran into
- Making money provable, not probabilistic — resisting the temptation to let the LLM authorize purchases; drawing a hard line so typed code owns every cap and calculation.
- Landed cost that's never wrong — FX, shipping, and duties stacked into one number that had to survive exhaustive unit tests.
- Detecting fake discounts — implementing the actual EU 2019/2161 Art. 6a 30-day-low rule against synthetic price histories.
- Winner-invariance at the data layer — structuring the generator so background listings can never accidentally beat the golden product, keeping the demo deterministic (952 background + 11 golden listings, one intentionally left unresolved).
- A repeatable demo — a fixed seed so weeks of market replay identically every run, with a fallback recording.
Accomplishments that we're proud of
- Zero cap violations and zero hard-constraint breaches by construction, with strike-precision and false-buy-rate numbers on an eval dashboard to prove it.
- A consent object that's AP2-shaped plus the block AP2 forgot — caps on what you actually pay, not just what you intend.
- A landed-cost engine and judgment engine held to a real engineering standard — strict mypy, make verify green, every decision independently verified before it counted as done.
- Real product imagery and 30+ labeled trap scenarios driving a demo you can actually click through and check.
What we learned
- For agentic commerce, trust comes from receipts, not fluency — every decision needs checkable math and links, and every uncertain case belongs with a human.
- Keep the LLM at the edges: let it read language and narrate, but never let it own the money.
- Constraints must filter before ranking — a cheap wrong-size shoe should never win by averaging its way up a value score.
What's next for DealPost
Vendor trust / scam scoring, a similar-product "thinker," predictive "wait 20 days" timing, real PSP payment rails, and live merchant integration — all deliberately out of scope for the 7-hour build, all on the roadmap.
Want this dropped into a file (e.g. a DEVPOST.md), or turned into a shareable one-page artifact?
Log in or sign up for Devpost to join the conversation.