NotifyMe · Business case See the pitch deck The code Back to NotifyMe
NotifyMe Business Case
Business case

The web has no memory. You are the polling loop.

NotifyMe watches one page against one sentence, remembers every observation, and speaks only when something worth acting on changes. This is the commercial case for building it past the hackathon.

Collabute × TheBlock. Hackathon Dubai, 30 August 2026 Fatmah · Ankita · Ibrahim · Pavel
Decision states 4 And the fourth one, SOURCE ISSUE, is the whole thesis.
Live categories 5 Flights, resale, rentals, events, jobs. One pipeline.
Per-vertical code 0 Not one line is specific to a category.

The proposition

Every page you care about is a snapshot. The flight board, the rental listing, the resale ad, the job posting. None of them remember what they said an hour ago, and none of them tell you when it changed in a way that matters to you.

So people build a habit instead of a system. They refresh. They set a reminder to check. They open the same tab eleven times a day and still miss the moment, because the moment happened at 3am.

The tools that exist ask you to describe the change in their language: pick a CSS selector, set a threshold, choose a diff mode. NotifyMe asks for a sentence. Give it what you are waiting for, the page, and how often to look. It handles the rest, and it is honest with you about the times it could not look at all.

Where the honesty lives Two different failures. Everyone else merges them; the merge is where users lose things.
CHECK RUN Context.dev Items found page read successfully No items page read successfully Could not read blocked, timeout, malformed BUY WAIT NO MATCH SOURCE ISSUE never collapses upward

A failed extraction keeps the last good observation as visibly stale history. It never invents an absence.

The loop, closed A real watch, checking every minute, and a real browser notification the moment the listing changed.
The NotifyMe watch detail screen for a watch reading: notify me when an NFT Enterprise Sales Executive role is available remotely as a full-time position. Current status reads No match, no relevant items were found. The schedule shows a check every minute, state active, last checked 30 August 2026 at 4:24 PM. A Chrome notification in the corner reads: NotifyMe, item changed, NFT Enterprise Sales Executive is no longer listed.

The watch is one sentence: an NFT Enterprise Sales Executive role, remote, full time. The listing existed, then it was taken down, and NotifyMe said so out loud rather than letting the page go quiet.

Two details on this screen carry the whole argument. The status reads No match, not an error, because the page was read successfully and the role genuinely is not there any more. And the panel underneath is headed Real observations, because every check that produced this conclusion is stored and can be replayed.

Captured during the build. Web Push firing on a genuine disappearance event, not a rehearsed one.

Who pays for this

Three segments, ordered by how acute the pain is and how quickly they would pay.

Beachhead

Scarce-market buyers

Dubai renters, resale hunters, ticket buyers. Inventory is thin, moves fast, and the cost of missing it is measured in thousands of dirhams or a year in the wrong flat.

Expansion

Small operators

Independent sellers and agencies watching competitor pricing, stock levels, and listing changes without an analyst or a scraping stack.

Volume

Job seekers

People watching a handful of specific company career pages, where being early is most of the advantage and job boards are always a day behind.

Five watches. One engine.

Four of the five live watches, captured on the day. A flight, a resale listing, a rental portal and an events site. Same prompt box, same pipeline, not one line of category-specific code between them.

Three of these four returned nothing at the moment of capture. That is the honest answer, and it is a different answer from "we could not look."

FlightAware tracking page for FlyDubai flight FDB1449, showing the flight en route and running 1 hour 26 minutes late.
“Tell me if FDB1449 is delayed or cancelled.” flightaware.com · 1h 26m late at capture
Dubizzle classifieds search for a Mac mini in Downtown Dubai between AED 1,000 and 2,000, showing no results found.
“Mac mini under AED 2,000 in Dubai.” dubizzle.com · NO MATCH, checked successfully
Bayut rental search for a studio in Zaya Hameni, JVC under AED 50,000, showing no active properties matching the criteria.
“Studio in Zaya Hameni, JVC, under AED 50,000.” bayut.com · NO MATCH, checked successfully
Meetup search for in-person gaming events near Dubai tomorrow, showing one result, a crypto coffee and networking night.
“Gaming meetups in Dubai tomorrow, in person.” meetup.com · 1 match found

Why frequency is the price, not a feature gate

Every check costs us one Context.dev extraction. The gap between the cheapest and the most expensive tier is not a product decision, it is ninety-six times the work.

Checks per watch per month By monitoring interval. Arithmetic, not a projection.

Every 15 minutes costs 96× what daily costs. Tiers track that curve instead of inventing limits.

Gross margin on the Personal tier AED 29 per month, 4 active watches at 30-minute intervals = 5,760 checks. Margin as extraction price moves.

The tier survives below roughly AED 0.005 per check and holds a healthy margin below AED 0.002. We do not yet know the real number, which is why it is the first thing we instrument.

The model

FreeAED 0 3 watches, once daily. Enough to feel the product work on something you actually care about.
PersonalAED 29 / mo 15 watches, every 30 minutes, full history. The tier for someone mid flat-hunt or job search.
ProAED 99 / mo 60 watches, every 15 minutes, shared watches, exportable history. For agents, resellers, small teams.
TeamUsage-based Metered on checks rather than seats, because that is what we are billed on.

The market*

Built bottom-up rather than top-down, and Dubai first. We would rather be able to defend every step of the funnel than quote a continental number nobody can trace.

Total addressable* 3.2M UAE adults who actively track a purchase, rental, flight or job online.
Serviceable* 640K Of those, the ones in scarce, time-sensitive categories where missing the moment has a real cost.
Year one, Dubai* 90K Reachable through property portals, resale communities and campus job boards.
What one Dubai year looks like* The same funnel, carried through to revenue at the Personal price.
90,000 reachable* × 3% free-to-paid conversion* = 2,700 subscribers × AED 29 × 12 months = AED 939,600 ARR*

Under a thousand paying users in one city, in one year, on the cheapest paid tier. Pro and Team sit on top of that, and every additional category widens the top of the funnel without changing a line of the engine.

Conversion is the number we least want to guess at, which is why the first ninety days are spent measuring it rather than modelling it.

Who else is in this space

Competition Everyone monitors something. Nobody monitors anything. Visualping You pick the region. You describe the change. Distill.io Powerful. But you must read HTML. Google Alerts Watches the web, not one page. Natural language. Any category. And an honest answer when we could not look. Nobody occupies all three.

Why that third one is the whole argument

The first two columns are convenience, and convenience gets copied. Anyone can bolt a language model onto a diff tool and let you type a sentence. Anyone can widen a scraper to more categories.

What does not get copied is the discipline to admit failure. Visualping, Distill and Browse AI all report a page as unchanged when they could not read it, because reporting a technical failure to a consumer looks like a broken product. That decision is rational for them and catastrophic for you: an airline page that starts blocking requests goes quiet, and quiet reads exactly like "your flight is fine." Google Alerts has the same shape of problem from the other direction, watching the whole web for mentions rather than one page for a state.

NotifyMe treats "we could not look" as a first-class answer with its own status, its own persisted error code, and its own notification policy. It costs us a support conversation. It saves the user the thing they were actually watching for. Every other capability on this page is a feature; that one is a promise, and promises are what people stay subscribed to.

Our own assessment of the four capabilities that matter, not a vendor scorecard.

Describe the
outcome, not
the change
Works in
any category
Says when it
could not look
No setup
beyond a
sentence

Only one row carries a yes in every column. That intersection is the product.

What could kill it

Extraction cost outruns consumer pricing. The whole model rests on a per-check price we do not control. Mitigation is frequency tiering, dormancy pausing, and change detection before extraction.

The sites people care about most block us. Airlines and portals are the most aggressive about automated access. We surface this as SOURCE ISSUE rather than hiding it, but a watch that permanently fails is a churned user.

Alert fatigue. If the meaningful-change threshold is wrong in either direction we are either noise or useless. This is the hardest product judgement in the system.

A platform absorbs it. Any large browser or assistant could ship a version of this. Our defence is the honesty model and per-category tuning, neither of which a generic feature tends to bother with.

The next ninety days

  1. Instrument real per-check extraction cost and replace every modelled figure on this page with a measured one.
  2. Multi-source watches, so one intent can cover three portals instead of three watches.
  3. Shared watches, which is the natural referral loop for flatmates, families, and job-hunting friends.
  4. A user-set alert budget: tell us how often you are willing to be interrupted, and we hold to it.
  5. Fifty paying users in Dubai before adding a single new category.
* * *
Dummy data used for these sections

The figures marked with an asterisk are illustrative placeholders. They show the shape of the model and the order of magnitude we are working towards. They are not researched, sourced or observed numbers, and they should not be quoted as such.

Three real inputs replace all of them: the Context.dev per-extraction price, a cited count of active property and resale searchers in the UAE, and an observed free-to-paid conversion rate. Instrumenting the first of those is task one of the next ninety days.

Everything else on this page is real: the checks-per-month arithmetic, the margin curve, the four screenshots and what they returned at capture, and our own assessment of the competitors.