Case Study

Three days of research,
under an hour.

Two tools that find, qualify, and reach branding leads. A Python CLI pipeline for bulk prospecting via Google Maps and Claude scoring, plus a browser-based interface for on-demand prospect discovery and cold email drafting, all powered by the Claude API.

Status Live · Internal
Client JQ Internal
Category Lead Generation
Built 2026
At a glance

What is AI Client Acquisition System?

The AI Client Acquisition System is a two-part internal toolset for finding businesses that need branding work. The first part is a Python CLI pipeline that searches Google Maps by industry and location, scores each lead with Claude AI on a 0-100 scale, and stores everything in a local SQLite database for review. The second part is a browser-based prospecting interface that connects directly to the Claude API: the user picks a niche and region, Claude finds and qualifies prospects in real time, then drafts personalised cold emails ready to send via Hotmail or Gmail.

The Problem

What was broken.

Before this system existed, finding prospects for branding work was a three-day process. Search Google Maps by industry (real estate, restaurants, startups). Open each result. Check their website (or absence of one). Check their Instagram. Check their LinkedIn. Make a judgement call: does this business actually need a new brand identity, or is their existing one good enough? If yes, draft a personalised outreach message referencing something specific about them. Then repeat, for three days, to land maybe 30 qualified leads.

The scoring was the real bottleneck. Not the searching. Anyone can find 500 restaurants in Porto in 10 minutes on Google Maps. But turning 500 cold results into 30 qualified prospects requires judgement on each one, and judgement at that volume is exhausting. Most of the leads get mentally lumped into "maybe" and forgotten.

And even after the leads were qualified, there was a second bottleneck: writing the outreach. A good cold email has to reference something specific about the prospect, not just a generic "I do branding" pitch. Writing 30 personalised emails after spending three days scoring leads is the part that breaks the routine.

The Approach

What was built.

The solution split into two tools, each built for a different mode of prospecting.

The CLI pipeline handles bulk prospecting. It delegates the searching to Google Maps and the judgement to Claude. The user runs a command like "search --industry real_estate --location Porto" and the system pulls every matching business, scrapes their web presence, and sends each one to Claude for scoring on a 0-100 rubric. No website is a strong positive signal (80-100), a basic website with weak branding is warm (60-79), an established brand is cold (40-59), and anything below 40 is filtered out. The top leads appear in a Rich-powered terminal dashboard, already annotated with reasoning, ready to review and export.

The browser interface handles on-demand prospecting. It connects directly to the Claude API from a single HTML file. The user picks an industry niche and target region, Claude finds and qualifies real companies in that sector, and then drafts a personalised cold email for each one. The emails are ready to open directly in Hotmail or Gmail with subject, recipient, and body pre-filled. A built-in history tracker excludes previously contacted companies from future searches, so no prospect gets emailed twice.

Everything stays local. The CLI stores data in SQLite. The browser tool stores the API key and contact history in localStorage. No cloud backend, no third-party dashboard.

How It Works

Architecture in plain English.

01
Industry + location search
The CLI pipeline searches Google Maps by industry and location, pulling every matching business. The browser interface lets the user pick a niche and region, then Claude finds and qualifies companies in real time.
02
Enrichment + scoring
The CLI scrapes each business website and feeds the data to Claude for 0-100 scoring with a written rationale. The browser tool has Claude assess each prospect inline as part of the discovery step.
03
Personalised outreach
Claude drafts a cold email for each qualified lead, referencing something specific about the business. The browser tool pre-fills subject, recipient, and body, ready to open in Hotmail or Gmail.
04
Review + export
The CLI offers a Rich-powered terminal dashboard to review, approve, or reject leads, then exports approved ones as CSV. The browser tool tracks contact history in localStorage and excludes previous prospects from future searches.
05
No duplicates
Both tools track which companies have already been contacted. The CLI uses SQLite exclusion lists. The browser tool uses a persistent history log, so no prospect is emailed twice.
Try It

See it in action.

Sample lead scoring

This is a sample. The live system processes real data from Google Maps.

Stack

Built with.

Python 3 Claude API Claude Sonnet 4.6 Google Maps API SQLite Rich (terminal UI) Vanilla JS (browser interface) localStorage python-dotenv CSV export
Outcomes

What changed.

3 days → 1 hour research time
500 → 30 raw to qualified leads
0–100 Claude-scored rubric
1-click send email to Hotmail or Gmail

The most valuable thing this system produces is not the leads. It is the ability to follow up every two weeks with a fresh list, sourced from a different industry or location, without dreading the research or the email writing. The CLI handles bulk prospecting when volume matters. The browser tool handles quick, targeted sessions when a specific niche or region comes to mind. Together, they keep the pipeline moving while a human focuses on the conversations that matter.

Free Consultation

Want a system
like this one?

Book a free 30-minute call. We map your situation, scope a similar build, and agree on a fixed quote before anything starts.

Book Free 30-min Call