← All work

Kaedim SKU Signal

Verified-evidence lead board for Kaedim: funded brands and studios with open 3D roles.

Aug 2026Demo agent

Next.js 16React 19TypeScriptVercel AI SDK v7OpenRouter (Gemini 3.5 Flash Lite)ExaFundable deals APIZod 4Tailwind CSS 4VitestVercel

Problem

Kaedim turns sketches and product photos into production-ready 3D assets with an AI-plus-artist pipeline, and its GTM opening asked one hire to build the outbound motion across game studios and e-commerce brands. Most lead tools end that job with a fit score nobody can explain to a creative director, and an LLM will happily invent one. This demo's bet: a board where nothing carries a score, every lead survived five code-enforced verification gates, the money on the card is arithmetic on evidence the model counted, and the outreach is written inside a play the code picked.

What I built

A Next.js 16 app with two boards (e-commerce primary, game studios secondary) and a scan route that streams NDJSON. Each scan runs an eight-tool agent loop over Fundable's VC deal feed and Exa searches of ATS and games job boards, structures the evidence with Zod, then pushes every candidate through five gates in code: admission and dedupe, ICP citations with one spot-fetched URL, per-signal source resolution and date windows, business-case sufficiency, and (on enrich) person and draft verification. Survivors land in deterministic tiers (Act now, Stacked, Hiring, Funded) with evidence chips and a cost-line business case computed in one module from BLS wage data; thin-ICP leads go to a visible watchlist, and the loop re-scans with rotated sub-segments until the board holds enough qualified and stacked leads or the pass budget runs out. Per-lead enrich finds named buyers from public team pages and drafts an email and first-call script inside one of three plays, with a /playbook page publishing the templates the next hire inherits. Outcome tracking, a segment radar, and CSV export close the loop.

Highlights

  • Scores were deleted on purpose: PRD v2 had a fit score, v3 replaced it with checklist confidence computed in code (URL resolved, date in window, citation present, name on page). The model judges ICP fit with citations; the code decides. A signal whose source URL fails to resolve ceases to exist, and a lead with one thin citation goes to the watchlist instead of quietly onto the board.
  • Money is arithmetic, never model prose: cost line only, after rejecting a revenue chain as indefensible in both verticals. The FTE basis counts only gate-verified hiring signals, the loaded cost is a BLS median times a stated load factor, the capacity multiplier is capped below the vendor's own published result, estimates are clamped against observed evidence, and the card shows no money when nothing was observed. Every assumption string interpolates its constant and the app has one currency formatter.
  • Drafts pass deterministic validators before they ship: at most one money figure and it must equal the card's, a word limit, no pricing language, no citing the vendor's disclaimed illustrative case studies as outcomes, and no attributing a customer speedup to a vertical cohort. One regeneration with the validator output, then the card ships flagged either way. A named person survives only if the name appears in the fetched tool output.
  • Signal sources were picked by live validation: the pain signal was dropped after finding no public complaint surface for either ICP; the games raise prompt tells the model to reject gaming-tagged fintech and gamification companies on deal description; real customers and competitors are hard-excluded at admission; LinkedIn is read only through a public search index, never scraped.
  • One constant drives both the tool budget promised in the prompt and the runtime stop condition, refinement passes tell the model what was already covered so budget buys new ground, and source verification uses GET rather than HEAD and treats bot walls as existing pages so a WAF cannot silently kill a real req.

Numbers

  • 62 unit tests across 4 files (gates, plays, roi, schema), all passing
  • Loaded 3D-production FTE cost of $102,400/yr, from the US BLS May 2024 median of $78,790 for Multimedia Artists and Animators times a 1.3 load factor
  • Capacity multiplier capped at 4x, deliberately below the 7x acceleration in the vendor's own published case study
  • Unevidenced team estimates clamped to 2 FTEs; with observed roles, estimates may exceed observation by at most 3x
  • Eight-tool budget per scan pass, up to 3 passes, refining until the board holds at least 3 qualified leads and 1 stacked lead
  • Hiring signals older than 120 days are dropped; Tier A requires a req under 60 days old; raise lookback is 270 days
  • Email drafts limited to 120 words (validator tolerates 10 over) and at most one money figure, which must match the business case
  • Default model chosen from an in-code benchmark on this workload: ~0.7s per tool-call decision and ~187 tok/s versus ~4.4s and ~54 tok/s for the alternative, roughly a 30s scan versus 75s
  • Structuring pass emits at most 8 leads with up to 3 ICP citations each; enrich returns at most 4 named people
  • Enrich runs within a 3-tool budget and regenerates a failed draft exactly once

Screenshots

Kaedim SKU Signal: Landing state: two boards, sample scans, and the empty-state explainer: two signals, five gates, zero scores.
Landing state: two boards, sample scans, and the empty-state explainer: two signals, five gates, zero scores.
Kaedim SKU Signal: The playbook page: the Beat-the-req play with its email template and first-call script, selected in code from the verified signal mix.
The playbook page: the Beat-the-req play with its email template and first-call script, selected in code from the verified signal mix.