B2B Lead Scraper
Built for
Anyone who needs fresh B2B leads - without buying stale lists
Pick a country, cities and industry. The scraper finds every matching business, visits their websites, extracts emails, and hands you an Excel file - ready for outreach in minutes.
What we built
An assistant that finds B2B contact data so you don't have to
Bought lead lists are always stale and never quite match your target area. The scraper builds fresh lists for any country and industry, straight from live sources - with emails extracted from company websites, integrated web auditing and instant export.
- Country → region → city selection from the GeoNames database (worldwide)
- Company search by industry and custom keywords
- AI (Claude Haiku) auto-suggests 15 relevant search keywords for the chosen industry
- Automatic website visits per company and email extraction
- Advanced filters: minimum rating, review count, mandatory email, website type
- Live tracking via SSE - new companies appear in the table in real time
- Checkpoint system - jobs can be paused and resumed without any data loss
- Per-company web audit: mobile, HTTPS, Google Analytics, CTA, platform
- CSV / XLSX export ready to import into InboxIQ or any CRM
Search setup
Choose industry, keywords and cities - in a few clicks
Select your country and cities from the GeoNames list, pick an industry from a pre-configured dropdown, and add search keywords. If you're not sure what to enter, hit "Suggest" and the AI generates 15 relevant English terms - optimised for the business data API.
Live progress
Watch the search in real time - every business appears as it's found
Via SSE (Server-Sent Events), each new business appears in the table instantly - no page reload. The progress bar shows the percentage complete, how many companies have been found and how many unique emails collected - all live. You can pause and resume at any point without losing the data already collected.
AI suggestions
Claude generates your keywords - no guesswork needed
Press "Suggest" and Claude Haiku analyses the chosen industry and returns 15 English keywords, optimised for the RapidAPI business database. The feature is optional - if you have an Anthropic API key, enable it in settings and it's ready instantly.
Collected results
Name, email, phone, website and rating - in a single table
The results table shows for each business: company name, contact email, phone number, website, physical address, Google rating and review count. When done, download everything as CSV or XLSX, ready to import into InboxIQ or any CRM - no manual steps.
Search history
All generated lists, with stats and download options
The "Lists" page keeps the full history of every search job: how many companies it found, how many unique emails, current status (completed / stopped / running). From there you can re-download the CSV or XLSX, restart a paused job, or delete old lists. Everything stored locally - no data ever leaves your machine.
Responsive interface
Works on mobile too
Though a desktop tool by nature, the Flask interface is built with Bootstrap and is fully responsive - you can start a search, track progress or download results from your phone, without installing anything.
Runs locally on your machine at localhost:5000 - no cloud server, no subscription, no usage limits imposed by us.
Why it matters
The advantages over bought lists
Geographically precise
Select the exact country, region and cities you want from the GeoNames database - covering the entire globe. No more receiving companies from the wrong area or the wrong industry.
Always fresh
Lists are generated live from RapidAPI Business Data, not from stale exports. Every search returns current information - addresses, phones, websites, ratings.
Real emails
Beyond the database email, the scraper visits each company's website and looks for emails on the homepage and /contact page. The result is more complete than any commercial database.
Integrated with InboxIQ
The CSV/XLSX export imports directly into InboxIQ for email campaigns or into AI Cold Calling for automated calls. The three tools form a complete pipeline from data to conversion.
Tech stack
Lean, fast, no heavy dependencies
Backend
- Python 3.12
- Flask 3.0
- Gunicorn 22.0 (production)
- Requests 2.32 (scraping)
- OpenPyXL 3.1 (Excel export)
- SSE - real-time progress
Data & storage
- SQLite (GeoNames local)
- JSON (jobs_state.json)
- JSON checkpoint per job
- CSV results (live update)
- CSV audit UX + marketing
Frontend
- Bootstrap 5.3 (UI)
- HTML5 + CSS3
- Vanilla JS
- EventSource (SSE client)
- Fetch API
External APIs
- RapidAPI - Business Data
- RapidAPI - LinkedIn (optional)
- Anthropic Claude Haiku (optional)
- GeoNames.org (offline)
Notable architecture
- SSE (Server-Sent Events) - live progress without polling or WebSockets
- Per-job checkpoint system - jobs can be resumed at any point without data loss
- Per-company email scraping: homepage + /contact page, regex extraction
- Automatic deduplication at email and company level within each job
- Web audit in two separate scores: UX/design and digital marketing
- Claude Haiku optional - only activated if the user supplies an API key
Feeds our own outreach stack - lists generated here go directly into InboxIQ for email campaigns and into AI Cold Calling for automated calls.