§ vs · bright data

LinkFetch vs Bright Data — compliance-first vs proxy-first.

Bright Data sells proxy-based scraping infrastructure plus pre-built datasets. LinkFetch sells a typed, provenance-stamped LinkedIn jobs API — self-serve from $0, MCP-native — and the whole archive as a $199 one-time download. Two different models, two different buyers.
§ 02 · pricing

Pricing · LinkFetch vs Bright Data.

linkfetchactive · 2026
$0 to start ($5 free credit). A jobs search or job detail is 1 credit; empty results are free. Starter $29/mo, Pro $99/mo. No minimum order, no proxy fees. The full 8M+ row jobs archive is $199 one-time, or $49/mo for live read-only Postgres. MCP server included.
bright dataactive
LinkedIn Jobs Dataset: $250 minimum order, $2.50/1K records ($250/100K). Web Scraper API: $1.50/1K records pay-as-you-go, $499/mo Scale tier. Plus proxy bandwidth ($ per GB) on the scraper-API path. Customers often hit 3–5× their initial estimate.
§ 03 · feature-by-feature

The table.

capabilityLinkFetchBright Data
01Jobs floor price
$0 · $5 credit, then $29 / mo$250 min order
02Per-call cost (jobs)
1 credit per page, empty = free$2.50 / 1K records
03Bulk export
$199 one-time · 8M+ rows$250 min order
04Typed jobs schema (parsed salary, level, applicant count)
yesRange only
05is_active flag re-checked on every crawl
yesno
06Applicant count + timestamped history
yesno
07Real-time webhook
Not yetYes
08MCP-native (Claude · Cursor · Zed)
yesno
09Time to first call
90 secHours · proxy setup
10User-is-principal model (profiles)
yesno
11No proxy bandwidth fees
yesno
12Provenance on every row
yesno
13GDPR + CCPA aligned
yesPartial
14Delivery formats
Postgres dump · CSV · JSONL · live DBS3 · GCS · Snowflake · Pub-Sub
15Multi-source dedupe (LinkedIn + Indeed + Glassdoor)
noyes

LinkFetch: typed API, provenance on every row

Bright Data: proxy + parser workflow you maintain

§ 04 · migration

Swap Bright Data → LinkFetch in 30 minutes.

before · bright data
# Bright Data — LinkedIn Jobs Dataset
# $250 minimum, snapshot triggered, fetched on completion
const trigger = await fetch("https://api.brightdata.com/datasets/v3/trigger", {
  method: "POST",
  headers: { Authorization: `Bearer ${BD_KEY}` },
  body: JSON.stringify({
    dataset_id: "linkedin_jobs_dataset",
    filter: { country: "US", role: "backend engineer" },
  }),
});
// poll the snapshot id, download CSV, parse, dedupe yourself
after · linkfetch
// LinkFetch — typed jobs API, no minimum, plain fetch
const params = new URLSearchParams({
  q: "backend engineer",
  location: "United States",
  posted_within: "week",
});
const res = await fetch(`https://api.linkfetch.io/v1/jobs?${params}`, {
  headers: { Authorization: `Bearer ${process.env.LINKFETCH_KEY}` },
});
const { data } = await res.json();
// rows already typed, deduped, with is_active + applicant_count
§ 05 · faq

Questions people ask before switching from Bright Data.

  • I just want LinkedIn jobs — why pay Bright Data's $250 minimum?

    You shouldn't, if you're an indie dev or small team. Bright Data's LinkedIn Jobs Dataset is sold as bulk: $250 minimum order, $2.50 per 1,000 records. LinkFetch is per-call: 1 credit per search (~$0.005 at the Starter tier), no minimum, no snapshot polling. For under ~100K records/mo, LinkFetch is cheaper and the rows are already typed.

  • Bright Data has webhook delivery — does LinkFetch?

    Not yet. Bright Data can push a finished snapshot to your endpoint, but you still pay per record and receive the raw scraped row. With LinkFetch you poll GET /v1/jobs with posted_within=24h (1 credit per page, typed rows), or take the $49/month live database and query first_seen_at directly. Push delivery is on our roadmap and will be announced in the changelog when it ships.

  • Bright Data doesn't surface an is_active flag — why does that matter?

    If you're feeding jobs into an agent's index, you'll fill it up with expired listings within a month. We re-check is_active on every recrawl and surface it as a boolean, so your index stays clean. Bright Data exposes job_posted_date and dataset refresh metadata, but you have to derive expiry yourself.

  • Why isn't Bright Data's model compliant for profiles?

    Bright Data sells proxies; customers are responsible for what they fetch and how. For LinkedIn profiles specifically, they ship pre-built scrapers that fetch behind logins using rented accounts — which violates LinkedIn's terms and has led to repeated enforcement actions. LinkFetch doesn't have this problem because there are no rented accounts in our model — profile reads run on the user's own session via the Chrome extension, jobs come from public guest endpoints.

  • What about other data sources Bright Data offers?

    Bright Data is a general-purpose web-scraping platform; LinkFetch is LinkedIn-specialised. If you need Amazon / Walmart / Google SERP / whatever, stay with Bright Data (or another vertical specialist). If your workload is LinkedIn-centric — jobs, profiles, companies — LinkFetch is cleaner and cheaper.

  • Can I use both?

    Yes. Common pattern: LinkFetch for LinkedIn jobs, profiles, and companies via the typed API; Bright Data for everything else (Amazon, Google SERP, generic web scraping). They don't conflict.