From Business Directory to Sales Pipeline
A lead-sourcing CRM we built for our own outbound sales
Prospect lists lived in browser tabs and spreadsheets. We built one tool that finds companies by sector, lets a person qualify each one in seconds and tracks it to a deal.
What we needed
Outbound sales starts with a list, and building ours meant hours of clicking through directory pages, opening each company's website and copying details into a spreadsheet. Half the rows were dead ends, and nobody could tell which companies had already been contacted. So we built the tool we wanted. It pulls companies from a public business directory by sector and city, shows them one at a time next to a live preview of their website, and turns a yes into a CRM record with an automatic website audit attached. Qualifying a company now takes a glance and one click instead of five tabs.
Constraints we had to design around
- 01
Scraping politely
A directory is someone else's server. Requests had to be paced with random delays, resumable page by page, and stoppable at any moment.
- 02
Messy source pages
Listing and detail pages change and vary. Extraction reads structured data (JSON-LD) first and falls back to HTML parsing, and checks it got the page it asked for.
- 03
Human judgement stays in the loop
Automation finds companies; a person decides who is worth a call. The review screen had to make that decision fast without hiding the evidence.
- 04
No duplicates, no lost notes
The same company shows up under several sectors and searches. Every record had to stay unique, with its notes, contacts and status in one place.
Architecture and what we shipped
- 01
Async scraper per sector and city
An httpx scraper walks 50 predefined sectors, optionally narrowed to a city, as background jobs with live progress, stop and resume.
- 02
Review queue with a website preview
One company at a time with its directory details and its own website shown inline. Four decisions: top priority, standard, SEO prospect or decline.
- 03
Automatic audit on approval
Approving a company with a website starts a run of our [SEO + GEO audit tool](/portfolio/seo-geo-audit-tool). The score and report link land on the CRM record.
- 04
Enrichment where it helps
Website languages detected from hreflang, html lang and URL paths; phone, email, LinkedIn and free-text notes editable on each record.
- 05
CRM statuses and exports
Every approved company carries a status from open to closed. Companies can also be added by hand, and the pipeline exports to Excel and XML.
Shipped in three phases
Get the data, make the decision fast, then connect it to the rest of the sales process.
-
Phase 1
Scraper
Sector catalogue, polite async scraping, deduplicated SQLite store
-
Phase 2
Review flow
One-at-a-time queue, website preview, decisions and manual entry
-
Phase 3
CRM layer
Audit integration, statuses, notes, contacts and Excel/XML export
What shipped
Searchable by city, scraped in the background with stop and resume
To qualify a company, with its website open next to the decision
Every approved website is scored before the first call
Questions about lead-sourcing tools
Is it legal to scrape a business directory for leads?
Public company listings are business data, but the directory's terms, request rate and GDPR still apply. We pace requests, store only company contact details and keep a person deciding who is contacted. Check the source's terms before you build.
Why build this instead of buying a lead database?
Bought lists are generic and go stale. A custom tool targets exactly the sectors and cities you sell to, attaches your own qualification signal (here, a website audit) and keeps the history of every company in one place.
Can the same approach work with our CRM?
Yes. The review queue and enrichment are the valuable part; the store can be HubSpot, Pipedrive or Attio via their APIs instead of SQLite and Excel exports.
How long does a tool like this take to build?
A scraper, review queue and export for one source is a few weeks of senior work. Each extra source or integration adds days, not weeks. We quote a fixed price after a free scoping call.
Building prospect lists by hand? Turn it into a tool.
Show us where your leads come from and how you qualify them. We'll quote a fixed price for the tool that does the clicking.