VSJobs API · JSearch
JSearch vs RankFabrik — a jobs API comparison, with numbers you can re-run
JSearch (by letscrape) is the default jobs API most developers land on through RapidAPI. It is also measurably slow, and it bills a call whether the result was useful or not. Below is a field-by-field comparison, live-measured, not a marketing table.
JSearch figures measured live on its RapidAPI listing, September 2026. Last updated September 2026.
JSearch median response time, same query
JSearch RapidAPI rating, 429 votes
RankFabrik — target SLA, not a guarantee
Head to head
| JSearch (letscrape) | RankFabrik Jobs | |
|---|---|---|
| Median latency | 6,634 ms | < 2,000 ms — target SLA |
| RapidAPI rating | 2.9 / 5 · 429 votes | New listing, no legacy debt |
| Failed or empty run | Billed like any other call | Never billed |
| Fill rate shown before you pay | Not shown | Completeness block on every response |
| Pricing model | Per request, hard tier caps + overage | Pay per event returned — $2.50–$4.00 per 1,000 |
| 1,000-result cap | Inherited from the source, hit silently | Segmented past it — up to ~6,000 postings per sweep |
| Migration | — | Field-mapped, mirrors JSearch's response shape |
The failed-run line is the one that compounds: on JSearch's per-request billing, a rate-limited or empty call still counts against your quota. RankFabrik's rule is unconditional — a run that returns no usable data is never charged, checked on the event, not on the attempt.
Why 3.3× matters in production
6,634 ms is not an inconvenience, it's a budget problem: at 3.3× a <2,000 ms target, a single slow upstream call can push your own endpoint past its own SLA, or back up a worker queue under load. That's the gap this page measures, not a synthetic benchmark.
Don't take the number on faith — the playground runs the real endpoint, so you can time your own query on both before committing a line of production code.
Pricing, in plain units
One event is one job posting returned — job for a plain listing,
job-complete for a row enriched with description, seniority and applicant count.
job — posting
job-complete — posting + company
Pay per posting returned — you are charged only for events the actor actually returns, never for an empty run. Metered and billed by Apify; no separate RankFabrik account to open.
Questions
Why is JSearch so slow?
It aggregates Google for Jobs and several boards live, per request, without a warm cache tier — that's why its measured median lands around 6.6 seconds. Fine for a one-off script; painful once it sits behind your own endpoint's SLA and a slow upstream call starts queueing your own workers.
How do I migrate from JSearch to RankFabrik?
The response is field-mapped to mirror JSearch's shape, so most integrations change the base URL and the auth header (X-Cle-API instead of X-RapidAPI-Key) and keep the rest of their parsing code. We hand over a field mapping table for the handful of names that differ.
Is RankFabrik Jobs also billed per request like JSearch?
No — Apify meters it per event returned ($2.50–$4.00 per 1,000), and a run that comes back empty is never billed. JSearch's per-request tiers charge the call whether the result was useful or not — a 429, a 403 or an empty page still counts against your quota.
What if RankFabrik's data is thinner than JSearch's on my query?
Every response carries a completeness block scoring each field before you commit to volume, and because an empty run costs nothing, you can benchmark the same query against both APIs at zero risk before switching a single line of production code.
Sources — JSearch latency, rating and vote count measured live on its RapidAPI listing (letscrape), September 2026. Search-demand context: DataForSEO, US, September 2026. RankFabrik's latency figure is a target SLA, verifiable in the live playground — shown for comparison, not as a guarantee of individual query results.