Case study · CarSnipe

Building a Marketplace alert engine.

The CarSnipe dashboard showing tracked Facebook Marketplace searches and alert history

A good used-car deal on Facebook Marketplace does not last. The listing goes up, three people message within the first few minutes, and the car is gone by the time most buyers see it. CarSnipe is our answer to that: it watches Marketplace for you and pings your phone the second a matching car appears. This is how we built it and where it stands now.

The problem we started with

Facebook Marketplace has no real alerting. You can save a search, but you still have to open the app and refresh to see anything new, and by then the deal has usually been claimed. The person who contacts the seller first almost always wins. So the whole problem reduces to one number: how fast can a buyer find out that a matching car just got listed?

We wanted that number measured in seconds, not the minutes or hours a manual refresh habit gives you. Everything else in the product follows from that goal.

How it works under the hood

CarSnipe runs on Node.js with a pool of headless Playwright workers. Each worker drives a real browser session, logged in with the buyer's own local credentials, and watches the exact saved searches that buyer cares about: make, model, price range, distance. When a listing shows up that was not there on the last pass, the worker diffs it against what it saw before, confirms it is genuinely new, and fires a Telegram message with the listing details and a direct link.

The median time from a car appearing on Marketplace to the alert landing on a phone is about 11 seconds. That gap is the whole product. It is the difference between being the first message in the seller's inbox and being the tenth.

Keeping it fast and keeping it quiet

Speed is only half the job. A scraper that hammers Marketplace gets noticed and throttled, so the workers pace themselves to look like ordinary browsing rather than a bot storm. Alerts are de-duplicated so the same car never pings you twice, and each account watches through the buyer's own login rather than a shared pool, which keeps the credentials local and the footprint small. The result is a system that stays under the radar while still checking often enough to win the race.

Where it stands

CarSnipe now runs for more than 500 active hunters. It is a paid product, 29 dollars a month after a 7-day free trial, and the buyers who use it report a median saving of about 2,890 dollars on the cars they land, mostly because they get to a fair listing before a bidding scramble starts. It is a live product with our name on it, not a prototype we shelved.

What this means for a build of your own

CarSnipe is a small, sharp example of the work we do: headless browser automation, a real-time alerting pipeline, and Telegram delivery that has to be both fast and reliable. If you have a monitoring or alerting problem where being first is the entire value, the same stack of Node.js, Playwright, and Telegram is what we would reach for. We build these as products we run ourselves, then bring the same discipline to a handful of client projects a year. You can also read how we get our own products cited in AI search for a different slice of the same approach.

Have a monitoring, scraping, or real-time alerting problem where speed is the whole game? That is squarely the kind of build we take on.

Start a project
All articles