Web scraping & data collection
Tell me what data you need, I'll build a system that collects it automatically.
I build web scrapers and data pipelines that pull information from websites, clean it up, and deliver it in a format you can actually use — on a schedule, without anyone doing it by hand.
Sound familiar?
Manual data collection doesn't scale
Most businesses that come to me are dealing with one of these problems.
- Someone on your team spends hours a week copying information from websites into a spreadsheet.
- You need to track competitor prices or listings, but checking manually doesn't scale.
- You need the same kind of information from several different websites, pulled into one place.
- Your data goes stale because nobody has time to refresh it regularly.
- You don't have the time, or the in-house skills, to build and maintain a scraper yourselves.
These are automation problems, not staffing problems. A system that collects the data for you removes the manual work entirely — and keeps running long after the initial setup.
What I do
Practical outcomes, not just scripts
Every service below is about what you get, not the tools used to build it.
Web scraping
Turn any public website into structured data you can actually use.
Automated data collection
Data collected on a schedule, without anyone lifting a finger.
Competitor monitoring
Track competitor prices, listings or content over time.
Lead & data extraction
Collect relevant, publicly available business information.
Data cleaning & transformation
Messy scraped data, turned into a structured dataset.
Data delivery
Delivered in the format you actually need.
Custom data pipelines
For requirements that need more than a single scraper.
Process
How it works
Tell me what data you need
You describe the data, the source websites, and how often you need it. I confirm it's feasible and appropriate to collect.
I build the data collection system
A scraper or pipeline built for your specific sources — not a generic tool bolted on afterwards.
Data is cleaned and structured
Raw results are normalised into consistent fields, ready to load into whatever you use downstream.
Data is delivered automatically
On a schedule if you need it, in the format you asked for — CSV, Excel, JSON, database or API.
Selected projects
Recent work
A growing collection of projects — including things I've built to sharpen my own skills.
Property Data Collection Pipeline
An automated pipeline that collects property listing data, structures it, and stores it reliably — with monitoring built in, so an instant email goes out the moment a scraper actually fails.
Shopify Product Data Scraper
A Scrapy-based scraper that collects a Shopify store's full product catalogue from its public products API and turns it into clean, structured outputs on a daily schedule — monitored end to end, with an instant email if a run ever fails.
Browser-Automated Catalogue Scraper
A Playwright-driven scraper that collects a large retailer's full product catalogue directly from its rendered storefront, for a site with no public product API to call instead — monitored end to end, with an instant email if a run ever fails.
Property Market Analysis
A Python analysis layer that pulls raw listings straight out of the collection pipeline's S3 bucket and turns them into price distributions, trends, and cross-source comparisons in Jupyter.
Why work with me
A direct, practical approach
Built around your data, not a generic tool
Every source is different. I build the collection system around your specific websites and requirements rather than forcing them through an off-the-shelf tool.
Runs on its own
Once set up, collection runs automatically on the schedule you need — no one has to remember to trigger it.
Structured, usable output
You get clean, consistent data in the format you asked for, not a raw dump that still needs work.
You talk to the person doing the work
No account managers, no handoffs between teams. If something needs adjusting, you tell me directly.
Simple over clever
I'd rather build the right, straightforward solution than something needlessly complex.