Demo environment

https://sales-kernel-demo.vercel.app is one process with both services mounted — api.forsale at /forsale, the closer marketplace at /closers — and all escalations, matching, and gig-result callbacks dispatched in-process. It exists so every claim in these docs is demonstrable.

This is a sandbox, not a marketplace. The seeded closers are fictional demo personas, every deal in it is a demo scenario, and no live closer pool or production traffic sits behind it. We’re pre-launch — that’s the point of the waitlist.
curl -s https://sales-kernel-demo.vercel.app/
# → JSON index of every endpoint

curl -s https://sales-kernel-demo.vercel.app/health
# {"ok":true,"closers":2,"deals":0}

curl -s -X POST https://sales-kernel-demo.vercel.app/demo/reset
# {"reset":true,"seeded":["Dana Reyes","Marcus Webb"]}

Seeded closers

Boot (and every reset) seeds two fictional contractors so matching, claiming, Registers, and payout ledgers have something to bite on:

CloserIndustriesStarts with
Dana ReyesEnterprise SaaS, Insurancean empty Register ({ gigs: 0, wins: 0, grossClosedUsd: 0 }) and an empty payout ledger
Marcus WebbCoaching, Real Estate

You can enroll more via POST /closers/closers — they last until the next reset.

Reset semantics

  • POST /demo/reset clears all state — deals, gigs, enrolled closers, Registers, ledgers — and re-seeds Dana and Marcus fresh.
  • The environment is shared: anyone reading these docs hits the same instance, and anyone can reset it at any time. Don’t expect your deals to survive, and don’t put anything real in it.
  • Ids (deal_NNNN, gig_NNNN) are monotonic but not stable across runs or resets — capture them from responses (as the quickstart does with jq) rather than hardcoding.

In-memory caveat

All state is in-memory in a single serverless instance. A cold start, redeploy, or platform recycle wipes it exactly like a reset (minus the counter). If a deal id suddenly 404s, that’s what happened — start over with POST /demo/reset. There is no database, no persistence, and no uptime promise.

What is faithful

The mechanics are the real kernel, not a mock: the propose → gate → commit authority seam, Mandate bounds-checking (422), per-Role staffing and escalation, the one-way human-track door, the gig lifecycle, fee-at-fulfillment vs commission-at-won settlement, and Register/ledger accounting all run the same code paths the product is built on. What the demo simulates is the work: the “agent” is scripted, and you play the human closers yourself via the /closers endpoints.