A few days ago I wrote about asking an AI agent to turn my self-hosted listing-scoring app into a 24/7 monitor. It read the marketplace’s terms, split feasible from authorised, and picked the site’s own saved-search email alerts as the only clean path. Then it set a watch instead of a build, and ended that note with “no real alert yet”.
This is what happened next.
The watch I actually ran
On 9 October, around noon Dubai time, I created three saved searches with email alerts in the classifieds marketplace’s own UI: tablets, small desktops, and gaming PCs. The agent set up a small scheduled check on top of that. Every hour from 9am to 9pm, it looked at my inbox read-only for the first genuine alert from each search. Deadline: 16 October at 22:00. The standing rule from the last note stayed in force: an email integration does not count until a real alert has arrived and been checked.
Nothing in that pipeline hits the marketplace. It only reads mail I already own.
hourly daytime inbox check (read-only)
-> "don't miss out" marketing reminder? ignore
-> "your ad is now live" confirmation? ignore
-> login one-time code? ignore
-> saved-search digest with listing ID,
price, and a direct listing link?
-> yes: save sanitised sample, mark usable, delete watch
Three days of lookalikes
From noon on the 9th through the morning of the 12th — just under three days — the hourly log was a clean string of “nothing real yet”. The agent did see mail from the marketplace. It just refused to treat any of it as an alert:
- Marketing reminders with subject lines like “don’t miss out on these deals”. Prices were there, but every listing link went only through a click tracker. No listing ID the app could use.
- “Your ad is now live” confirmations from when I listed something myself. Useful for a seller, useless as a saved-search signal.
- A login one-time-code email. Authentication mail, not a digest.
That classification mattered more than a clever parser. A rushed build would have wired the first marketplace-looking message into the pipeline and spent the next week debugging why the payloads were empty.
One combined digest, and it was usable
On 12 October at 07:02 Dubai time, the first genuine saved-searches digest arrived. All three of my watched searches came in a single combined email, not one message per search. That was the first new fact the watch earned.
The agent checked whether the data was something my app could actually consume:
- Direct listing links sat on the price text, each ending in a 32-character hex listing ID.
- Titles and prices in AED were in the plain body.
- The image buttons went through a click-tracking redirect. So the link style is hybrid: usable IDs on the price links, tracker URLs on the pictures.
Older digests from 2020 and 2021 had already warned us not to assume consistency. Some of those hid everything behind a tracker; some had direct links. And despite copy that said “past 24 hours”, they had not arrived every day. The new sample matched the better historical shape, and it confirmed the multi-search-in-one-mail behaviour for this inbox.
The agent saved a sanitised copy — recipients and tracking tokens redacted — wrote the result into the watch state, and deleted the scheduled routine. The condition was met. There was nothing left for the hourly check to do.
I still have not built the importer
That same day I decided not to build the email import yet. The existing app version stays as it is. The always-on box at home that runs it is unchanged. The sample sits on disk for when I am ready.
It would have been easy to celebrate the first real mail by shipping a half-finished adapter. I would rather keep a proven manual capture path and a verified sample than rush a parser that has never run against live traffic. The AI angle here is not “the agent wrote the importer”. It is that the agent ran the watch, classified real vs lookalike mail, checked the payload was parseable, wrote the decision down, and cleaned up after itself. The self-hosting angle is the same as before: a listing-scoring app at home that will one day receive signed webhooks from this path, and not before.
Ship checklist
- Create the site’s own saved searches with email alerts before you write any importer.
- Run a daytime scheduled inbox check with a hard deadline, read-only.
- Write down the lookalikes up front: marketing reminders, ad-live confirmations, login codes.
- Ignore any message whose listing links are tracker-only and have no ID.
- Require a listing ID, a price, and a direct listing link before calling an alert usable.
- Expect multi-search digests; do not assume one email per search.
- Compare new samples to older ones for consistency and cadence.
- Save a sanitised sample (recipients and tracking tokens redacted) before you delete the watch.
- Delete the watch once the condition is met so it does not keep running for nothing.
- Leave the working app and its host alone until you are ready to build the importer on real data.
FAQ
Was “three days” exact?
Close enough for a title. The searches went live around noon on 9 October, and the digest landed at 07:02 on the 12th — just under three days, and a few dozen hourly checks with nothing real in between.
Why ignore the marketing reminders so hard?
They look like alerts if you only read the subject line. They fail the only test that matters for my app: a listing ID and a direct link my code can use without chasing a redirect. Treating them as events would train the pipeline on the wrong shape of mail.
Why not build the importer the same day the digest arrived?
Because the rule was to prove the source first, not to ship on the day of proof. I have a working manual capture path, a sanitised sample, and a written decision. That is enough until I am ready to design the adapter against real payloads.
Where did the AI actually help?
It kept the watch honest for days: same classification every hour, no false positives from lookalike mail, a parseability check on the first real digest, a written result, and a self-delete when the job was done. That is the part I would have half-done myself and then forgotten to turn off.
Closest related Builders notes?
My AI Agent Read the Terms Before Building a 24/7 Monitor is the direct predecessor — the terms read, the authorised path, and the watch with no real alert yet. My AI Agent Found an SSH Key and Chose Not to Use It is the same restraint applied to credentials, and 7 Rules for Letting an AI Agent Maintain Your Homelab is where the guardrails live.
