Ajna. A sales call becomes an approved quote, for any event vendor.
- Status
- Live · invite-only
- Role
- Founder — my own product
- Stack
- Next.js · TypeScript · Drizzle · Neon Postgres · Claude
- Scale
- 13-table schema · 16 pages · AI-safety test suite
- Year
- 2026
- Live
- ajnadesk.com ↗

Event vendors sell on calls, then lose the sale in the follow-up: transcribing what was said, building a price, formatting an email — for days, while the client shops around. I had already automated this for one real events company. The question Ajna answers: can any vendor onboard themselves to the same machine?
- ◆True multi-tenancy — organizations, memberships, and tenant-scoped API keys; every query is org-scoped by construction.
- ◆Self-serve intake — each org gets its own transcript webhook; recordings flow in from their own call-recorder account.
- ◆AI classify & extract — Claude decides if a call is a sales call and pulls the quote fields, using forced tool schemas so output is always valid JSON.
- ◆Review queue with a human gate — nothing sends until a person reviews the extracted quote and approves it.
- ◆Branded quote email + calendar invite — rendered per-vendor, with a Google OAuth flow that verifies scopes before promising invites.
- ◆Encrypted credential store — vendors’ integration secrets are encrypted at rest, per-tenant.
- 1Sales call ends — recorder webhook fires into the vendor’s org
- 2Claude classifies the call, then extracts quote fields (forced schema)
- 3Quote lands in the review queue as a draft
- 4A human edits if needed, then approves
- 5Branded email + calendar invite go out; every step event-logged
The hard part wasn’t the AI — it was making the AI safe to put in front of strangers’ businesses. Ajna ships with a dedicated AI-safety test suite: transcripts that try to prompt-inject the extractor, decoy numbers meant to be mistaken for guest counts, calls that aren’t sales calls at all. The pipeline also runs on an explicit quote state machine — a quote can only move along defined edges, so a bug can’t silently skip the human approval step.
Multi-tenancy was the other discipline: one careless query without an org scope is a data leak between businesses. The schema and API layer make the scoped path the only path.
- ✓AI-safety suite (prompt injection, decoys, non-sales calls) runs green in CI.
- ✓Quote state machine unit-tested edge by edge.
- ✓Live at ajnadesk.com — invite-only while onboarding early vendors.

Live and onboarding invited vendors. Ajna is the productized form of automation already carrying real revenue at a real events company — which is the pitch: this isn’t a demo, it’s a machine that already works, now with a signup page.
I specified the product, reviewed every behavior, and gated releases on the AI-safety suite. Claude Code wrote it. How I work →
Run an events business? I built Ajna for you.
AI automation for wedding & event vendors — quotes in minutes instead of days, a human always in the loop.