Turn an ICP into enriched leads and personalized outreach, on autopilot.
An AI sales-development engine that takes an ideal-customer profile, sources and enriches matching leads, writes a personalized message for each one with an LLM, runs it through a quality and compliance check, and sends it. It replaces the manual grind of a human SDR: research, list-building, writing, and follow-up.
A working demo of the core loop, built as a Next.js dashboard:
- Lead management. An ICP-driven lead feed and lead table backed by Prisma and Postgres.
- AI campaign generation. A personalized message per lead via OpenAI, with one-click regeneration.
- Enrichment. Fills in lead records before outreach.
- Sending. Dispatches through Resend.
- ROI view. Models the time and cost saved versus doing it by hand.
The diagram above is the full production architecture the demo is built toward: n8n workflow orchestration, BullMQ worker pools with a dead-letter retry queue, lead sourcing (Apollo, ZoomInfo, LinkedIn), enrichment (Clearbit, Hunter), CRM sync (Salesforce, HubSpot, Pipedrive), and Prometheus/Grafana monitoring.
Next.js 16 · React 19 · TypeScript · Prisma · PostgreSQL · OpenAI · Resend · Tailwind · Zod
cd app
npm install
npm run db:reset # set up the database and seed demo data
npm run dev # http://localhost:3000Set OPENAI_API_KEY, RESEND_API_KEY, and DATABASE_URL in .env.
