Audience Miner
Features

The drill, explained.

Six things this tool does that the copy-paste scrapers don’t — each one drawn, because a diagram is harder to fudge than a sentence. Everything below reads with animations off, and every number in the pictures was measured on a live run.

Depth 1 · the cursor

Resume is the product.

Other follower scrapers accept a list and a limit — and no cursor. Every run starts back at the head of the follower list, so re-running buys you the same people again. Audience Miner persists next_page_id after every page: a scan that stops resumes exactly where it left off, having lost nothing and paid for nothing twice. Verified 238 consecutive pages deep on a single live walk — and the ceiling is 200,000 followers per job.

no cursor3 runs · same 42 ftnext_page_idcursor ✓cursor ✓cursor ✓238 pages · one walk
Left: no cursor — every run re-mines the surface. Right: the cursor holds, so each pass starts deeper.
Depth 2 · hydration

A follower row is not a creator. We look everyone up.

A raw follower page is ~50 usernames with no follower counts at all. Every public account gets a full profile lookup — followers, following, posts, bio, links, business fields. The honest part: about 63% of any follower list is private, and those rows stay dim. We never look them up, so they never cost you a request.

one page ≈ 50 rowsprivate · $0private · $0private · $0private · $0followersengagementemail · linkpublic → one lookup, one row · private → skipped, free
Measured across four live runs: 60–63% of a follower list is private. Dim rows are free.
Depth 3 · engagement

Median engagement, because one viral post lies.

A real delivered file once carried a creator at 364.75% engagement — a mean dragged over the follower count itself by a single viral post. We compute the median of recent posts and keep the mean beside it, because the gap between the two is the viral-spike signal, not a number to hide.

mean — draggedmedian — what ships1 viral postthe 364.75% incident, never again
The spike drags the mean. The median doesn't move. Both ship in the CSV.
Depth 4 · contact routes

Emails, de-styled from decorative Unicode.

Creators write bio emails in small-caps Unicode — a plain regex “matches” them and captures an unmailable string. We normalize the glyphs before parsing, and we also read the structured business-contact field most scrapers can’t see at all. On a measured 2k–5k creator pool, that field alone turned “no emails at this size” into 1 in 5.

ʟᴜᴍɪɴᴏᴜꜱᴍᴏᴍx5@ɢᴍᴀɪʟ.ᴄᴏᴍunmailablede-style glyphsluminousmomx5@gmail.com✓ mailableplus the structured business-contact field most scrapers never see
The same address, before and after glyph normalization. Only one of them can receive mail.
Depth 5 · filtering

Filter forever. The price never moves.

Follower band, engagement floor, follows-to-followers ratio, post recency, has-email, has-link — all applied to results you already own, in the dashboard or the export. Filtering is free by construction: you paid to look, and looking already happened. Narrowing 4,326 rows to 250 costs exactly nothing.

2k–5k bandengagement ≥ 2%has contact route4,326 → 250 rowsprice$0.00per filter applied
The funnel tightens; the meter doesn't blink. Filtering never changes the price.
Bedrock · billing

1 credit per request. Auditable to the row.

You’re billed on the exact unit our data source bills us on: one request — a follower page, a profile lookup, an engagement fetch. Every job records its own billed_requests, so the invoice can be checked against the job’s stats. The reserve is the stated worst case; the settle is what actually ran; the difference comes back.

requestscreditspage · lookup · media1¢ each · settle ≤ reserve4,815 requests billed = 4,815 credits settled, on the job's own row
Requests tick, credits tick, the same number. There is no second meter.
What comes back

Every public follower, as a row you can act on.

Follower counts are integers, not “128k” strings. Engagement is the median of recent posts, not the mean — so one viral post can’t inflate a creator who normally reaches nobody. Emails are de-styled before parsing, because creators write them in decorative Unicode that a plain regex captures as gibberish.

1
Credit per request
200,000
Followers per scan
~40%
Of a list is public
0
Cost to filter results
Username & display name
Followers, following, posts
Engagement rate (median)
Avg likes & comments
Business contact email
Email parsed from bio
External link in bio
Verified · business · category
Self-reported location
Profile picture URL
Free filtering on results
Resumable to any depth
Native MCP server
REST API
CSV / JSON export

Ready to dig?

Point it at an account. Set a depth. Everything public comes back as rows.

⛏ You’ve reached bedrock. The drill goes deeper than the page does.