Featured Project

Business Listings Dashboard — Google Maps Lead Scraper

Full-stack lead generation platform: Selenium scraper with anti-detection extracts 500+ listings into MySQL with automatic deduplication, surfaced through a React.js analytics dashboard.

FastAPIReact.jsViteSeleniumMySQLSQLAlchemyRechartsSlowAPI
TL;DR

Full-stack lead generation platform: Selenium scraper with anti-detection extracts 500+ listings into MySQL with automatic deduplication, surfaced through a React.js analytics dashboard.

The Problem

Small businesses and marketing agencies need lead data from Google Maps, but manual collection is tedious and existing tools are expensive or unreliable.

My Solution

A full-stack lead generation platform that automates Google Maps data extraction and presents it through an interactive analytics dashboard.

Technical Architecture

Scraper Engine

Selenium with anti-detection: custom user-agent rotation, webdriver flag removal
Incremental JSON caching every 10 entries prevents data loss on crash
Configurable search radius and category parameters
Rate limiting to avoid detection

Database Layer

MySQL with unique constraint on business name + phone for automatic deduplication
SQLAlchemy ORM with connection pooling
Efficient bulk insert with conflict resolution

API Layer

FastAPI REST API with API key authentication
SlowAPI rate limiting (5 req/min scrape, 10 req/min bulk insert)
Paginated responses with filtering and sorting

Frontend Dashboard

React.js with Vite for fast builds
Recharts visualizations: city/category/source distribution charts
Real-time search, multi-filter, pagination, CSV export
Responsive design with Tailwind CSS

Key Metrics

500+ listings extracted per session
Zero duplicate entries through constraint-based dedup
5 req/min rate limiting on scrape endpoints for safety

Like what you see?

I can build systems like this for your team. Let's discuss how my skills match your engineering needs.