Interactive demo — every person, company, and deal is fictional. Changes you make are real but reset periodically.AboutREADMEArchitecture
Siryous CRM
← About

Siryous CRM — Interactive Demo

A public, fully fictional demo of Siryous CRM: a local-first, AI-native personal CRM built for relationship-driven business development (advisory / consulting practice development in specialty insurance and insurtech).

Every person, company, deal, note, and interaction in this demo is invented. The production system runs privately on one machine against a local SQLite database; this repo exists so the design and the workflows can be shared without sharing any real data.

  • Live demo: deploy this repo to Vercel (zero config) or run npm run dev
  • Start at the landing page, then Enter the demo → Dashboard
  • Each page has an ⓘ explainer describing what it does and how the real app does it

What the real app is

Everything runs locally — no cloud, no accounts. Data lives in a single SQLite file that is the system of record for three clients at once:

  1. The web app (Next.js, this UI) for daily driving.
  2. Claude Desktop, through a purpose-built MCP server exposing 16 tools (search, full profiles, agenda, pipeline, logging, profile building, action items, deals) — conversational CRM work against the same database.
  3. Claude Code sessions in the repo, directly.

Because there is only one copy of the data there is no sync and no staleness: a checkbox clicked in the app is instantly visible to Claude, and vice versa.

Features

  • Dashboard — overdue items ("your move"), pipeline summary with high-priority deals, "due for a touch" list, awaiting-other-party, log-gap reminders, active relationship cards, recent activity.
  • ✨ Intake (AI) — paste anything (a LinkedIn profile, an email thread, raw notes) and Claude extracts the person and company, researches them on the web, writes the profile sections in house style, finds connections to the existing network, and suggests tags/status/cadence and follow-ups — all on a review screen you edit and confirm before anything is saved.
  • ✎ Log (AI) — turn a meeting or email into interaction-log entries on the right contacts. Paste content, or have Claude fetch it itself from Zoom (recording transcripts) or Gmail (threads) via read-only connectors. It drafts entries, proposes next-action updates, closes stale open items, and suggests follow-ups — review before save.
  • 🗓 Prep (AI) — a 3-minute meeting brief for any contact (or auto-detected from the next 7 days of calendar): where things stand, what's changed since last touch (checked against Gmail, Calendar, and the web, with source attribution), objectives, talking points, questions, watch-outs.
  • Pipeline — kanban board of opportunities (engagements, partnerships, ventures, referrals) across consultant-shaped stages: Identified → In conversation → Scoping/proposal → Negotiating → Engaged.
  • Keep Warm — every contact scored against a per-person follow-up cadence; logging an interaction resets the clock.
  • Map — live force-directed relationship graph: people (colored by status), companies, made intros, owed intros. Hover isolates a node's network.
  • Search — one box across people, companies, notes, interactions, action items, and pipeline.
  • Actions — the full outstanding-items list in urgency buckets; check items off, reopen from "Recently completed."
  • People / Companies — rich profiles (Relationship Intelligence, Business Context, Engagement Strategy, Notes) with status pipeline, relationship strength, snapshot fields, and per-profile interaction logs. Every section is editable in place (markdown supported); cross-links between profiles work.
  • Outreach — drafts and sent messages linked to their contacts.

How the AI features work (in the real app)

The AI pages spawn the locally installed Claude Code CLI in headless mode — the same Claude subscription as Claude Desktop; no API key, no separate billing. Each feature runs with an explicit, read-only tool grant:

Feature Granted tools
Intake Web search / fetch
Log Zoom read (transcripts) or Gmail read (threads), per source
Prep Calendar read + Gmail read + web

Zoom/Gmail/Calendar access comes from claude.ai connectors already authorized for the CLI. Nothing the AI produces touches the database until it has passed a human review screen, and no granted tool can send, write, or delete anything.

What this demo changes

The demo is the same UI and the same flows with two substitutions, so it can run statelessly on Vercel:

Real app Demo
SQLite via better-sqlite3 (data/crm.db) In-memory store seeded with fictional data (lib/seed.ts) — interactive, resets when the server instance recycles
Headless Claude CLI with read-only tool grants Scripted simulations (lib/simulated.ts) with realistic canned outputs, clearly labeled

Pages, components, server actions, and the review-screen UX are otherwise the production code paths.

Run it

npm install
npm run dev   # http://localhost:3000

Deploy: import the repo on Vercel — no environment variables or database needed.

Stack

Next.js (App Router) · React Server Components + server actions · Tailwind CSS v4 · in-memory demo store (production: better-sqlite3 · headless Claude Code CLI · MCP server for Claude Desktop).

Documentation

  • Architecture — components, data flows, and the three interaction paths (browser, Claude Desktop, built-in AI), plus what the demo swaps out.