Skip to content
Nitai AharoniNitai Aharoni← Index
2026Archived

Booking Filter

A browser extension that scores every hotel on a booking.com search by a formula you write, and strips the pressure tactics off the page

4kinds of pressure tactic stripped out

The problem

Booking.com gives you a sort order and a handful of checkboxes. What you actually care about is some private weighting of price against review score against distance against whether breakfast is included, and that weighting changes per trip. There is no way to express it, so you end up with forty tabs.

The page is also working against you while you do it. "Only 3 left at this price", "in high demand", a crossed-out price that was never charged, sponsored results dressed as recommendations. All of it exists to stop you comparing carefully, which is the exact thing you opened the page to do.

What I built

A Chrome extension that runs on booking.com search and property pages. You write a scoring formula over the fields on the page, and every property card gets its score injected next to it, with a star to shortlist and a cross to hide.

A Bangkok search with the extension running: the pill beside each hotel is its score

The pills next to each hotel in that screenshot are the extension's, not booking.com's. Hover a card and one keystroke shortlists or hides it, so working through a page of results does not require aiming at anything. The side panel holds the filters, a compare view for the shortlist, saved formula templates, and import and export so a search can be handed to whoever you are travelling with.

Stripping the page

A content script removes four categories of manipulation: urgency messages, scarcity counters, fake strikethrough discounts, and sponsored blocks styled as recommendations. Each is matched by a list of selectors rather than one brittle rule, because booking.com changes its markup constantly and a single missed class should degrade one pattern rather than the whole feature.

The overlays are the interesting part of the build. Booking.com re-renders its results list on almost any interaction, so the extension watches for mutations on a debounce, finds the results anchor again, and re-mounts its overlay layer with positions synced to the cards underneath. Everything is stored locally in IndexedDB. The extension asks for storage, tabs and the side panel, and for host access to booking.com and nothing else.

Building something in this territory? Start a conversation →