Selected work
Six systems
in production
Client work is shown at the level of detail the agreements allow. Where a project is published as a product, the link goes to the live listing so you can check the numbers yourself.
01 · SaaS platform
Optolix
An access-controlled intelligence platform for research and due-diligence work. Social-media scrapers feed structured subject profiles, and Claude, GPT and Gemini do the analysis on top. Vetted users get project workspaces, company-alumni search with CSV import and export, and a gated onboarding flow with admin approval.
- Registration by request only — admin review, role assignment, branded welcome mail and a forced password change enforced in middleware.
- Three LLM providers behind one analysis interface, so a model can be swapped without touching the product.
- Built end to end and deployed to a self-managed VPS behind Nginx with automated certificate renewal.
02 · E-commerce integration
Retail catalogue sync
A scheduled pipeline that mirrors a major UK retailer's catalogue into a client's Shopify store — thousands of products with their variants, prices, SKUs, weights, stock and images, with no manual step anywhere in the loop.
- Detects whether each product already exists, compares variants and attributes, then creates or updates through the Shopify Admin GraphQL API.
- Normalises and cleans source data before it reaches the store, including removal of Shopify's default variant.
- Runs on a client-defined schedule and scales to thousands of products per run.
03 · Published product
Google Ads Transparency Scraper
A commercial Playwright scraper that screens 100,000+ advertiser domains against Google's Ads Transparency Center to find who is running ads, now and in the past. Marketers and business-intelligence teams buy it by the result.
100K+
domains per campaign
04 · Published product
Ofsted Reports Data Scraper
Automated extraction and daily synchronisation of UK Ofsted inspection reports into a searchable client database. Eighteen structured fields — judgement ratings, provider details, inspectors, capacity, specialism — parsed straight out of the source PDFs.
- Date-windowed crawling with startup deduplication, so a daily run never reprocesses what it already has.
- Writes with upserts rather than inserts — re-running a window is always safe.
- PDFs in unexpected layouts are logged for review instead of being dropped silently.
05 · Reporting automation
Data centre demand report
A data centre operator assembled their monthly demand-intelligence report by hand — two Excel workbooks, thirty-one sheets between them, copied and reconciled into a branded document over a full day, with the mistakes only surfacing after it had gone out. It is now a single run. A config-driven Python pipeline reads both workbooks, normalises and aggregates them, and renders a fully branded PDF of charts, summary panels and ranked contact tables.
7
charts generated per run
- Sheet names, column mappings and every derivation rule — deduplication, the contacts-per-account cap, seniority ranking, the competitor list, the country-to-continent map — live in YAML. Layout and data sources change without touching code.
- Charts and tables are rendered from the same aggregated frames, so no figure is transcribed twice and the two cannot drift apart.
- Each workbook is identified by its sheet names, so the month's files can be handed over in any order or as a folder. Anything ambiguous stops the run with a message rather than producing a plausible wrong report.
- Packaged with a simple GUI as a standalone Windows executable — no Python install on the client's machine.
06 · Automation
US Department of Labor job feed
A recruitment client needed federal seasonal job orders the day they were published. The system parses the government's job-order PDFs on a daily schedule and loads each new role into their Monday.com CRM through an automated ETL workflow — no one opens a PDF, and nothing is entered by hand.
Stack
Python · pdfplumber · pandas · Apify scheduling · Make.com · Monday.com API
Delivered via
Fiverr — see the listing
Sixteen published scrapers in total, serving 393+ developers and businesses — freelancer marketplaces, advertising transparency, public-sector records and e-commerce catalogues. Most started as a client brief and were generalised into a product afterwards.