Back to projects
Shipped · Live Project 02 / 13

GTM Growth Engine

A self-hosted outbound prospecting engine that discovers, classifies, and enriches private-lender prospects end-to-end. A Python worker runs scheduled classifiers, a Postgres warehouse holds 9,000+ scored prospects, and a Next.js dashboard drives the pipeline — from web-scrape detection to AI-drafted cold outreach.

Python PostgreSQL Next.js Docker Traefik
Role
Solo design & build
Scale
9,000+ scored prospects
Stack
Python · Postgres · Next.js
Status
Live on VPS

01 Overview

Filling the top of the sales funnel with qualified private-lender prospects normally needs a sales-ops team and a stack of paid SaaS tools. The GTM Growth Engine does it solo: it discovers prospects, classifies whether they're a real lender, enriches them with business detail, scores them against an Ideal Customer Profile, and drafts cold outreach — all self-hosted.

It evolved out of — and absorbed — an earlier HubSpot lead-loading pipeline that built a pre-associated, deduped cold-outbound queue. What started as a loader became a full prospecting engine: one system that owns discovery, classification, enrichment, scoring, and outreach drafting from end to end.

02 How it works

A Postgres 16 warehouse is the system of record. A lender_type detector runs regex over scraped site HTML, then an LLM enrichment layer adds loan products, fund status, jurisdictions, and tech-stack detection — reaching ~99% coverage of the prospect base. An APScheduler-driven Python worker runs 13 chained classifiers on a schedule; search-API-powered discovery finds new prospects; and cold-email and sequencing integrations handle outreach.

A Next.js dashboard sits on top to drive and monitor the pipeline. The whole stack is Dockerized behind a Traefik reverse proxy on a Tailscale-meshed VPS — the same production posture as any other service I run.

03 Engineering highlights

  • Postgres 16 warehouse with a regex lender_type detector plus an LLM enrichment layer at ~99% coverage of the prospect base.
  • APScheduler-driven Python worker running 13 chained classifiers on a schedule, keeping every prospect continuously re-scored.
  • Search-API-powered discovery plus cold-email and sequencing integrations for end-to-end outreach — from finding a prospect to drafting the first touch.
  • Subagent web-check classifier used as the gold-standard ICP method — strict-JSON verdicts at ~96% precision on edge cases.
  • Fully Dockerized stack behind a Traefik reverse proxy on a Tailscale-meshed VPS, with a Next.js operator dashboard driving and monitoring the pipeline.

04 Outcome

Why it matters

A one-person outbound machine that fills the top of the funnel without a sales-ops team — replacing a stack of paid tooling and manual research with one self-hosted pipeline.