Google Ads Header Ready

What I Automated With n8n on Server (2 Real Examples)


I have a small server humming away at home. For a while it just ran the usual self-hosted stuff, but lately it has been doing something more interesting: my busywork. The tool behind that is n8n, and after a month of tinkering with it I finally have two automations I actually trust to run without me watching. This is a note-to-self about what they do and what I learned building them.

So what is n8n, quickly?

n8n is a workflow automation tool. You drag "nodes" onto a canvas — a Google Sheet, an AI model, a web scraper, a WordPress site — and wire them together so they hand work to each other. A trigger kicks things off (a schedule, a form, a new file) and the whole chain runs by itself. The part I like most: it is self-hostable, so it runs on my own machine and my data never leaves the house. That fits how I already do things — same reason I keep files on an old phone instead of the cloud.

Enough theory. Here are the two flows.

Experiment 1: getting the computer to build a list of local businesses by itself

This one started as pure curiosity. Making a list of local businesses — name, phone, address, what they do — is the kind of task that normally means hours of Googling, opening each website, and copy-pasting into a spreadsheet. I wanted to know: could I get my home server to just... do that?

It turned out to work best as two small flows that feed each other, so nothing needs me in the middle.

Part 1 — find the businesses

I keep a plain spreadsheet with two columns: an industry (say, "renovation contractor") and a location (say, "Petaling Jaya"). That is the only thing I type.

Once a day, in the middle of the night, the first flow:

  1. reads any new rows from that sheet,
  2. searches Google Maps for that industry in that area,
  3. keeps only the businesses that actually have a website, and
  4. drops each one — name, phone, address, category — into a master sheet.

I deliberately made it chew through only a few keywords per run, so I never blow past the search quota, and it quietly merges duplicates by website address. I can dump in a big batch of ideas and it works through them over the following nights.

Part 2 — find out what each one actually does

Having a name and a URL is only half the job. So a second flow takes over later the same night:

  1. It grabs the businesses that haven't been processed yet.
  2. It visits each website with a self-hosted scraper (I run Firecrawl on the same server), reading the homepage and hunting down the contact page — it even recognises Malay "hubungi" links, not just English "contact".
  3. It hands that page text to an AI model, which pulls out clean details: the real business name, a short description of what they do, phone, email, address, state, category, and their main services.
  4. It writes everything back to the sheet and marks the row done.

Two small decisions made a big difference here:

  • I told the AI never to make things up. If a phone number or email isn't actually on the page, the field stays empty. For a list like this, a wrong number is worse than a blank one — and left to their own devices, language models love to "helpfully" invent a plausible-looking number.
  • I made it safe to re-run. Rows that are already done get skipped, and if one fails it gets marked with the reason so I can retry just that one. No duplicates, nothing overwritten. This is the boring part nobody shows in tutorials, and it is the whole difference between a demo and something you actually leave running.

The end result still slightly amazes me: I type in a keyword and a town, go to bed, and by morning there is a clean, structured little directory of real businesses sitting in a spreadsheet. It grows overnight while I sleep.

Experiment 2: never manually posting to WordPress again

The second flow scratches a much more personal itch. Publishing a post to WordPress isn't hard, but the ritual is tedious: format the content, find or make a featured image, write the alt text, shorten the meta description, upload, publish. Every single time.


So I built a flow where the only human job is finishing the article in a Google Doc. After that, it:

  • reads the Google Doc and formats the content properly for the page,
  • either finds a suitable photo or generates a featured image with AI, then resizes and crops it to the right size,
  • trims the meta description to a sensible length for search results,
  • uploads the image, writes its alt text, creates the post, and publishes,
  • and logs the whole run so that if something breaks, I can see exactly what went wrong.

What used to be twenty minutes of clicking is now a finished, image-ready post from a single document. The featured-image generation was the part I expected to fight with and it ended up being the most fun to watch.

What I actually took away from this

Looking at both flows side by side, the specific tools matter less than three habits that made them trustworthy:

  • Let the human do only the human part. Pick a keyword. Write the article. Hand the repetitive middle to the machine.
  • Let it run on a schedule, unattended. Nobody has to remember to press start. The work happens at 2am whether I think about it or not.
  • Build it to fail safely. Skip what's already done, log the errors, never corrupt the data. "Set and forget and pray" is not automation, it's a time bomb.

None of this needed a coding background — n8n is visual — though a little technical stubbornness helped with the fiddly bits, like forcing the AI to stop inventing phone numbers. Mostly it needed me to look honestly at the boring, repetitive things I do over and over, and ask whether the server could do them instead.

It usually can. That's the part I'm still getting used to.

Next on the bench: getting these flows to send me a little morning summary of what they did overnight. If that works, it'll probably end up here too.

Related automation and server posts

These posts connect to the same n8n, self-hosting, and AI-assisted server workflow:

Harvard Chin Yihao

Harvard Chin Yihao

I explore tech, markets, and build in public. Documenting my journey, practical insights, and DIY projects. Join me as I learn and grow. View Linktree

Comments