Build Story · Sales CRM · In-house tool

VRX CRM: ring the gong more often

A studio's own sales CRM where Claude drafts the follow-ups and the founder approves each one with a swipe.

crm.d9.army
VRX CRM: ring the gong more often
7½ months
first commit to current build
1,068
web and backend commits on 57 working days
68
tools Claude can call in the CRM
3 days
native iPhone app, first commit to TestFlight

In one look

The problem

Deals don't die in the meeting, they die in the follow-up. A small studio selling large one-off projects can't chase every thread by hand, and sales teams rarely keep a CRM up to date by hand.

What we built

One place for every contact, company, email, deal and task. Gmail threads land on the right contact by themselves, voice notes become text, and Claude reads and works the pipeline through a connector. Scheduled agents draft the follow-ups; nothing goes out until the founder swipes it on his iPhone.

Where it is now

VR Express runs its sales on it. It is invite-only and used in-house; other teams can join a waiting list. The iPhone app is in internal testing. The web app grew to about 110 screens, and day to day most of the work now runs through Claude and the phone.

What this would have cost in 2024

About $43k and 2–3 months

2024 team: 4 people: full-stack developer, AI and integrations developer, iOS developer, designer with QA part-time. Built here by one founder working with AI in 7½ months.

$16k lowlikely $43k$92k high
Piece2024 hours
Contacts, companies, deal pipeline, tasks, calendar, import and dedupe~207
AI features: insights, email and proposal writer, semantic search, docs chat, voice notes, weekly digest~177
Gmail sync across mailboxes, sending, campaigns and sequences~105
LinkedIn add and enrich, Chrome extension, people search, lookup cache~93
Claude connector (68 tools), REST API and shared core~147
Workspaces, roles, seats, unlockable menus, audit log, landing page, security pass~137
Lead feeds from the website, the campus game and the 3D proposal tool~53
Approval desk, swipe rules and scheduled sales agents~95
Native iPhone app (SwiftUI) on the same database~125
Total (PERT)~1,138

Method: PERT (O+4M+P)/6 per piece; low = O × $25, likely = PERT × $37.5, high = P × $50 (Accelerance 2024 Eastern-Europe band). These are estimates of what a team would have needed in 2024, not invoices.

How it was built

From first commit to current build in 7½ months

  1. The whole CRM in two days

    Contacts, a deal pipeline, tasks, a calendar, email campaigns, CSV and zip import, deal rooms and AI insight panels, generated in Lovable from a run of briefs.

    301 commits in 2 days
  2. An API for other tools

    A REST API with key auth, and a feed that brings project briefs from the studio's website into the CRM.

  3. Claude gets a connector

    An MCP server lets Claude read and update the CRM. The same day: a one-click LinkedIn add-and-enrich flow, a Chrome extension and people search for prospecting.

  4. One core, separate workspaces

    The API and the Claude connector had grown duplicate code, so both moved onto one shared core backed by database triggers. Then the CRM went multi-tenant: workspaces, seats, roles and menus that unlock as real data arrives.

  5. Email lands on the contact

    Gmail sync reads several mailboxes, drops duplicate copies of the same message and files each thread on the right contact, without anyone logging it.

    runs every 15 minutes
  6. A gong on the front page

    A gong-poster landing page with a struck-gong reveal. Leads from the studio's 3D proposal tool and its campus game now arrive as tagged CRM leads with an email alert.

    lead alert delivered in about 3 s
  7. Security pass, invite-only

    A security pass, then public sign-up closed: teammates are invited, and everyone else joins a waiting list.

  8. Swipe to approve

    Claude's drafts became cards, and an approval desk was built into the CRM. The rule: a right swipe on an email card sends that exact text, a left swipe skips it.

  9. A native iPhone app

    Today, Pipeline, Contacts and Tasks in SwiftUI on the same database, plus spoken account notes in English or Bulgarian that the agents read before they draft. The Queue tab opens the swipe deck.

    9 commits over 3 days
  10. Sharper agents, cheaper lookups

    Five new scheduled agents: a deal closer, daily queue triage, renewals, cash collection and an event radar. A profile already looked up is no longer paid for twice.

    repeat enrichment: 1 paid lookup → 0

Who did what

The founder decided

  • Through mid-January 2027, every draft and every CRM change waits for the founder's swipe; Claude never approves its own work.
  • A right swipe on an email is the send: it goes out word for word, with no second prompt.
  • LinkedIn is never automated. Claude drafts the note, a person posts it.
  • Partner agencies that resell the studio's work get partner offers, never direct offers.
  • Invite-only: no public sign-up, a waiting list instead.

AI built and checked

  • The web app and its 44 server functions, built in Lovable from the founder's briefs (1,037 of the 1,068 commits).
  • Claude Code: the shared core, the security pass, the invite-only switch, the lookup cache and the native iPhone app.
  • Scheduled Claude agents that read the pipeline on weekdays and draft follow-ups, meeting briefs and CRM fixes for approval.

Stack

ReactTypeScriptSupabasePostgresEdge functionsMCPClaude CodeLovableSwiftUIGmail APIGeminiSemantic search

Want something like this for your team?

From one call to something live. The same method is in the Claude Operator Pack.

From the founder

Ilian Raykov

You might also like