LinkFetch vs Bright Data — compliance-first vs proxy-first.
Pricing · LinkFetch vs Bright Data.
The table.
| capability | LinkFetch | Bright Data |
|---|---|---|
01Jobs floor price | $29 / mo | $250 min order |
02Per-record cost (jobs) | ~$0.005 (1 credit) | $2.50 / 1K |
03Typed jobs schema (parsed salary, workplace_type, level) | yes | Range only |
04is_active flag re-checked on every crawl | yes | no |
05Real-time webhook (<60s) | yes | Yes |
06MCP-native (Claude · Cursor · Zed) | yes | no |
07Time to first call | 90 sec | Hours · proxy setup |
08User-is-principal model (profiles) | yes | no |
09No proxy bandwidth fees | yes | no |
10Provenance on every row | yes | no |
11GDPR + CCPA aligned | yes | Partial |
12Snowflake / S3 / Pub-Sub / Azure delivery | Custom tier | yes |
13Multi-source dedupe (LinkedIn + Indeed + Glassdoor) | no | yes |
LinkFetch: typed API, provenance on every row
Bright Data: proxy + parser workflow you maintain
Swap Bright Data → LinkFetch in 30 minutes.
# 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// LinkFetch — typed jobs API, no minimum
import { LinkFetch } from "@linkfetch/sdk";
const lf = new LinkFetch({ apiKey });
const { data } = await lf.jobs.search({
q: "backend engineer",
location: "United States",
workplace_type: "remote",
posted_within: "week",
});
// rows already typed, deduped, with is_active flagQuestions 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 webhooks too — what's the difference?
Bright Data delivers via webhook on the dataset/scraper-API model — but you still pay per record fetched and you get the raw scraped row. LinkFetch's webhook is event-shaped: one signed POST per new matching role with the typed schema (parsed salary, is_active, workplace_type) ready to feed an LLM. Different ergonomics for different buyers.
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.