Automating a job you do every week
The highest-value code you'll write, and nobody sees it.
Build time ~2 hrs
The best automation targets aren't glamorous. They're the twenty minutes every Monday that you've done manually for a year. It's the easiest possible spec — you already know every step — and it pays back forever.
1. Write the manual steps down first
Literally, in a text file, as you do the task. Every click, every copy-paste, every "and then I check whether". This is your specification, and writing it usually reveals two steps that aren't needed at all.
2. Automate the middle, not the ends
The full end-to-end version is often hard, because the start involves a login and the end involves a judgement call. The middle — the mechanical transformation — is usually easy and is most of the time.
Automating "take this file, produce that file" while you still download and upload manually gets you 80% of the benefit for 20% of the work.
Here's a task I do manually every week: <paste your written steps> Before writing anything: - Which steps are mechanical and which need judgement? - What's the smallest slice that would save me the most time? - What could go wrong if this ran unattended, and what should it do then — stop, skip, or alert me? Then write just that slice. Log every action it takes, and add a --dry-run that shows what it would do without doing it.
3. Make failure loud
An automation that silently stops working is worse than no automation, because you stop checking. Whatever it does, it must tell you when it didn't: an email, a message, a file with a timestamp you can see.
Alert on absence too. "It errored" and "it never ran" are different failures, and the second is more common and less visible.
4. Keep the manual path
Don't delete your written steps. When the automation breaks at an inconvenient moment, that document is how you do the job anyway.
Run it manually a few times before scheduling it. Automation that runs unattended before you trust it is how a small bug becomes four hundred wrong emails.