AI-powered CRM · client prospecting
MilLead

Problem
Prospecting clients for the agency was manual: finding businesses with weak websites, assessing each one and writing every outreach from scratch.
Solution
A complete internal CRM: kanban pipeline, automated website audits (performance, SEO, security), and AI that scores leads, writes outreach and generates demo landing pages publishable in one click.
Internal CRM used in MilWeb's own prospecting.
How it was built
A pnpm + Turborepo monorepo with an Express API in Clean Architecture (domain/application/infrastructure/interfaces) and a Next.js 15 web app. Multi-tenant via discriminator column with RLS enabled on every Postgres table (Supabase), JWT auth with atomic refresh-token rotation, and RBAC with a per-role permission catalog.
The differentiator is the automated prospecting funnel: a BullMQ worker (Redis/Upstash) fetches the prospect's website and runs ~30 custom checks across 6 categories (performance, SEO, accessibility, security, mobile, design), every score explainable check by check. Those findings feed the AI (Claude, official SDK): a 0-100 opportunity score with rationale, per-channel personalized outreach drafts, and an executive lead report.
The funnel closes with AI-generated landing pages: a single self-contained HTML file (no JS, no external resources) built from the company data and the audit, served at a public URL with a non-enumerable slug and a view counter. It's the "here's what your website could look like" demo the agency sends to prospects.
Custom website audits
~30 checks across 6 categories via a BullMQ queue, with no external API and scores explainable check by check.
AI applied to sales
Opportunity scoring, outreach and reports with Claude, using lead + company + audit as context.
AI-built landing pages
Self-contained HTML generated on demand and published at a public URL with a view counter.
Secure multi-tenant
organizationId on every table + Postgres RLS, JWT with atomic refresh-token rotation, and RBAC.
More screens
Stack
- Next.js
- Express
- PostgreSQL
- Prisma
- BullMQ
- Claude API















