Skip to main content
NeArbiHunter · Methodology

Methodology: how we collect job postings

We aggregate, clean and structure job postings from the traffic arbitrage market: the catalogue currently holds 1,264 live postings from 30 public Telegram channels and CPA aggregators, plus postings teams publish directly.

Sources

Public material only. 30 Telegram channels run by employers and HR agencies in the CPA industry, the CPA aggregators Partnerkin and Arbihunter, and postings teams publish directly through the bot @HRBAND_ROBOT. Closed chats, private channels and direct messages are never parsed — that breaks Telegram's rules and the industry's trust.

Each posting in the catalogue carries a source passport: where it came from, when it was first seen, what has been checked. The list of Telegram sources is open: the channels we read.

Collection

Telegram channels are read every two hours, aggregators every six. Noise is cut first: candidate resumes, news, affiliate program ads, congratulations. What is left goes into processing.

LLM structuring

A model pulls structure out of the raw text: title, company, specialisation, verticals, seniority, work format, salary range, geo, the contact to apply to. The rule is hard: invent nothing. The description is two to four sentences strictly from the source text, and promotional claims are not rewritten as facts. Numbers in the description must be present in the original, or the result is rejected. Where the source names no range, the catalogue says so.

Scam scoring

Every aggregated posting is checked for scam markers: salaries outside the market, "joining fees", fake contacts, bait postings that exist to harvest resumes. Anything below the trust threshold never reaches the catalogue. Of the 1,264 published postings, 218 state a salary range.

Deduplication

One opening gets reposted into several channels. We compute a deterministic key from the content and collapse reposts into a single record. A posting reappearing in a source extends its life instead of creating a duplicate.

Lifecycle

Dead entries remove themselves: a posting that stops appearing in sources expires and leaves the catalogue. If an employer says it is closed, we take it down at once.

Postings from teams

For postings published directly through the bot the rules are stricter: a salary range is mandatory, the team goes through verification, and applications run through Telegram with nobody in between. In the catalogue they are marked separately, by the verified filter.

What we do not do

  • We do not parse closed channels or private messages
  • We do not substitute employer contacts — applying takes you to the original place
  • We charge neither candidates nor employers for publishing
  • We do not generate fake postings and do not draw figures into counters
  • We do not post aggregated postings to our own channel — only verified ones go there

Taking a posting down

An employer can take its own posting down by writing to [email protected] — we remove it within 24 hours of the check. Classification errors and new source suggestions go to the same address.

Open data: JSON · CSV · NDJSON · RSS · ← to the catalogue

Project sponsors

Companies that keep this analytics open