One Photo In, Twenty Listings Out: Reverse Image Search as a Retriever Stage
One product photo from a 118-image demo catalog, run through the external_reverse_image stage, came back as 20 ranked retail listings across 13 domains in a single call. Google Lens returns visual matches, so every row is a product that looks like this chair.

Point a retriever at one photo of a product you sell and ask where a visual match of it is listed on the open web. In this run the answer was 20 listings across 13 retail domains: Target, Walmart, Wayfair, The Home Depot, Macy's, Lowe's, Overstock, Bed Bath & Beyond, World Market, Castlery, The Citizenry and Key Home Furnishings. The query image was a fabric armchair from our 118-image demo catalog, and every row on the diagram is a live listing returned by the provider, in the provider's rank order.
The stage is called external_reverse_image. It wraps Google Lens reverse image search and runs inside the retriever pipeline, in the same position as a vector search or a filter. The whole configuration is an image_url templated from the input, the engine name and a top_k of 20. Because it is a stage, you can compose it: find the catalog items that match a text query, reverse-image each result, then filter to the domains you care about, all in one retriever call, with your own data and the open web ranked in the same response.
Leak detection, licensing enforcement, competitor price monitoring and counterfeit hunting all start from the same question: where else does this asset appear on the open web. This stage answers that question once, so one retriever definition serves all four jobs.
Google Lens returns visual matches, so the results are products that look like this chair. For competitor monitoring that is the behaviour you want. To prove that a specific file was copied, pair this stage with a perceptual or exact hash check, because a visual match says nothing about whether the pixels are identical.
Everything on the diagram traces to one live run on 2026-09-06 against a retriever with a single external_reverse_image stage. The rows were generated from the saved response, so they cannot drift from what the API returned.
Where this diagram appears
Run this on your own data
Mixpeek turns video, images, audio, and documents in your object storage into searchable, timestamped results through one API.
Search your own data

