AISoftwareSaaS5-stage automated pipeline

Canvass — AI Outreach Platform

Built Canvass, a fully autonomous B2B outreach platform that discovers leads via Google Maps, scores website quality with AI vision, and generates hyper-personalized cold emails — replacing weeks of manual prospecting with a 5-stage automated pipeline.

PythonFastAPIClaude APICeleryRedisPostgreSQLReactPlaywrightSendGridDocker
0+
Qualified leads/day
0
Fully automated stages
0×
Reply rate vs. templated outreach

Canvass: From Google Maps to Personalized Cold Email in Minutes

The Problem

Finding quality leads is slow, qualifying them takes judgment, and writing good cold emails requires actual research. Most outreach tools automate the sending — not the thinking. The result: templated blasts that get ignored.

The Solution

We built Canvass, a fully autonomous lead intelligence and outreach platform that handles the entire pipeline — no human in the loop required.

The system runs five stages end-to-end:

  1. Discover — queries Google Maps Places API by industry, city, and radius, caching results in Redis to avoid redundant API calls and deduplicating leads by normalized domain
  2. Analyze — uses Playwright to capture full-page screenshots, then hits Google PageSpeed Insights for mobile/desktop performance scores, SSL status, and UX heuristics
  3. Qualify — computes a composite quality score (0–100) and skips businesses with well-built sites, focusing outreach only on the leads most likely to need help
  4. Write — sends the screenshot + performance data + business context to Claude's vision API, which generates a personalized subject line and email body referencing the target's specific website issues — never templated
  5. Send & Track — delivers via SendGrid with per-email tracking pixels; webhooks capture opens, clicks, and bounces; hard bounces are permanently suppressed

A React dashboard shows the full pipeline in real time via WebSocket, with charts for email engagement, AI token cost, and campaign throughput.

Key Engineering Decisions

Phase-based rate limiting prevents sender reputation damage during warmup. New campaigns start at 10 emails/day, auto-advancing to 20 then 50 over two months — configurable per campaign with Redis-backed daily counters that respect the campaign's timezone.

AI vision for qualification, not just copy — rather than using AI only for email writing, Claude analyzes the screenshot to identify which problems to lead with. A plumber with a 23 mobile performance score gets a different email than one with poor CTAs but fast load times.

Multi-industry support with per-vertical prompt tuning covers 10+ local service industries (plumbers, contractors, electricians, concrete coating, etc.) plus a separate B2B hardware sales mode that integrates with Apollo and Lusha to target on-premise infrastructure decision-makers by title, company size, and industry on-prem dependency score.

The Results

  • Fully autonomous — a campaign configured once runs on cron schedule with zero manual intervention
  • 3× higher reply rates compared to templated cold email, driven by AI personalization referencing real website issues
  • 50+ qualified leads/day at full throughput, with automatic skipping of businesses that don't need the service
  • Complete cost visibility — every Claude API call logged with token counts and dollar cost, making the unit economics of outreach measurable

Tech Stack

FastAPI · Celery · Claude Vision API · Playwright · Redis · PostgreSQL · React · SendGrid · Docker Compose


Build something like this →

Want results like these?

Let's talk about your project.

Get in touch →