Work / Case study

Local Website Outreach Pipeline

In progress Updated October 18, 2026 Python

A pipeline that finds Florida small businesses with missing or broken websites, builds two sample sites for each from public facts, publishes them for preview and runs compliant email outreach.

Source code is private. Walkthroughs are available on request.

671businesses screened
130sample sites generated
8website checks per business screened

Business impact

Turns a manual prospecting job (search, check each site, write a pitch, mock up a design) into a repeatable pipeline: one source-fact file per business produces two working sample sites and a personalized email, with checks at each step.

Problem

Many local trades and service businesses have no website, a builder placeholder, or a site with broken links and phone numbers. Pitching them one at a time with generic mockups is slow and rarely specific enough to be useful.

Solution

Built a screening script that pulls businesses from OpenStreetMap and checks each listed website (reachable, HTTPS, mobile viewport, tap-to-call, contact form, builder, copyright year). Qualified businesses get a source-fact file, and a generator turns each one into a one-page and a five-page static site. Every page passes automated checks, then deploys to Cloudflare as a private, noindexed preview. Outreach goes through a transactional email API with suppression, bounce stop rules, unsubscribe links and a postal address in every message.

Results & highlights

  • Screened 671 businesses across three Florida counties; 217 listed a website and 175 were checked automatically
  • Generated sample sites for 65 businesses (130 builds, one-page and five-page), plus 3 fictional demo businesses
  • Automated page audit with Playwright: one h1 per page, labeled form fields, no horizontal overflow, noindex and a sample banner on every page
  • Every factual claim about a business's current site is verified, then checked by an independent reviewer before any email goes out
  • Deliverability guardrails: suppression list, hard-bounce stop rule, sender-domain authentication and a per-message unsubscribe link

Competencies demonstrated

  • Data collection & screening: Python scripts that pull business listings and check each website for HTTPS, mobile viewport, tap-to-call links, contact forms and site builder.
  • Static site generation: One JSON source file per business produces a one-page and a five-page site with local-business structured data.
  • Automated QA: Playwright audit of every page plus a separate human-style review of every factual claim before sending.
  • Email deliverability & compliance: Authenticated sender domain, suppression list, hard-bounce stop rule, unsubscribe link and postal address in every message.
  • Cloud deployment: Push-to-deploy static hosting on Cloudflare Workers with site-wide noindex headers.

Architecture

  1. OpenStreetMap pullthree Florida counties
  2. Website screenHTTPS, mobile, tap-to-call, builder
  3. Source-fact fileone JSON per business
  4. Site generatorone-page + five-page builds
  5. Playwright auditthen noindexed preview deploy
  6. Email outreachsuppression and bounce rules
Design-level view. Hostnames, addresses and account details are intentionally omitted.

Notes

  • Sample sites for real businesses are private previews and are not linked here; anonymized screenshots are in the redesign concepts section of the Work page.
  • Source code is private. Walkthroughs are available on request.

Next: License Exam Prep →