Service 03
Browser automation & data engineering
Scheduled collection from websites and portals, enrichment, ETL and data pipelines that refuse bad data instead of passing it on. The raw material for decisions and for every other system.
Illustration · sample data

What we build
Clean data from places with no API.
A lot of useful data sits behind a login, inside a portal or on a page that changes every week. We collect it on a schedule, check it, clean it and deliver it where the rest of your systems can use it.
Scheduled collection from websites and portals
Browser automation that signs in, finds what you need and collects it on a schedule, from supplier portals, marketplaces and public sites, where their terms allow it. When a page changes its layout, the run stops instead of collecting the wrong thing.
Pipelines into your database or warehouse
Data moves from source to destination through steps that are written down and repeatable. It lands in PostgreSQL, a warehouse, Airtable or a spreadsheet, in the shape the next system expects.
Validation that protects good data
Every run is checked before it is written: required fields, sensible ranges, duplicates and counts against the last run. A bad run is held back, so it never overwrites yesterday’s good data.
Enrichment and matching
Records from different sources joined into one. A company matched across three lists, a product matched to its listing, a request matched to what you have in stock.
How it runs
Bad data stops at the door.
A pipeline that runs every night has to be trusted when nobody is watching. So each run is checked, logged and compared with the last one before anything is written.
Monitoring
Each run records what it collected, from where and how much. A run that brings back far fewer rows than usual is flagged, even when nothing technically failed.
Sample log line:RunningSupplier portal · nightly run · 1,204 rows
Retries
Sites time out, sessions expire and pages load slowly. Each step tries again after a pause and picks up where it stopped, and a run writes nothing until it has passed its checks.
Sample log line:RetryingSession expired · signing in again · attempt 2 of 3
Human checkpoints
When a source changes shape or a run fails validation, the data is held and a person decides what happens: fix the mapping, accept the change or skip the run.
Sample log line:Needs your OKRun held · row count below usual · waiting for Ana
Handover
The pipelines, schedules and validation rules are documented, versioned and running on your infrastructure. Adding a source follows a pattern your team can repeat.
Sample log line:DonePipelines moved to your servers · 4 schedules
Log lines are illustrations · sample data
In our work
Where it shows up in our work.
Reading WhatsApp groups, matched against stock
WTB Radar reads the WhatsApp groups a dealer turns on and pulls each buyer’s request out of a busy chat into fields like reference, model and budget. Then it checks the request against the dealer’s own stock in Airtable.
What happens when something breaks?
The systems we build log every run, retry what can safely be retried and raise an alert when a person needs to look. A failure is reported, not hidden.
Who owns what you build?
You do, once the work is paid for. Systems run on your accounts, and the code, workflows and documentation are handed over when the work is done. A product or venture partnership may set different terms in its signed agreement.
Other services
- 01Workflow & operations automationThe handoffs between people, tools and approvals, run end to end.
- 02Revenue & marketing operationsLeads found, enriched, routed and followed up, with the CRM kept true.
- 04Custom AI agents & internal toolsAssistants and tools that know your business and stay inside its rules.
- 05Custom software & iOS appsWhen the right tool doesn’t exist, we write it.

Start here
Tell us where the work gets stuck.
A free 30-minute call on Google Meet with the people who would build it. Walk us through the work as it happens today, and we’ll tell you plainly whether we can help.
Free discovery call · 30 minutes · Google Meet