Executive Summary
A UK-based digital agency was spending the majority of its business development time on low-value, repetitive tasks: manually searching Google Maps for prospects, copy-pasting contact details, guessing at each website’s technical health, and writing cold outreach from scratch. The result was an inconsistent, slow pipeline with little data behind targeting decisions.
We designed and built a fully integrated, AI-augmented sales operations platform on top of an open-source CRM. The system automatically discovers leads from location-based search campaigns, enriches each record with live company registry data, scores every prospect’s website against a 1,000-point technical audit model, and feeds the findings directly into LLM-generated outreach copy — all without a human touching a keyboard until the moment of sending.
The Challenge
The agency’s business development process had three compounding problems:
- No Systematic Discovery: Prospects were identified ad-hoc, through word of mouth or manual Google searches. There was no repeatable process for finding businesses in a given industry or geography.
- No Qualification Signal: Without a way to assess a prospect’s website health at scale, the team had no objective basis for prioritising who to contact first. Cold calls went to anyone — including businesses with perfectly healthy websites that had no need for the agency’s services.
- Generic Outreach: Because lead research was time-consuming, outreach emails were templated and impersonal. Open and reply rates suffered accordingly.
The Solution
We built a modular, event-driven pipeline layered on top of an open-source CRM, with no bespoke infrastructure beyond a home-hosted automation server.
Search Triggered
Starts discovery campaign
Click to inspect parameter details & payload
Google Maps Crawler
Scrapes location domain URLs
Click to inspect parameter details & payload
CRM Record Created
Registers company in Twenty CRM
Click to inspect parameter details & payload
Companies House Eng
Pulls registration & SIC codes
Click to inspect parameter details & payload
Website Audit Created
Queues frontend audits
Click to inspect parameter details & payload
Firecrawl Scraper
Extracts page copy & tags
Click to inspect parameter details & payload
PageSpeed Insights API
Audits speed, SEO & accessibility
Click to inspect parameter details & payload
Scoring Engine
Weights parameters out of 1,000
Click to inspect parameter details & payload
LLM Summariser
Translates errors into issues
Click to inspect parameter details & payload
Scored CRM Record
Combines data inside CRM
Click to inspect parameter details & payload
Outreach Draft Created
Drafts tailored cold outreach
Click to inspect parameter details & payload
If: Hot LeadKey Architectural Components
-
Paginated Lead Discovery: A serverless workflow function queries the Google Maps Places API in batches, using pagination tokens to walk through hundreds of results for any given industry/location combination. Leads are deduplicated by place ID before any record is created.
-
UK Company Registry Enrichment: On each new company record, a triggered workflow queries Companies House in real time, pulling VAT number, SIC codes, incorporation date, and company status. Records that match a registered entity are automatically flagged with verified business data.
-
1,000-Point Website Audit Engine: A multi-step n8n workflow fires on every new website audit record. It chains Firecrawl (full page scrape and metadata extraction), Google PageSpeed Insights (performance, mobile, SEO, and accessibility scores), and a deterministic scoring algorithm across three weighted dimensions — Technical Foundation (400 pts), On-Page Basics (300 pts), and SEO Signals (300 pts). Lower scores indicate more problems, and therefore better sales opportunities.
-
LLM-Generated Issue Summaries: After scoring, the raw findings are passed to a Claude model via OpenRouter. The model translates technical deficiencies into plain-language business impact statements — the exact language a sales rep needs to write a credible, specific cold email.
-
CRM-Native Review Interface: All enriched, scored, and summarised records surface inside the CRM’s standard view. Sales reps work entirely within a single UI — filtering by score, reading AI-generated issue briefs, and triggering personalised outreach from the same place they manage the pipeline.
The Outcomes
- 80% Reduction in Manual Research: A discovery campaign that previously took a full day of manual searching can now be configured, launched, and fully enriched in under an hour — with no human input during execution.
- Objective Prospect Prioritisation: Every lead carries a quantified website health score. Sales effort is now concentrated on the businesses with the most headroom for improvement and the clearest need for the agency’s services.
- Personalised Outreach at Scale: LLM-generated summaries give each sales rep a specific, technically credible starting point for every cold email — without requiring them to visit or assess the prospect’s website themselves.
- Verified Business Data: Companies House integration means the team knows which prospects are actively trading, their industry classification, and their registration status before a single conversation takes place.
Technology Stack
- CRM Platform: Twenty (open-source, self-hosted), extended via the Twenty SDK
- Automation Layer: n8n (self-hosted workflow automation), triggered by CRM webhooks
- Languages: TypeScript (CRM extension), JavaScript (workflow functions)
- External APIs: Google Maps Places, Google PageSpeed Insights, Firecrawl, Companies House
- AI Engine: Claude (via OpenRouter) for natural language issue summarisation
- Infrastructure: Docker Compose, PostgreSQL 16, Redis, Traefik reverse proxy