Skip to content
RankFabrik · data

← All products

Fabi, the Jobs mascot

02Jobs

Job postings collected on demand, deduplicated on the identifier.

The public source stops at a thousand postings per search. By segmenting on publish window and by area, we reached 6,012 postings on the same query, in 123 seconds.

https://jobs.rankfabrik.com online

Run it where you already work. Billed per posting returned returned — nothing for empty results.

source cap · 1,000 positions 24h 1000 7d 1000 30d 1000 Lyon 1000 Lille 1000 rest 1012 6,012 postings · 123s · duplicates removed no request exceeds the cap PL. 02 SEARCH SEGMENTATION SC. 1:1

01What sets this service apart

The thousand-result cap is worked around, not forced

No single request asks for more than the source allows. We simply issue several: 24h, 7 days, 30 days, then by job market area. Each segment reopens a thousand-result window.

Deduplication runs on the identifier, not the title

Two "Node.js Developer" postings in Lyon and Nantes are two distinct listings, and both survive. A title-based merge would have thrown one away.

The response says where the volume came from

It lists which segments were opened and what each one returned. A coverage figure you can't reproduce yourself is worth nothing.

The posting carries the company that published it

Every listing yields the company page link. /societe reads it and returns size, industry, website and HQ when the public page shows them. A missing field stays empty, never guessed; and applicantsCountType says whether the count is exact or capped at two hundred.

02A real response

200 GET /balayer?metier=developpeur&zone=idf&axes=fenetre,bassin
title"Développeur Node.js — H/F"
company"Groupe Ferrand"
location"Paris 11e"
salary""
applicantsCount37
published"2026-08-14"
completeness — share actually filled in
title 100 %
company 97 %
salary 23 %
applicantsCount 88 %

What you read before importing

The completude block arrives with every response. For the fields that matter, it gives the share of results where they are actually filled.

An empty field stays empty. No value is approximated, inferred from another field, or reconstructed by a language model.

curl -H "X-Cle-API: YOUR_KEY" \
  "https://jobs.rankfabrik.com/offres?..."

03Routes

RouteWhat it returns
/offresBy role and location, pagination handled, bounded on latency.
/collecteThe requested volume, duplicates removed, with no latency bound.
/balayerFull coverage through segmentation. 949 postings via /collecte, 6,012 via this one.
/completesListing and detail merged: description, applicant count, and the company on request.
/ficheA single listing, when the identifier is already known.
/fichesUp to a hundred listings in one call.
/societeThe company behind the posting: size, industry, website, HQ.

04What this service doesn't do

The segments behind `/balayer` cost requests and stay off by default. A call that doesn't turn them on returns less — it doesn't return the same thing ten times slower.