← All articles

Article

When one person clicks all day

Before: one person logging into thousands of partner credentials, one file at a time. After: thousands of downloads in parallel, with retry and monitoring.

Ler em português →

The scene looked like this. One person, in front of a credit-card platform, logging in with a partner’s credentials. Setting filters. Picking a date on the calendar. Waiting for the download link to appear. Clicking. Waiting for the file to land. Then starting over — for the next partner, next period, next file.

It wasn’t a hard job. It was an impossible job to scale.

The backlog grew faster than anyone could process it. Multiply credentials by months of history and you arrive at thousands of files waiting — all with the same shape, all behind the same repeated gesture.

The first question isn’t “how do we automate”

The first question is: is this worth automating?

Three signals that say “yes”:

  • The process is repetitive and predictable (same sequence of clicks every time)
  • The manual cost grows linearly with volume (doubled the base, doubled the work)
  • Human error has a real consequence (wrong file, missed receipt, blown deadline)

This case checked all three boxes. Decision made.

What I automated — and what I left out

There’s a trap here. It’s tempting to automate everything: from login through post-processing. But every new automated surface is a new surface that can break.

The scope was deliberately tight:

  1. Login with partner credentials
  2. Navigation to the receipts screen
  3. Download-pattern detection (the clever bit — explained below)
  4. Parallel download with a controlled queue
  5. Integrity verification of every file received

Everything outside that scope — analyzing receipts, reconciliation, business decisions — stayed human. By choice.

Why detect the pattern instead of hardcoding it

The initial temptation was: I’ll write a CSS selector for the download button on each screen and call it done.

It doesn’t work. The platform’s UI changed. Small visual tweaks broke fixed selectors. Automation turned into maintenance — every week, a new selector to adjust.

The solution was different: the bot learned the pattern of where the download link appears. It looked at the semantic structure of the page, not at div#download-btn-v2-final-revised. When the UI shifted, the bot kept working — because it understood what a download link is, not where it sat in that particular version of the screen.

This is where AI stops being hype and becomes useful engineering: recognizing variable patterns without needing a fixed rule.

That pattern — bots that learn instead of hard-coding — is what separates automation that survives production from automation that breaks on the next UI update. I go deeper in another article.

Retry, monitoring, recovery

Naive automation dies at the first 503 and never gets back up. Serious automation knows the Internet fails all the time and plans for it — the same principles that show up in the Google SRE book and Stripe’s idempotency docs.

  • Retry with exponential backoff on every network operation
  • Idempotency at every step (running again doesn’t duplicate)
  • Persistent state (if it crashes halfway, it resumes from where it stopped)
  • Real-time metrics (how many files remaining, how many errors, what’s the rate)

You don’t find out something broke from a customer phone call. You find out by looking at the dashboard, before the customer notices.

The result

What was continuous work for one person became automatic routine. Hundreds of credentials per hour, in parallel, with full visibility. Zero files lost. The backlog that grew every week became history.

But the interesting result isn’t the number. It’s what you do with the time you got back: the person who clicked all day shifted to investigating inconsistencies, talking with partners, deciding what matters. Human work.

When this kind of automation makes sense for your business

If you recognized the scene at the top of this piece — someone clicking, waiting, clicking, waiting — it probably does. The math is simpler than it looks: add up the person-hours your team spends on the process and compare with the one-time cost of automating it. Automation pays back in months, not years.

If you’d like to talk through a similar case in your operation, let’s have a quick chat. No cost, ~30 minutes.