Two products, one stack. Ezra handles user experience, conversational matching, and the Slack + email surface. Trcker handles every click, conversion, attribution decision, and payout. Together they collapse a 6-week onboarding into a 24-hour Slack thread.
Channels are interchangeable. Trcker is the source of truth for transactional data. Composio handles user-connected commodity APIs (Shopify, Stripe, Meta, Gmail).
┌──────────────────────────────────────┐
│ Ezra core │
│ Claude Agent SDK + Voice + Memory │
└──────────────────┬───────────────────┘
│
┌──────────────┬────────────┼────────────────────┐
│ │ │ │
Composio MCP Trcker MCP Local tools Channel adapter
(per user) (per brand) (memory, (Slack Events API
reminders) + Composio mailto)
│ │ │ │
Gmail / Cal get_partner_ Slack /
Slack / Notion stats / create Email
Shopify / Meta _offer / etc.
Stripe / (12 tools)
HubSpot
(1015 toolkits)
Each owns a different layer. Ezra never tries to be a database; Trcker never tries to be a chat agent.
The AI partner you text. Built on Claude Agent SDK. Hosts the voice, the matching intelligence, the conversational onboarding flow, and the multi-channel adapter.
Stack: Python 3.12, FastAPI, Anthropic SDK, Postgres+pgvector, Composio, LoopMessage relay, Twilio, Stripe.
The affiliate tracking platform underneath. Owns every click, conversion, attribution decision, fraud signal, and payout. Brand-grade reporting available at trcker.io for users who want the dashboard.
Stack: Next.js 16, Vercel, Neon Postgres, Drizzle ORM, WorkOS AuthKit, Upstash Redis + QStash, Sentry.
What actually happens when a creator's Ezra-generated link gets clicked and converts on a brand's site.
Fan taps trk.io/x9k2q4 in the creator's TikTok. Trcker logs the click, generates a click_id, captures fingerprint signals, fires-and-forgets fraud scoring, then redirects to the brand's site with click_id appended.
Fan completes purchase. Path varies by platform: Shopify webhook fires to Trcker → matched by referrer URL or order note. Stripe webhook fires for SaaS → matched by Checkout metadata. Custom site fires POST /api/postback/[brand]/[offer]?click_id=... to Trcker.
Trcker resolves the click_id → matches to the original click → calculates payout based on offer config → runs final fraud check via Trcker Radar → creates conversion record. Approved or flagged for review.
If brand has CAPI configured, Trcker fires server-side conversion events to Meta, Google, TikTok, Reddit, etc. Brand's ad attribution gets dramatically better signal.
If conversion is high-value or first-of-day, Ezra surfaces it via the brand's preferred channel: "Just attributed: $84 conversion to @mike_lifts. EPC trending up 40% this week."
On the cadence the brand committed to at launch (weekly / bi-weekly / monthly), Stripe Connect transfers earned commissions from the brand's account to the creator's. Trcker calculates and queues the disbursement; Stripe handles the funds movement. Ezra texts the creator: "$312 just hit your Stripe from Bedrock."
One brain, many surfaces. Each user picks the channel they actually use.
Personal mode and business mode have separate commitments. The personal-mode floor applies to everyone — business mode is additive only.
Ezra reads only what you ask. No background polling. No scraping. Email and calendar accessed only when you make a specific request. Delete in one message.
Ezra polls your conversion data and brand-deal inbox to do its job. Each activity is opt-in. Pause monitoring any time with one text. Full audit log on demand.
Conversion data lives in Trcker (your account). You own it, can export it any time, delete it in 24 hours. Ezra doesn't keep a parallel copy.
Anthropic API calls explicitly use no-training mode. Voice models for caption drafting are user-scoped — your patterns never inform anyone else's account.
Read the full privacy commitments.
The full stack, every endpoint, every privacy guarantee — all documented.
Back to home →