Run a DM-history scan to attribute organic fans
Fire a one-click, ban-safe sweep that reads fans' DM histories and infers their source, country, and a sales portrait — without re-clicking.
Who this is for: workspace owners enriching fans who carried no click or link signal — the ones the source leaderboard would otherwise show as organic.
The scan lives on the All Fans screen (/fans). It is genuinely fire-once: pick a target on
the slider and press Start scan, and the server keeps a background sweep going — you never
re-click, and cards fill in live as conversations land.
Start the scan
The ? button next to the two scan buttons holds the explanation and a how many to analyze slider (default: a sensible slice of your total candidates, up to whatever you drag it to). Press Start scan once — the engine then reads spenders' chats one by one, top-spenders first, at its own human pace.
Watch it work
A progress bar and an honest phase line track real state, not invented theatre:
| Phase | What's actually happening |
|---|---|
| The engine is reading chats | A live capture wave is running right now (a real signal, not a guess). |
| Waiting for the engine's next pass | A batch is queued; nothing is being read yet. |
| Paused — account protection | The engine's own ban-safety pause; collection resumes on its own. |
| Scan complete / Scan stopped | Done, or you pressed Stop. |
Cards pop in and pin green at the top for a few seconds as each fan is portraited, then settle into their normal sorted position. A coverage strip above the grid shows the honest current ceiling: source found for about 65% of scanned fans, country for about 78% — with the reason why (an organic fan only names their platform about 1 in 10 times; too-short chats leave no country marker) one hover away.
Stop, or let it finish
Stop halts further harvesting; any batch already in flight finishes on its own. A separate Rescan all button re-runs the improved attribution prompt over already-scanned fans — zero new OnlyFans calls, since it only re-reads what's already captured.
What the scan is allowed to change
The scan always writes the fan's inferred source/country/tags as a discovery record — that
part happens regardless of confidence. It only overwrites the fan's canonical source when the
result is confident (≥ 0.6) and the fan has no hard signal yet. A fan who already has a
cid or a mapped link is never touched — a real click always outranks a chat guess. The full
mechanics of this precedence are in
Fan profile & signals.
Ban-safe by construction
The harvest is the engine's own passive, serial, human-paced capture — one thread at a time, self-halting on any throttle. The scan tab only queues the next batch; it never drives OnlyFans directly, and the portrait step is one local LLM turn over text already captured. Every read is scoped to your own creator page.
When it doesn't start
curl -X POST "https://app.tease.link/api/admin/fans/harvest/start" \
-H "Authorization: Bearer $TEASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "target": 100 }'A start request needs a live engine session for that owner (a connected gateway provider).
Without one, the job is created but flips straight to an error status rather than sitting
stuck. Starting a new scan while another is already running for the same owner doesn't queue
behind it either — it supersedes the in-flight one, stopping it and starting fresh, rather
than stacking a second run behind the first.
What this scan is not
This page covers discovering a source for an organic fan by reading their chat. Two related, but different, tasks live elsewhere:
- Binding a scanned OF campaign link to one of your registered sources is a separate, owner-confirmed step — see the source-layout onboarding flow in Source attribution.
- Manually correcting a fan whose source landed wrong, or reviewing an ambiguous LLM guess, is its own review queue, not this sweep.
What's next
- Export the full fan roster and conversations — download everything this scan builds.
- Fan profile & signals — the mental model behind the confidence rule above.
See which saved lists a fan belongs to
While chatting with a fan, see at a glance which saved segments — "whale," "expired," or anything else you've built — they currently match.
Check a fan's spend before you pitch a PPV
See lifetime and 30-day spend, what a fan already unlocked, and their last purchase without leaving the thread.