ColdStart
Runs itself daily, no review step

An outreach pipeline you leave alone.

Find local businesses ranking weak on Google. Score their site. Find the email. Write the pitch. Send it, follow up once, log everything. ColdStart does the whole loop on a cron and leaves you a dashboard to read.

Screenshot of the ColdStart operator dashboard

How it works

Five stages, each one bounded so a single run always finishes.

  1. 1

    Discovery

    Google Places sweeps every active industry and city pair, paginating past the businesses already winning page one. It runs on its own endpoint and its own daily call budget, so a Places outage never stalls the rest.

  2. 2

    SEO scoring

    Each lead gets a 0–100 weakness score from search position, reviews, rating and on-page signals. Anything already ranking well is suppressed before it reaches generation.

  3. 3

    Scraping

    The site is fetched and mined for a contact address. Businesses with no website get an email search instead. Leads with no discoverable email are dropped and never re-added.

  4. 4

    Generation

    A model writes the subject and body under strict rules: one specific detail from their own site as the opener, three to five sentences, no corporate filler.

  5. 5

    Sending

    Emails go out via Resend, weakest sites first, inside a daily cap, with exactly one follow-up seven days later. Opens, bounces and complaints feed straight back into suppression.

What it writes

One real detail from their site, three to five sentences, nothing else.

dispatch@ironwoodplumbing.comOpened · 09:41
your third page on Google

Saw the 2018 kitchen remodel gallery on ironwoodplumbing.com — the before and after shots are better than anything on page one for "plumber Houston". The site is what's holding it back: no meta description, no mobile viewport tag, and the homepage takes about six seconds to load on a phone. That's most of the gap between you and the shops above you. I build sites for trades businesses and fix exactly this. Worth fifteen minutes?

Built on

Next.js 16, App Router, TypeScript, Tailwind CSS v4
Neon serverless Postgres via plain pg, no ORM
Google Places API (New)
DeepSeek API for generation and niche expansion
Resend, with an engagement webhook
GitHub Actions daily cron, deployed on Vercel

Run your own

Bring a Neon database, a Google Places key, a DeepSeek key and a verified Resend domain, set the environment variables from the README, and the daily GitHub Action takes it from there.

git clone github.com/Jephtaah/ColdStart.git
cd ColdStart
npm install
npm run dev