Skip to content
Takedown forensics·2026-07-11·9 min read

Spotting counterfeit seller networks with cross-listing image clustering

A counterfeiter who gets a listing removed rarely quits — they relist under a new seller name with the same product photos. Cross-listing image clustering groups listings by shared imagery so the pattern shows up as one repeat-offender signal instead of a dozen unconnected cards. Here's how it works and what it can and can't tell you.

Brand Protector teamTakedown forensics

You take a listing down, and a week later the same counterfeit is back under a new seller name. The title reads differently, the price moved a dollar, the storefront is brand-new — but the product photo is the same one you saw last time, sometimes literally the same JPEG. That reuse is the tell. Sellers rotate the cheap-to-change fields on every relist; reshooting convincing product imagery is expensive, so the photography persists. Clustering is how you turn that persistence into a map of the network behind the cards.

This is a companion to our engineering write-up on image-similarity scoring with CLIP. That piece is about catching one counterfeit by comparing its photo to your genuine packaging. This one is about a different question: of the counterfeits you’ve already caught, which ones belong together?

Why does one listing tell you less than a network?

Working detections one card at a time is how programs stay permanently behind. Each removed listing feels like progress, but if six listings across three sellers are one operation, six separate takedowns are six chances to under-price the threat, six evidence packs assembled from scratch, and — worst — six independent decisions that each look low-severity in isolation. A single generic-looking listing rarely earns priority. The same listing, once you can see it’s the fifth face of a seller who keeps coming back, is a different decision.

Brand Protector already clusters detections by the obvious hard identifiers — same marketplace seller across multiple listings, same domain registrant across lookalike domains, same trademark applicant across filings — and groups those into cases you can action as a batch. Image clustering adds the identifier a counterfeiter can’t cheaply rotate: the picture. When the seller token is brand-new and the title is sanitized, the shared photo is often the only thread left connecting the relist to the original.

How does cross-listing image clustering work?

The mechanism is deliberately simple, because an interpretable signal is one an operator can trust. A daily image_clusterer_job runs after the marketplace scanners land, and for each tenant it does four things:

  1. Collect the images.It pulls the images on that tenant’s open marketplace detections — the listings the scanners already flagged — up to a per-tenant cap so one noisy tenant can’t run the job for hours.
  2. Embed each image. Every image is turned into a CLIP embedding: a vector that places visually similar images near each other, so the same photo at a different crop, angle, or lighting still lands close. Embeddings are cached per image for 30 days at tenants/{tid}/embedding_cache/{sha}, so re-running against an image seen yesterday is free.
  3. Compare pairwise.It computes cosine similarity between every pair of images and keeps the edges above a threshold — 0.92 by default, tunable per tenant at tenants/{tid}/config/image_clustering.threshold. Tighter for brands whose genuine photos already look alike; looser where counterfeiters crop or color-shift.
  4. Connect the components. Listings linked by those edges form a cluster (single-link connected components on the similarity graph), written to tenants/{tid}/image_clusters/ with a cohesion score so you get a confidence read on each group.

The output is a plain-language pattern — “five listings on three different sellers share the same product photo” — carried across every surface the scanners cover, from Amazon to eBay to Walmart. It runs on cached embeddings under a per-tenant daily cap and a global kill switch, so the visibility doesn’t come with an unbounded cost.

What does a cluster tell you — and what doesn’t it?

Be precise about the strength of the claim, because over-reading it is how a prioritization tool turns into a liability. A cluster says: these listings share photography. That is strong circumstantial evidence of a shared source — a common supplier, a common seller rotating accounts, a shared dropship catalog. It is an image-based inference, and it advises where to look.

A cluster does not say who owns the listings. Shared imagery has innocent explanations: brands and distributors reuse manufacturer stock photos, an authorized reseller and a counterfeiter can end up displaying the same lifted image, and unrelated sellers can pull from the same catalog. So the cluster is a lead, not a verdict. It earns a listing a closer look and a higher place in the queue; it never substitutes for the per-listing evidence that a takedown actually rests on. In our own routing this is a firm line: inferences advise, only verified facts drive a filing.

How do you turn a cluster into a prioritized takedown batch?

The point of the signal is a better queue, not an automated one. A workable loop:

  1. Rank clusters by reach, not by count. A cluster spanning several sellers or several marketplaces is a more organized threat than ten listings from one storefront. Cohesion score plus seller-spread is your triage sort.
  2. Confirm the cluster is really one pattern. Open the grouped listings and eyeball the shared image. High thresholds keep this honest, but a human glance is what separates “same counterfeit photo” from “same manufacturer stock shot two legitimate resellers happen to use.”
  3. Work the batch, validate each listing.Draft the takedowns for the cluster together so the evidence and framing stay consistent — but every listing still clears the triple-validated gate on its own. Clustering decides the order of work; it never waives a step.
  4. Watch the whole cluster for the relist. The reason you clustered is that these sellers come back. After removal, reappearance monitoring re-checks the surface and re-scores fresh listings; a new listing that clusters onto the same photo is the same fight, caught early. (More on that pattern in why counterfeit listings come back.)

How is this different from per-listing image similarity?

The two are easy to conflate and do different jobs. Similarity scoring is detection: one candidate listing measured against a reference you supplied. Clustering is organization: your detections measured against each other, with no reference required. You want both — similarity to find the counterfeit whose photo copies your packaging even when the text is clean, clustering to reveal that the counterfeit has five siblings.

 Per-listing similarityCross-listing clustering
QuestionDoes this photo match your genuine product?Which flagged listings share a photo with each other?
Compares againstA reference asset you uploadYour other open detections
Job in the workflowDetection / scoringPrioritization / grouping
Answers withA similarity score on one listingA group of listings + a cohesion score

They share plumbing — the same CLIP embedding service, the same 30-day cache — which is why the second one is cheap to run once the first exists. A cluster that lights up alongside a fresh Brand Registry rejection is often the same story from two angles; if you’re untangling those, reading the rejection email pairs well with reading the cluster.

How Brand Protector handles this

Cross-listing image clustering ships as the daily image_clusterer_job: it embeds each tenant’s open marketplace detections, clusters the ones that share photography, and writes the groups — with cohesion scores — to the tenant’s workspace so repeat-offender patterns are visible instead of buried across a hundred inbox cards. It runs on a cached-embedding budget with a per-tenant cap and a global kill switch, and the similarity threshold is yours to tune.

What it does not do is act on its own. A cluster reprioritizes the queue; it does not file anything, and it never asserts who is behind the listings. Every takedown that comes out of a cluster still passes the same triple-validated gate — AI confirmation, human review, and an admin attestation with explicit identifier confirmation — before a notice leaves the building. That’s available in the marketplace-takedown workflow on the single $199/mo plan, with a 7-day trial and no sales call.

This article is general information about brand-protection tooling, not legal advice. A shared photo is an investigative signal, not a determination of ownership or infringement; consult qualified counsel before acting on one.

Frequently asked questions

How do you find the same counterfeiter across marketplaces?

You look for what's expensive for them to change. Seller names, titles, and prices are cheap to swap on every relist; product photography is not — reshooting a convincing product image costs real effort, so counterfeiters reuse the same shots. Cross-listing image clustering embeds each listing's images and groups the ones that are visually near-identical, even across different sellers and different marketplaces, so the reused-photo pattern surfaces as a single cluster.

What is cross-listing image clustering?

It's grouping a brand's flagged marketplace listings by shared photography rather than scoring one listing at a time. Brand Protector embeds the images on each open detection, computes pairwise visual similarity, and connects listings above a similarity threshold into a cluster. A cluster reading like 'six listings across three sellers share the same product photo' is a prioritization signal that those listings likely trace to one supply chain.

How is image clustering different from image-similarity scoring?

Image-similarity scoring answers 'does this one listing's photo match your genuine packaging?' — one listing versus a reference you supplied. Clustering answers 'which of your flagged listings share a photo with each other?' — listings versus each other, no reference needed. Similarity finds counterfeits; clustering organizes the ones you've already found into likely networks so you triage the network, not the card.

Can image clustering prove two listings have the same owner?

No. A shared photo is strong circumstantial evidence of a shared source, but it is an image-based inference, not proof of common ownership — stock imagery, a shared dropshipper, or a lifted photo can all put the same picture on unrelated sellers. Treat a cluster as a prioritization signal that advises where to look, never as a finding of who is behind the listings.

What similarity threshold does clustering use?

The default is a cosine similarity of 0.92, chosen so angle and lighting variants of the same photo cluster together while merely same-category product shots don't. It's tunable per tenant — a tighter value for brands whose genuine photos already look alike, a looser one for categories where counterfeiters crop or color-shift the image.

Does clustering find new listings, or group ones I already detected?

It groups. Clustering runs over your open detections — the listings the marketplace scanners already surfaced — and organizes them into repeat-offender patterns. Discovery is the scanners' job; clustering is the prioritization layer on top of what they find.

Is a cluster enough to file a takedown?

No. A cluster tells you which listings to work as a batch; each listing in it still goes through the same triple-validated takedown gate — AI confirmation, human review, and an admin attestation with explicit identifier confirmation — before any notice is filed. Clustering changes what you prioritize, not what you're allowed to skip.

Stop filing takedowns by hand.

Daily scans find the listings, evidence packs are built for each platform's intake, and a triple-validated gate reviews every notice before it's filed.

7-day free trial · card required, no charge until day 8 · cancel in-app