Most "best job API" roundups treat Indeed, LinkedIn, Naukri, and Upwork as interchangeable — four vendors racing to scrape the same listings. They aren't. Each one covers a different slice of the labor market, structures its data around what that market actually cares about, and prices accordingly. The choice isn't which is "best" — it's which market you're actually trying to read.
If you're an agent (or building one) reading this rather than a human, the full machine-readable schema for every endpoint below lives at mindcase.co/skills.md.
What actually differs across these four job APIs?
Four things, and none of them are "data quality" — all four return real, structured listings:
- Market segment. Three cover full-time employment. One — Upwork — covers freelance and contract gigs, a fundamentally different kind of listing with a budget instead of a salary and a client instead of an employer.
- Regional depth. Indeed spans 54 country domains with one shared field set. Naukri covers exactly one market — India — but goes deeper into it than any of the other three, down to salary bands in Lakhs and walk-in interview details.
- Field count. 33 to 50 fields per row depending on the endpoint, and the extra fields aren't padding — they map to what that specific market actually negotiates on.
- Price. A 60x spread between the cheapest and most expensive endpoint in this list, which is a real signal about how each one is built, not just a pricing-tier decision.
Which market does each one actually cover?
Indeed is the broadest net. 54 country domains, searchable by keyword and location or by direct job ID, aggregating listings posted directly by employers and pulled in from company careers pages. It's the closest thing to a general labor-market index in this list — wide coverage, one shared schema, and by far the lowest price per row.
LinkedIn Jobs is the professional layer on top of
that. Fewer countries covered explicitly, but each listing carries the
context that comes from sitting inside a professional network: a full
company profile, recruiter name and URL, industry classification, and
filters like seniorityLevel-adjacent fields (experienceLevel,
employmentType) that map to how white-collar hiring is actually
structured.
Naukri is India-specific, and specific in general.
It's the only endpoint of the four scoped to a single country, and the
only one that returns benchmarkMinCtcLakhs / benchmarkAvgCtcLakhs /
benchmarkMaxCtcLakhs — a market-rate comparison against the offered
salary — plus employeeReviews, diversityTags, and full walk-in
interview details (walkInVenue, walkInTiming, walkInContact) where
the listing is a walk-in drive rather than an online application. None of
the other three return anything like that, because none of the other
three markets hire that way at meaningful volume.
Upwork isn't an employment API at all — it's a gig
marketplace. No salary field; instead fixedBudget, hourlyRateMin,
and hourlyRateMax. No employer; instead a client object with
clientOtherOpenPostings and hiring history. And fields with no
equivalent anywhere else in this list — minJobSuccessScore,
risingTalentOk, localMarketJob — because a freelance listing is
evaluating a working relationship, not an employment offer.
How do you pull postings from each endpoint?
How do you search Indeed?
curl -X POST "https://api.mindcase.co/v1/data/indeed/jobs/run?wait=true" \
-H "Authorization: Bearer $MINDCASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"params": {
"keyword": "warehouse associate",
"location": "Houston, TX",
"maxItems": 100
}
}'
# $0.00005 per job48 fields per row, including urgentHire, highVolumeHiring,
employerResponsive, and employerResponseRate — real hiring-demand
signals Indeed itself surfaces, not derived from the listing text.
How do you search LinkedIn Jobs?
curl -X POST "https://api.mindcase.co/v1/data/linkedin/jobs/run?wait=true" \
-H "Authorization: Bearer $MINDCASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"params": {
"jobTitles": "product manager",
"locations": "New York",
"maxResults": 100
}
}'
# $0.001 per job33 fields, plus filters most of the others don't offer at all —
easyApply and under10Applicants, which let you narrow a search to
low-competition roles before you've pulled a single row.
How do you search Naukri?
curl -X POST "https://api.mindcase.co/v1/data/naukri/job/run?wait=true" \
-H "Authorization: Bearer $MINDCASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"params": {
"inputs": "software developer",
"maxResults": 100,
"fetchDetails": true
}
}'
# $0.002 per job50 fields with fetchDetails on — the richest row of the four, but only
inside one country. maxResults has a 50-job floor, so a quick 10-job
sample isn't an option here the way it is on the other three.
How do you search Upwork?
curl -X POST "https://api.mindcase.co/v1/data/upwork/jobs/run?wait=true" \
-H "Authorization: Bearer $MINDCASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"params": {
"inputs": "python developer",
"limit": 50,
"isHourly": true
}
}'
# $0.003 per job44 fields, most expensive per row of the four — and the only one carrying
real-time bid competition data: interviewing, invitesSent,
unansweredInvites, and hired, straight from the listing itself.
Which fields actually signal hiring urgency?
Every job board has some version of "this employer needs someone now," but each one encodes it differently:
Indeed returns it as explicit booleans — urgentHire and
highVolumeHiring — plus numberOfHires, so urgency is a flag you can
filter on directly, not something you infer.
LinkedIn encodes it as competition, not urgency: applicants gives a
raw count, and the under10Applicants search filter lets you find roles
before the field gets crowded, alongside easyApply for how much friction
stands between a candidate and a submitted application.
Naukri layers views and applicants with benchmarkAvgCtcLakhs —
so you can see not just how contested a listing is, but whether the
offered pay sits above or below what the market is actually paying for
that role.
Upwork goes furthest, because a freelance listing is a live
negotiation: interviewing, invitesSent, unansweredInvites, and
hired tell you exactly where in the hiring process a posting currently
sits, not just whether it's popular.
What can't you get from any of these?
Two cases, and both come from the source sites, not from Mindcase.
No cross-platform aggregate. There's no single call that returns "all open product manager roles across Indeed, LinkedIn, Naukri, and Upwork" — each endpoint reads its own site, so covering multiple boards for the same search means running multiple calls and merging the results yourself.
No historical listing data. None of the four return when a listing
first appeared beyond its own posted field, and none track a job's full
lifecycle from posting to fill. If a role stops appearing in a search,
that's evidence it closed, not a confirmed close event Mindcase reports
directly.
Which endpoint should you use for which job?
| Endpoint | Input | Price | Best for |
|---|---|---|---|
| Indeed Jobs | Keyword + location, or job IDs | $0.00005 / job | Wide-coverage labor-market scans across 54 countries |
| LinkedIn Jobs | Job title + filters | $0.001 / job | White-collar roles with full company and recruiter context |
| Naukri Jobs | Keyword or search URL | $0.002 / job | Deep India-market hiring data, including salary benchmarks |
| Upwork Jobs | Keyword search | $0.003 / job | Freelance and contract gigs with live bid-competition data |
Pulling 500 jobs from each for a cross-market hiring-intel dashboard: 500 × $0.00005 (Indeed) + 500 × $0.001 (LinkedIn) + 500 × $0.002 (Naukri) + 500 × $0.003 (Upwork) = $3.025 for 2,000 rows spanning four distinct labor markets.
FAQ
Indeed or LinkedIn Jobs, depending on the role type. Indeed's coverage is broader and far cheaper per row; LinkedIn adds company and recruiter context that matters more for white-collar hiring.
No. It's scoped to the Indian job market specifically, which is also why it returns fields — salary benchmarks in Lakhs, walk-in interview details — none of the other three have any equivalent for.
No. It's a freelance and contract marketplace, not an employment board — its rows carry a client and a budget instead of an employer and a salary, and fields like minJobSuccessScore have no equivalent in the other three.
Price isn't tied to data quality here — each endpoint is priced independently based on what it takes to reliably read that source. Indeed returns 48 fields per row at $0.00005; Naukri returns 50 fields at $0.002. Field count and price don't move together across these four.
No. maxResults has a 50-job floor on this endpoint — there's no small-sample option the way there is on Indeed, LinkedIn, or Upwork.
