Skip to content
RankFabrik · data

03Jobs API · Pricing

Jobs API pricing in 2026 — the 1,000-result cap, and the API that gets past it

Almost every jobs API quietly inherits the same ceiling: the public source returns at most a thousand postings per search, no matter what you ask for. Below is what that cap costs you, how segmentation reopens it, and the one figure no provider prints — how much of each field is actually filled.

Competitor prices verified 17 August 2026 on each provider's own page. Volume figures measured on live runs. Last updated 17 August 2026.

1,000/search

The public source's hard ceiling per query

6,012/query

Same query, segmented by window & basin — in 123 s

$2.50/1k

RankFabrik on Apify — pay per posting returned

Per 1,000 job postings, side by side

ProviderFree tierPaidPer 1,000Model
Coresignal Jobs API7-day trial$49/mo · 2,500 credits$19.60Hosted API
Apify Indeed/LinkedIn actorsPlatform creditPay-per-useVaries by actorThird-party actors
RankFabrik JobsEmpty runs — never billedPay-per-event on Apify$2.50–$4.00Apify actor

Coresignal's number is exact because its billing is: $49 for 2,500 credits, one credit per job posting, so $19.60 per 1,000. The third-party Apify row is left as a range on purpose — the marketplace's Indeed and LinkedIn scrapers are dozens of competing actors with no shared price and no measured fill rate. RankFabrik's own actor prints a firm pay-per-event figure; we only put one where it's published.

The 1,000 ceiling, and how it's reopened

No single request asks the source for more than it will give. The trick is to ask along axes that each carry their own thousand:

On a single "developer / Île-de-France" query, a plain call returned 949 postings. Opening the window and basin axes took the same query to 6,012 distinct postings in 123 seconds — and the response lists each axis it opened and how many it added, so the number is one you can reproduce, not one you have to trust.

The figure no one prints: fill rate

Providers count fields they could return ("20+ data points"). None tell you, before you pay, how many postings actually carry a salary. RankFabrik measures it and puts it in the response. Here is a real Île-de-France developer sweep — the percentage of postings where each field was actually filled:

title 100%
company 97%
applicants 88%
salary 23%

Salary at 23% is not a failing — it is the truth about public job listings, and you read it from the completeness block instead of discovering it after you have imported ten thousand rows.

What a response looks like

One call, distinct postings, deduplicated on the posting identifier. Missing fields come back empty — never silently dropped — and the completeness block scores the batch.

GET /balayer?metier=developpeur&lieu=France&fenetres=1

{
  "metier": "developpeur",
  "lieu": "France",
  "count": 6012,
  "axes": { "publicationWindows": true, "cities": 8 },
  "completeness": {
    "title": 100,
    "company": 97,
    "applicantsCount": 88,
    "salary": 23
  },
  "jobs": [
    {
      "title": "Développeur Node.js — H/F",
      "company": "Groupe Ferrand",
      "location": "Paris 11e",
      "salary": null,
      "applicantsCount": 37,
      "published": "2026-08-14"
    }
  ]
}

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. Overlapping cells and cross-window duplicates are removed on the posting identifier before anything is counted.

$2.50/1k

job — posting

$4.00/1k

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.

Run it on Apify — pay per posting returned → Read the docs

Questions

Why do job APIs stop at 1,000 results per search?

The public job source caps a single query at roughly 1,000 positions — ask for more and you still get 1,000. Most wrappers inherit that ceiling silently. RankFabrik never asks the source for more than it allows; it asks several times instead, segmenting by publication window (24h, 7 days, 30 days) and by employment basin. Each segment reopens a fresh thousand. On one query that took a plain call from 949 to 6,012 postings, in 123 seconds, and the response lists every axis it opened and what each one returned.

How much does a jobs API cost per 1,000 postings?

RankFabrik runs on Apify and bills per event, not per month: $$2.50 per 1,000 for a plain listing (job) and $$4.00 per 1,000 for a full-fiche row with description, seniority and applicant count (job-complete). You pay only for postings the actor actually returns — an empty run costs nothing. Coresignal's self-service Jobs API works out to $19.60 per 1,000 — its $49 Mini plan covers 2,500 credits and a job posting costs one credit. Prices verified 17 August 2026 on each provider's own page.

How are duplicate postings handled?

Deduplication is done on the posting identifier, not the job title. Two "Node.js Developer" roles posted in Lyon and Nantes are two real openings and both survive; a title-based merge would have thrown one away. That means the count you get is a count of distinct postings, not an inflated total.

Can I see how complete the data is before paying?

Yes. Every response carries a completeness block scoring each field across the batch — on a real Île-de-France developer sweep: title 100%, company 97%, applicants 88%, salary 23%. Salary is thin on public listings and you learn that from the response, not after you have paid for volume. That measured per-field fill rate ships on every call, so you size a run on real numbers rather than a guess.

Is the extra volume automatic?

No, and that is deliberate. The segmentation axes each cost requests and stay off by default: a call that does not switch them on returns less — it does not silently run ten times slower and bill you for it. You open the axes when you want exhaustiveness, and the response tells you exactly what each one added.

Does it return the company behind the posting, not just the job?

Yes. Every listing carries its company page link, and /societe reads the public company page to return its size, industry, website and head office — the enrichment other hosted jobs APIs sell as a separate company product. On our samples the public page filled all four fields seven times out of seven; when a field is not shown it comes back empty, never guessed. It stays off by default (societe=1 on /completes) because it costs one extra request per company.