ℹ️ Retrieve jobs, articles, & organizations from "Welcome to the Jungle" using this Actor. Precision meets ease in this modern data tool. Perfect for recruiters, jobseekers, & researchers. Your key to the latest job market insights.
Pricing
from $0.20 / 1,000 job listing with salary & companies
Jobs, articles and organizations from Welcome to the Jungle.
Dates are the day each version was released.
2.7.0 — 2026-09-14
Pay-per-event pricing: you pay for the rows you get, and platform usage is included. Apify is
retiring rental pricing, so the $20/month subscription is replaced by a price per result — lower on
paid Apify plans.
Price per 1 000
Free plan
Starter
Scale
Business and above
Job listing — every job row
$0.30
$0.20
$0.20
$0.20
Full job details & apply link — add-on, per job
$0.50
$0.40
$0.40
$0.30
Enriched company profile — every company row
$0.40
$0.30
$0.30
$0.20
Article — every article row
$0.40
$0.30
$0.30
$0.20
Each run also carries one Actor start event, at $0.00005.
Full job details is an add-on, billed only when delivered. Every job row is billed as a listing.
A job that comes back with its full page — description, candidate profile, skills, benefits,
recruitment process, apply URL and the extended company profile — is also billed the add-on. A
listing whose full page can't be retrieved is billed as a listing only. Turn off Fetch full job
details to pay for listings alone.
Your maximum cost per run is always respected. The Actor checks the budget left before each
batch, delivers only what it covers, and ends the run as Succeeded with a status message saying how
many items it delivered. It is never billed past your limit, and the limit is worked out at the price
of your own Apify plan.
What typical runs cost: 1 000 jobs with full details come to $0.80 on the free plan, $0.60 on
Starter and Scale, and $0.50 on Business. The same 1 000 jobs as listings only: $0.30, $0.20, $0.20.
The input form now says what each option costs.Fetch full job details names its add-on, and
Max items notes that it caps a run's cost as well as its rows.
For existing users
Saved inputs keep working unchanged, and Fetch full job details stays on by default. If you only
need listings, switching it off now lowers the bill as well as the run time.
2.6.0 — 2026-09-13
Toolchain update: the Actor now runs on Node 24. It was still built on apify/actor-node:18 — a
Node release that went end-of-life in April 2025 and stopped receiving security patches.
Node 18 → 24 (apify/actor-node:24, Apify's current default image), and the Dockerfile was
rebuilt from Apify's current template: correct file ownership, and the process is now started
directly rather than through an npm wrapper, so the platform's stop signal reaches it.
Known vulnerabilities in shipped dependencies went from 13 (9 of them high) to 3 moderate. The
three that remain are upstream in Apify's own crawler library, and the only "fix" npm offers for
them is a major downgrade.
Dependencies moved to their current major versions, including the Apify SDK (3.1 → 3.7) and the
HTML-to-Markdown and HTML-to-text converters. Three unused packages were dropped.
One small output change
The Markdown converter's major version slightly changes how it formats 8 fields in 1 000. Both
changes are corrections: a blank line now precedes a --- horizontal rule (without it, Markdown
parsers read the line above as a heading), and nested list items are indented by two spaces instead
of three, which is the standard. Plain-text output is unchanged, byte for byte — verified across
501 real job descriptions.
2.5.0 — 2026-09-12
Start URLs is now one thing only: paste a page URL, get that page back as a row. It used to do
three unrelated jobs at once, which made it hard to predict what a run would return.
A company URL (/companies/{company}) now returns that company's profile as a row — the
same kind of row the Organizations action produces, and a richer one. It carries all 25 fields of a
native company row plus 10 more: the gender-equality indexes (equality_indexes, present for
two thirds of companies), the company's official website, its canonical and per-language WTTJ
URLs, when the profile was last updated, its cover image and its default language.
Companies that have been renamed resolve correctly. 13 % of companies are still reachable under
a slug they no longer use — financo is now Arkéa Financements & Services, solem is Primal —
and the row carries the company's current slug and URL, with requestedSlug recording the one you
pasted so rows still match your input.
A job URL returns that job, exactly as before.
Several company URLs now all work. Previously only the first one had any effect and the rest
were dropped without a word.
A URL we cannot recognise now stops the run with a clear message instead of falling through to
a sweep of the whole board. /jobs/anything in particular used to be read as an empty search and
did exactly that. Pasting the /jobs landing page still means "everything", and an unrecognised URL
alongside a real filter still just warns.
Changed — read this if you pasted company URLs
A company URL used to filter the search to that company, so a run returned that company's jobs.
It now returns the company instead. To get a company's jobs, put it in the Companies filter,
which takes as many companies as you like and now accepts a full company URL as well as a slug. The
run log says so explicitly whenever a company URL is resolved.
Companies are now enriched, whichever way you ask for them
The Organizations action used to return a lighter company record, while a pasted company URL
returned a fuller one — the same company came back with 25 fields one way and 37 the other. The action
now fetches the same company record, so a company row is identical whichever route produced it
(verified byte for byte). That adds the gender-equality indexes, the official website, the canonical
URLs and the last-updated date to every company the action returns.
It adds very little time — 1 000 companies take about 8 seconds. Set Include details to false
for the previous, lighter row, which is about twice as fast. When a company's profile has been
withdrawn (0.6 % of a 1 000-company run) the row keeps its basic record and says so in detailsError.
Also
The Organizations view grew from 56 to 91 columns so every field of a company row is visible, with
the equality indexes broken out into their eleven individual scores rather than one JSON blob. All
318 columns across the three views are verified against the live platform.
Start URLs is retitled Page URLs, which is what it does.
Memory is now a single 1 024 MB tier — it was already the default and the minimum, and measurements
showed nothing above it helps: a run waits on the network, not on CPU or memory.
2.4.0 — 2026-09-12
The dataset views were rebuilt from scratch. Ten overlapping views became three, one per kind of
row, and each one now carries every field that row type has.
Overview (198 columns) holds every field of a job, Articles (28) every field of an article,
Organizations (56) every field of a company. Nothing is split across views any more, and nothing
is missing from them: previously eight of the ten views were different partial takes on a job, and
picking the right one to export from was guesswork.
Columns are ordered so the table is readable at a glance — company logo first, then the job URL,
title, company, company page and apply URL, then everything else by how often it actually carries
a value. Fields that are usually empty sit at the far right instead of interrupting the useful ones.
Two columns that silently returned nothing have been removed — profession.id, which WTTJ does
not serve, and a company cover image under a language level that job rows do not have. All 282
columns are now verified against the live platform with real rows before release, so a column that
the dataset would quietly drop cannot ship again.
No change to the data itself: the rows the actor pushes are identical, only the way the dataset
presents them changed. Existing exports by field name keep working.
2.3.1 — 2026-09-12
Fixed an error message that still pointed at an input field removed in 2.3.0.
2.3.0 — 2026-09-12
Proxy settings are no longer part of the input. Proxying is fully managed by the Actor, so there
is nothing to configure and every run gets the same tested setup. The input form went from 28 to 25
fields and the Advanced section is gone.
Saved runs that still pass the old proxy fields keep working — the fields are ignored, not rejected.
2.2.0 — 2026-09-12
Enriched runs are faster and more reliable. 1 000 fully enriched jobs now come back in about
40 seconds.
Failed detail requests are retried more intelligently, so one slow request path no longer drags a
whole run down. The failures that remain are genuine: jobs that were archived but are still listed.
2.1.0 — 2026-09-12
Fixed: pasting job URLs crawled the entire board. Because the platform fills in the schema
default (action: "get-jobs") on every run, a five-URL request could not be told apart from a
search and went on to enrich all ~86 000 listings. Pasted URLs are now a complete request on their
own unless a query, filter, date window, scope URL or non-default action is also set.
Memory is pinned at 1 024 MB — 512 MB was running out on 1 000-job runs — and detail requests are
now paced across the whole run instead of per batch, which keeps large runs steady.
2.0.1 — 2026-09-11
The dataset schema is typed and enforced, and a row that fails validation no longer takes the rest
of its batch down with it — the run falls back to row-by-row pushes and parks rejects for inspection.
A real output schema, and a description on every input so the Apify build stops failing.
2.0.0 — 2026-09-11
Detail enrichment was rebuilt for reliability.
Every emitted field is reachable in a dataset view.
Versions before 2.0 are recorded in the git history.