Omie Holley
← All projects

Veradic

Functional prototype

Hobby project; Voice AI for freight brokers: cover more loads, make fewer calls.

Role
Solo builder: product, strategy, design, engineering
When
2026
  • TypeScript
  • Remix.run v3
  • Twilio ConversationRelay
  • Cloudflare Durable Objects
  • Supabase
  • Cloudflare Pages
  • Stripe Billing
  • OpenRouter
  • Databricks (AI evals)

What It Is

Veradic is a voice-AI front desk for independent freight brokers. Brokers can spend six to eight hours each day on phone work: driver check calls, carrier coverage calls, and inbound carrier screening. Veradic handles those conversations and sends dispatchers the resulting information and exceptions.

This is a hobby project built to explore LLM orchestration and AI tooling in a product with real operational constraints. I approached it as a full product effort: market research, competitive analysis, financial modeling, and a working prototype.

The Strategy: Standalone-First

Rather than asking brokers to adopt a full TMS from a new company, Veradic starts with two standalone voice products and a low-commitment entry point. A TMS follows after the voice products establish value and trust:

flowchart LR
    A[Veradic Outbound<br/>AI check calls · $19/mo] --> B[Veradic Inbound<br/>AI carrier screening · $29/mo]
    B --> C[Bundle<br/>$39/mo · 25% off usage]
    C --> D[Veradic TMS<br/>load-based tiers, $499 ceiling]

Why Outbound first: the broker initiates the call, the agent dials a known number for a known purpose, and the expected outcome is narrow: location, ETA, or confirmation. Inbound calls require the agent to screen an unknown carrier and negotiate in real time. They have more value, but also a larger failure surface, so they follow the lower-risk outbound product.

What's Built

The functional prototype covers the full customer journey:

  • Marketing site: transparent pricing on one page, an interactive bill calculator, and a $499/month ceiling. No sales call is required.
  • Self-serve onboarding: account, workspace, phone, voice selection with a live test call, script, carriers, and first campaign in under 10 minutes. The final step is observing the agent make the first carrier call.
  • Broker dashboard: active campaigns, live call activity, spend tracking, trial usage, and a needs-attention queue for conversations requiring a human.
  • Live call view: a streaming transcript and live entity extraction for rate, equipment, origin, and availability. Dispatchers can Listen, Whisper, or Take Over a call.
  • Command palette (⌘K) across calls, carriers, campaigns, invoices, and settings.

Before every call, the service runs live FMCSA MC and DOT lookups. It verifies carrier identity on connect, stores call transcripts with structured outcomes, and passes the full conversation context to a human when the agent hands off.

Interactive Design Artifacts

The prototype and wireframes capture the complete design work behind Veradic, including over 50 screens and 14 modals built during the initial two-week prototype. Both are standalone, interactive artifacts.

  • : the polished product experience across marketing, onboarding, campaigns, live calls, billing, and settings.
  • : the underlying flows and information architecture used to turn the business model and feature roadmap into an implementation-ready product.

Screenshots

Scroll sideways through the gallery. Click a screenshot to view it full size.

Business Model

The business model combines flat monthly subscriptions with metered usage that becomes less expensive at volume. Manual flagging means brokers are not charged for calls they handle themselves. Inbound is priced per load, not per call, because brokers cannot control how many carriers call about a load and per-call billing would create unpredictable costs.

The TMS uses load-based tiers that scale in both directions. If a broker books 300 loads one month and 20 the next, the bill adjusts down automatically. There are no manual downgrades or retention calls, and the monthly total never exceeds $499. This deliberately undercuts incumbent TMS products that start above $500 per month.

The financial model covers 24 months of base and conservative scenarios. It is built from per-call voice costs, tiered usage pricing, and three acquisition channels:

Base caseConservative case
First profitable monthM4M10
Cumulative break-evenM6M19
Max cash outlay~$1.5K~$8.8K
Customers at M24~254~92
ARR at M24~$890K~$236K
Net margin at M24~77%~29%

Both models show that even the conservative scenario can bootstrap with under $10K of at-risk cash because about 90% of revenue is usage-based and costs scale with it.

Positioning

I mapped five competitors across the independent-broker TMS and voice-AI landscape. The positioning gap is that incumbents are enterprise-priced ($500–$1,000+/month), feature-gated, stagnant, or AI add-ons that do not serve independent brokers.

The AI front desk for indie freight brokers. Answers your carrier calls, vets them in real time, and gets smarter the longer you use it.

Roadmap

PhaseProductFocus
1OutboundCheck calls, coverage outreach, quote follow-ups
2InboundCarrier screening, FMCSA validation, scorecards, live handoff
3Carrier IntelligenceData flywheel: carrier directory, ratings, rate history by lane
4TMSFull load lifecycle, rate cons, invoicing, factoring integrations

Stack

The v1 stack is TypeScript end to end, built with Remix.run v3, hosted on Cloudflare Pages, and backed by Supabase. The live voice loop uses Twilio ConversationRelay for speech-to-text, text-to-speech, and routing over a WebSocket terminated by one Cloudflare Durable Object per call. The Durable Object stores that call's conversation state. Stripe Billing enforces metered AI-usage pricing. LLM calls go through OpenRouter for task-specific model selection without application rewrites. Databricks' AI test harness evaluates the long-running agentic call workflows.

Carrier validation through FMCSA is slow, so the call gathers information while the lookup runs. The agent begins by asking for the MC/DOT number and load, then asks for a rate. By then, the carrier scorecard is available for the negotiation. For example: "It says here you're not authorized to carry after the 11th due to a pending insurance lapse."

v2: a purpose-built orchestration layer that splits each conversation among specialized agents and persists conversation state and memory between turns. This bounds the context any single agent must hold and is intended to keep long calls grounded.