Run a WHOIS lookup on any domain name and you get back a status code. Not a paragraph, not a guess. A code, from a standardized list of seventeen, published by ICANN, that tells you exactly where that name sits in its life.
Most of those codes are boring. A few of them are a countdown.
Here is the sequence when somebody stops paying. The registry sets autoRenewPeriod, a grace window after the registration expires. If the registrar gives up on it, the name moves to redemptionPeriod, and ICANN's own description of that code is unusually precise: "Your domain will be held in this status for 30 days. After five calendar days following the end of the redemptionPeriod, your domain is purged from the registry database and becomes available for registration."
Then pendingDelete. ICANN describes that one as the state a name reaches after it "has been in redemptionPeriod status for 30 days and you have not restored it within that 30-day period." A few more days and it is gone from the registry. Available. To anyone.
Read that again as an engineer rather than as a domain buyer. That is a documented state machine, with published transitions, exposed over a queryable protocol, running continuously on every registered name on the internet. Nobody is hiding it. ICANN publishes the whole table.
So why does anyone ever miss a name they wanted?
The information was never the constraint
This is the thing I keep running into, and it has nothing to do with domains.
The valuable state on the web is overwhelmingly public. Certificate expiry dates are public. CVE feeds are public. Rate limit headers, deprecation notices, changelogs, status pages, pricing pages, filings, job boards, package registries. All published, most of it structured, a lot of it timestamped.
What is scarce is something that is awake at the moment the state changes.
We spent the last two years making models better at answering questions. That is real progress and I use it every day. But the questions that pay are usually not the ones you think to ask at 2pm on a Tuesday while you have the tab open. They are the ones you asked once, months ago, and would want answered again the instant the answer changes.
A chatbot cannot hold a question. It can only receive one.
That is the gap I would build into if I were starting today. Not a smarter responder. A thing that holds a standing question and stays quiet until the world moves.
Four rules I would give anyone building a watcher
I have built a number of these now, some good, some that I ended up muting, which is the same as never having built them. The ones that survived have four things in common.
1. Write the definition of interesting before you write the watcher.
You cannot be woken up by "good opportunities." You can be woken up by a predicate. If you cannot express what qualifies in a sentence that would still make sense to a stranger, you do not have a watcher, you have a feed. The hard part of this work is almost never the polling. It is being honest about your own taste and then committing it to something readable.
2. Build on declared state, not inferred state.
A status code beats a ranking. A version number beats a vibe. When a source publishes its own state, you are reading a fact; when it does not, you are running a model over evidence and inheriting every error that model makes. Both are sometimes necessary, but you should always know which one you are doing, and you should reach for the declared version first. The seventeen EPP codes are valuable precisely because they are boring and unambiguous.
3. Your sampling rate has to be shorter than the window.
This is the one people get wrong most often, and it is not a subtle bug. If the opportunity is open for five calendar days and your job runs weekly, that job is not slow. It is broken. It will report success forever and catch nothing, because it can miss the entire window while every individual run is green.
Whenever I set up something on a schedule now, I write down the shortest window it needs to catch, and the interval has to fit inside it with room to spare. If it does not, either the interval changes or the job is not worth running. There is no third option, and a cheerful log line is not evidence that there is.
4. Tune for silence.
A watcher's quality is not how much it finds. It is how rarely it is wrong when it speaks.
Interrupts have a real cost, and you will pay it with your attention every single time. A watcher that surfaces forty things a day is a second inbox, and you will mute it inside a week. Bias hard toward precision. Let it miss things. A watcher that speaks twice a month and is right both times gets to keep its access to you, and that access is the entire product.
Where I think this goes
Right now almost every agent product is priced per task. You ask, it works, you pay for the working.
I think the durable ones get priced per watch, because coverage over time is a different axis from capability, and it is the one that compounds. A model getting smarter does not make an absent agent present. No amount of reasoning quality rescues a system that was not running when the state changed. Those two things trade off against each other far less than the current discourse assumes, and only one of them is getting cheaper.
Which means the operator's job is shifting again. Less about asking better questions in the moment. More about maintaining a portfolio of standing ones, with an honest definition of interesting attached to each, and the discipline to keep them quiet.
That is unglamorous work. It is also the part nobody can hand to a model, because the definition of interesting is yours.
The one I built for this exact state machine
PounceDomains is a watcher pointed at the drop and auction cycle I described above.
You describe the kind of names you want in plain English and it builds a tuned config from that. It scans the Namecheap Marketplace around the clock and grades ending-soon domains against your taste rather than against a generic score. Every match arrives enriched, so you are looking at authority, backlinks, search demand, domain age and comparable sales at the moment you decide, instead of opening six tabs to assemble that yourself. When something qualifies, it alerts you with its reasoning and a one-click path to bid, and you make the call. It will also watch names you already own and remind you before your own expiry dates turn into someone else's opportunity. There is optional auto-bid with a master switch, a per-domain maximum and a daily budget cap, for people who want it, and it is off until you turn it on.
Rule four is the whole design. It is built to stay quiet.
You can start free at pouncedomains.com.
The small ask: pick one thing you currently check by hand, on a loop, because you are afraid of missing it. Write down the one sentence that would make it worth waking you. That sentence is the actual product, and you can build the rest in an afternoon.
If you want to do that alongside a few hundred thousand other people building this way, the Vibe Coding is Life group is open and it is where I post most of what I learn: facebook.com/groups/vibecodinglife.
Top comments (0)