| Workflow engine, Phase 1 | n8n (self-hosted, EU) | Visual, fast to iterate, self-hostable for compliance, validated the pipeline on real prospects in week one |
| Frontend, Phase 2 | React 19 · Vite 7 · TypeScript 5.7 strict · TanStack Router · Tailwind v4 · Shadcn UI | Strict-typed, reactive UI. ai-sdk/react streams generation traces directly into the screen. ~16 routes, ~212 .tsx files organised by feature. |
| Backend, Phase 2 | Convex (database + functions + auth + scheduler + cron + file storage) | One platform. Reactive subscriptions remove polling. Argument-validated mutations. Zod schemas reused server-side. ~212 TypeScript files in /convex; 38 tables. |
| Forms + validation | react-hook-form + Zod | Same Zod schemas reused as Convex argument validators — one source of truth across client and server. |
| Orchestrator LLM | Anthropic Claude (Opus / Sonnet, cache-control: ephemeral) | Long-context reasoning for run planning. Prompt caching keeps the orchestrator cheap when the tool catalogue is stable. |
| Judges + drafting + voice | OpenAI GPT-4o + GPT-4o-mini (Vapi-compatible) | Structured judgement output, fast drafting, native compatibility with the Vapi voice agent. |
| Second judge + ICP scoring | Google Gemini (1.5-pro for verdicts, Flash for speed) | Second independent verdict for the dual-LLM judge layer. Cheap pre-filtering at scale. |
| Research subagent | Perplexity (sonar / sonar-pro with citation tracking) | Live-web grounded research with traceable citations — feeds into research_agent subagent. |
| Scraping + reading + LinkedIn | Firecrawl · Jina · Bright Data · Serper | Stateless API calls for site crawl, page reading, LinkedIn lookup, and Google SERP. firecrawl_cache table avoids re-scraping. |
| Channels | Gmail OAuth · Telegram Bot API + QR · WhatsApp Business API · Vapi (voice) · Resend (email) | All wired into Convex actions + http endpoints. Webhook close-out for async voice calls. |
| AI infrastructure (Convex addons) | @convex-dev/agent · @convex-dev/rag · @convex-dev/auth · @convex-dev/workpool | Agentic workflows + threads, knowledge-base retrieval, Resend OTP + sessions, concurrency caps on parallel work. |
| Hosting / data residency | EU regions | GDPR by design. Convex deployment region matches Marlowe's data residency requirement. |