Skip to content
AspirecoStart
All systems

14AI marketing

Growth Engine

AI lead discovery, audit and compliant outreach

Outbound where the compliance gate is code, not a paragraph in a prompt.

Status
Built, pre-launch
Period
2026
Relationship
In-house venture
Site
Private
Available as
  • Retainer
  • Build for you

The pipeline

  1. 01 DiscoverPlaces sweeps chosen niches on a weekly rotation
  2. 02 IntakeWebhook validates, deduplicates, assigns lead IDs
  3. 03 AuditHomepage fetched and scored on six dimensions
  4. 04 DraftModel writes; banned phrases checked afterwards
  5. 05 ApproveA human taps approve before anything sends
  6. 06 SendWorker sends, sweeper retries, stage board tracks
  • 6
    dimensions scored per audit
  • 13
    workflows in the acquisition estate
  • 5
    service lines routed deterministically
  • 0
    email addresses ever guessed

The problem

Outbound has two failure modes and neither is copywriting. Buying a list is how a Canadian business meets CASL from the wrong side, and letting a model write freely is how it invents a promise somebody then has to honour.

What we built

  1. 01

    Swept Ontario niches through Google Places on a weekly rotation — open businesses with a website only — into an intake webhook that validates, deduplicates and assigns a lead ID before anything downstream sees it.

  2. 02

    Scored each site on six dimensions — first impression, mobile, search, call to action, trust and booking flow — returning three issues, three recommendations and one hook from a homepage fetch that is capped and stripped before the model reads it.

  3. 03

    Kept qualification deterministic and replayable: a nought-to-hundred score from rating, review volume and business type, routed to one of five service lines with its own deal band. No model, no network, same answer every time.

  4. 04

    Put compliance in code rather than in a prompt. An address has to be published on the prospect's own site with the source URL kept as evidence; guessed and suppressed addresses fail closed; the unsubscribe footer and mailing address are appended deterministically; a banned-phrase check runs after the model, not instead of it.

  5. 05

    Left a person on the send button — every draft waits for an approval tap in chat or the admin queue before the mail worker touches it.

  6. 06

    Fed the same funnel from a self-serve audit form, a retrieval-backed chat widget and an email list on infrastructure we own, with the Next.js app as the source of truth and the workflow engine demoted to a stateless task runner called by webhook.

Stack

  • Next.js
  • TypeScript
  • n8n
  • Supabase
  • PostgreSQL
  • pgvector
  • Google Places API
  • OpenRouter
  • Chatwoot
  • Listmonk
  • Railway

Ideal for

Service businesses selling into a defined local market who want a real pipeline without buying a list or breaking CASL.

Next system

Distributor OS

four-portal distribution platform on one ledger

Scope a build like this