Automating the Boring Stuff (With AI)
I have a rule: if I do the same task more than three times, I automate it. Over the past two years, this rule has produced a collection of Python bots and scripts that handle everything from managing an Etsy shop to processing honoraria payments to reconciling sales reports. None of these are glamorous projects. All of them save me hours every week. Here are the highlights.
EtsyBot: Running a Shop While Sleeping
I ran a small Etsy shop for a while, and the operational overhead was absurd for the revenue it generated. Responding to customer inquiries, updating inventory, adjusting prices based on competition, managing shipping labels, sending follow-up messages — the daily maintenance easily ate two hours that I didn’t have.
EtsyBot automated about 80% of that. It used the Etsy API to monitor new orders and automatically generate shipping labels. It tracked competitor pricing on similar items and suggested price adjustments. It drafted customer responses to common questions (sizing, shipping times, custom orders) and queued them for my review before sending. And it generated weekly sales reports that told me which items were trending, which were stale, and which needed new photos.
The AI component came in the customer communication. EtsyBot used Claude to analyze incoming messages and draft contextual responses. A question about shipping to Canada got a different response template than a question about custom sizing, and the AI was good at detecting the difference even when customers didn’t use obvious keywords. It also handled the delicate art of the “would you take $20 for this $35 item?” negotiation with a polite firmness I sometimes struggled with myself.
TextAutomater: When You Need to Send 500 Personalized Messages
This one came from a specific need: sending personalized outreach messages to a list of contacts. Not spam — legitimate, personalized follow-ups to people I’d met at conferences or events. The kind of messages you should send individually but realistically never will if there are 500 of them.
TextAutomater takes a spreadsheet of contacts with context columns (where we met, what we discussed, any follow-up items) and generates personalized messages for each one. The AI drafts each message based on the context, maintaining my voice and referencing specific details from our interaction. It’s the difference between “Great meeting you at the conference!” and “Great talking about the trauma-informed care initiative at the SAMHSA conference — I looked into that evaluation framework you mentioned and I think you’re right that it could work for our program.”
The messages go through a review queue before sending. I never send anything without reading it first. But the AI’s first drafts are good enough that I usually only make minor tweaks, which means 500 personalized messages take an hour instead of a week.
Honoraria Processor: Making Payments Less Painful
If you’ve worked in nonprofits or medical education, you know the honoraria process. Someone gives a lecture, and you need to collect their W-9, verify their information, process the payment through your finance system, send them a confirmation, and track it for tax reporting. Multiply by 50+ speakers per year, and you’ve got a full-time job that nobody wants.
The Honoraria Processor automates the entire workflow. It ingests W-9 forms (PDF parsing, not as easy as it sounds), validates the data against existing records, flags discrepancies for human review, generates payment requests in the correct format for the finance system, sends automated confirmation emails with payment timelines, and maintains a master tracking spreadsheet for end-of-year reporting.
The AI helps with the PDF parsing — W-9s come in every possible format, from pristine digital forms to photos of handwritten documents taken at an angle. The AI reads the form, extracts the relevant fields, and handles the ambiguity that rule-based parsing can’t. It also drafts the confirmation emails, which need to be professional but warm (“Thanks for speaking at our event. Your payment of $X is being processed and should arrive within 3-4 weeks”).
SalesReconBot: Reconciling Numbers That Don’t Match
Sales reconciliation is the kind of work that makes you question your career choices. You have invoices in one system, payments in another, and a CRM that doesn’t agree with either. Your job is to figure out why revenue report A says $450K and revenue report B says $442K, and whether the $8K difference is a timing issue, a data entry error, or something that needs to be flagged.
SalesReconBot ingests data from multiple sources (CSV exports, API pulls, manual spreadsheets), normalizes everything into a common schema, and then systematically identifies discrepancies. For each mismatch, it generates a probable explanation: “Invoice #4821 appears in the billing system but not in the CRM, likely because the opportunity was closed after the CRM extract was pulled.”
The AI is essential here because the explanations require judgment, not just math. A $500 discrepancy between an invoice and a payment might be a partial payment, a discount that wasn’t recorded, a currency conversion issue, or a data entry transposition. The AI looks at the context — the customer’s history, the invoice terms, the payment date — and makes an educated guess. It’s right about 90% of the time, which means I only need to investigate the remaining 10% manually.
The Pattern
All four of these tools follow the same pattern: take a repetitive, judgment-light task that I do regularly, automate the mechanical parts, and use AI for the parts that require understanding context or generating natural language. None of them are fully autonomous — they all have human review checkpoints. And none of them are complex — the longest one is about 600 lines of Python.
The biggest lesson from building these tools is that automation doesn’t have to be ambitious to be valuable. I’m not building self-driving cars or curing cancer. I’m making it so I don’t have to manually type shipping labels or reconcile spreadsheets. The cumulative time savings is probably 10-15 hours per week, which adds up to something like two extra months per year. That’s time I can spend on work that actually requires a human brain.
The second lesson is that the best automation is invisible. Nobody cares about my EtsyBot. Nobody is impressed by a script that generates shipping labels. But the people who used to wait three days for a response to their Etsy inquiry now get one in three hours, and the speakers who used to wait six weeks for their honorarium now get it in three. The automation isn’t the point. The outcome is the point.
I’ll keep building these. Every time I catch myself doing the same task for the fourth time, I stop and write a script instead. It’s not always faster in the short term — sometimes the script takes longer to build than just doing the task would have. But in the long term, every one of these tools pays for itself many times over. And honestly? Building the bot is more fun than doing the boring stuff anyway.