marketplace-lens

Marketplace Lens

A Chrome/Brave extension that enforces filters on Facebook Marketplace desktop web — the location filter that FB largely ignores on desktop, plus keyword and price rules. It works entirely in your own browser: it reads the listing cards already on the page and hides the ones that don’t match your rules. Nothing is sent anywhere.

Install (unpacked)

  1. Unzip this folder somewhere permanent (don’t delete it later — Chrome loads it from disk).
  2. Go to chrome://extensions (or brave://extensions).
  3. Turn on Developer mode (top right).
  4. Click Load unpacked and select this folder.
  5. Pin the extension icon and open a Marketplace search page.

Two ways to open settings

While the strict radius is geocoding cities, the pill spins and reads “filtering…”, then settles to the hidden count — so you can always tell it’s working rather than stuck. City lookups run in parallel (up to 5 at once) and are cached, so the first filter on a new area is quick and repeats are instant.

Filtering vs. re-querying (how it works)

The extension uses both approaches, each where it’s strongest:

Why location can’t be a clean server-side re-query

Unlike recency/price/sort, Facebook’s web app doesn’t take a dependable location URL param:

So strict client-side radius is the correct primary tool for location, not a fallback. As an opt-in best-effort, “Also steer Facebook’s search to this center” appends your geocoded center + a padded radius to the search URL: when FB honors it you load less out-of-area junk; when it doesn’t, the strict radius still enforces. It never strips FB’s own geo params.

So: FB does the coarse server-side narrowing it’s good at; we do the strict enforcement it’s bad at.

Filters

Changes save automatically. Server-side ones reload the page; client-side ones apply live.

How the radius works

FB doesn’t expose per-listing GPS in the feed, so the extension geocodes the city/state text on each card:

How the rest works / limitations

Files

File Role
manifest.json Extension config (MV3)
content.js Reads cards + applies filters on the page
content.css Hides filtered cards + styles the badge
background.js Geocoding service worker (caches city → lat/lon)
popup.html/.css/.js The filter control panel
icons/ Toolbar icons