From frustration to automation: managing Marktplaats listings with Claude

I sell things on Marktplaats. Not professionally, just the usual household clutter that accumulates faster than you'd think. Over time I built up a small collection of items I cycle through: things I list, sell, and sometimes re-list when they don't move.

The problem with Marktplaats is that listings age. They sink to the bottom of search results over time, so if something doesn't sell quickly, you need to re-list it. That means logging in, filling out the same forms again, uploading the same photos, writing the same description. Every time.

At some point I decided that was a problem worth solving.

Phase one: a script on my laptop

The first version was a Python script I built together with Claude. It reads a simple textfile describing the listing: title, category, price, delivery options, description, photos, and handles the rest automatically. One command, done.

The textfile approach turned out to be surprisingly pleasant. Each listing lives in its own file, easy to tweak, easy to version. The script became my actual workflow: edit the file, run the script, walk away.

That worked well for a while. But running a script from a terminal still felt like more friction than necessary, especially when I just wanted to quickly re-list something that had slipped off the first page.

Phase two: moving it to the server

My homelab runs a small server. It already hosts a bunch of Docker containers: media, home automation, monitoring, that kind of stuff. So I asked Claude: what would it take to wrap this in a proper web interface, so I can manage listings from my browser?

The answer turned out to be: not that much.

We built a small web app that runs on my server. It gives me: – A proper editor for my listing files, with syntax highlighting – Photo management with drag-and-drop upload and preview thumbnails – A run button that fires off the automation and streams the output live to the browser, so I can watch it work – An overview of all listings, with the last time each one was placed, and the ability to select and run multiple at once

The whole thing sits behind my reverse proxy, accessible only from my own network. No cloud, no subscription, no third-party service involved.

What Claude actually did

Most of it, honestly. I described what I wanted, pushed back when something felt overcomplicated, and redirected when we went off course. Claude wrote the application logic, the streaming output, the Docker setup, and adapted the original script to run on Linux instead of on my Windows laptop.

What I contributed was knowing what I wanted, catching things that didn't feel right, and doing the actual testing. The kind of collaboration where you're the product manager and the AI is a very fast, very patient developer who doesn't complain about changing requirements.

The result is something I'd never have built on my own. Not because it's technically beyond me, but because I'd have talked myself out of the effort before starting. With Claude, the activation energy is low enough that “wouldn't it be nice if...” actually becomes a working thing.

The disclaimer

I'm deliberately vague about how the automation works under the hood. Platforms don't love bots, even well-behaved personal ones. This post is about the journey, not a how-to.

But the broader point stands: if you have a repetitive task that involves a website, and you've got a Claude subscription, it's probably worth asking whether it could be automated. And if it's already automated, it's probably worth asking whether it could be a proper tool.


Written with assistance from Claude.


Want to reach out? Contact me.