Welcome to the Jungle jobs API (JSON) | Daemon Data
Welcome to the Jungle Jobs Scraper is a pay-per-record Apify Actor by Daemon Data that returns France-focused public WTTJ board jobs with descriptions, company profiles and only-new feeds as JSON, CSV or Excel. It costs $0.0008 per job with the default options ($0.80 per 1,000); no login to the source site, no proxy, no browser, and the same input runs from the Apify console, one REST call, Python, Node.js, n8n or an AI assistant through MCP.
Daemon Data Welcome to the Jungle Jobs Scraper on Apify Listing as plain text
Checked on 23 Oct 2026
A public Python search matched 1,673 jobs on the France-focused board. Source searches expose at most 1,000 accessible hits each; narrow broad queries using country, company, contract or remote filters. Salary numbers are preserved as provided and may use inconsistent units.
Output fields
The most useful top-level fields with values from a real record; the full list is id, sourceId, dedupKey, url, applyUrl, title, slug, company, locations, offices, countryCodes, remoteMode, contractType, language, salary, experienceLevel, educationLevel, profession, sectors, postedAt, updatedAt, startDate, skills, tools, descriptionHtml, description, candidateProfile, recruitmentProcess, query, source, scrapedAt. Per-field notes and the OpenAPI definition are on the Apify API page.
| Field | Type | Example |
|---|---|---|
id | string | "WEBNE_2q66Zp5" |
dedupKey | string | "wttj:WEBNE_2q66Zp5" |
title | string | "Développeur Python - LLM/RAG H/F - Paris" |
company | object | {"name": "Webnet", "slug": "webnet", "employeeCount": 200} |
url | string | "https://www.welcometothejungle.com/en/companies/webnet/jobs/develo... |
salary | object | {"minimum": 45, "maximum": 45, "currency": "EUR", "period": "yearly... |
query | string | "python" |
Input and how to call it
A verified example input (it returned data on 2026-10-23):
{
"queries": [
"python"
],
"countryCodes": [
"FR"
],
"contractTypes": [
"FULL_TIME"
],
"maxJobs": 20
}
One HTTP call starts a run, waits for it and returns the records (token from console.apify.com):
curl -X POST "https://api.apify.com/v2/acts/data_daemon~welcome-to-the-jungle-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries": ["python"], "countryCodes": ["FR"], "contractTypes": ["FULL_TIME"], "maxJobs": 20}'
Python: ApifyClient(token).actor("data_daemon/welcome-to-the-jungle-jobs-scraper").call(run_input=...), full file python/welcome-to-the-jungle-jobs-scraper.py. Node.js: node/welcome-to-the-jungle-jobs-scraper.mjs. n8n: importable workflow.
AI assistant (MCP): add the remote server https://mcp.apify.com/?tools=data_daemon/welcome-to-the-jungle-jobs-scraper with header Authorization: Bearer YOUR_APIFY_TOKEN in Claude, ChatGPT, Cursor or VS Code and ask for the data in plain words.
All input fields
| Field | Type | Meaning |
|---|---|---|
queries | array | One public WTTJ search per keyword; jobs shared by several searches are delivered once. Default: python. An empty array runs no searches. Maximum 50 searches. |
countryCodes | array | Optional two-letter office country codes, for example FR, ES or DE. Several values match any of them. Covers the France-focused public WTTJ board, including its jobs abroad; not the separate Otta/US/UK matching inventory. |
locations | array | Optional case-insensitive substring match on public office city, region or country. Accents are ignored. Several values match any of them. Applied locally within the source search window; use countryCodes to narrow the source search first. |
contractTypes | array | Optional: FULL_TIME, TEMPORARY, INTERNSHIP, APPRENTICESHIP, FREELANCE, VIE, PART_TIME or OTHER. Several values match any of them; other filter groups are combined with AND. |
remoteModes | array | Optional: fulltime (fully remote), partial (hybrid), punctual (occasional), no or unknown. Several values match any of them. This is the source designation, not a promise that applicants can work from any country. |
languages | array | Optional two-letter posting language codes such as fr or en. Several values match any of them. |
companySlugs | array | Optional company URL slugs, for example webnet or elis-france. Several values match any of them. These must be slugs, not display names. |
salaryCurrency | string | Optional three-letter currency such as EUR. Filters on disclosed currency, not salary size. Salary numbers are preserved as provided; employers use inconsistent units. |
postedWithinDays | integer | Optional 1-365 day posting window; 0 means no date filter. Jobs with unknown dates are excluded when enabled. Applied locally before fetching descriptions. |
includeDescription | boolean | Read each public job detail endpoint for description HTML, plain text, candidate profile, recruitment process and public company metadata. Off returns search listing data only. Same price per delivered job. |
maxJobsPerQuery | integer | Maximum delivered jobs per keyword, after filters and exclusions. Default 20. 0 means up to the source maximum of 1,000 accessible hits per search. Narrow broad searches with country/company/contract filters. |
maxJobs | integer | Global delivery cap across keywords. Default 20; 0 removes this cap but the per-keyword and 1,000-hit source windows still apply. Set a maximum charge in Apify for a spending cap. |
skipJobIds | array | Optional output id, sourceId or dedupKey values. Excluded jobs are skipped before detail requests and are not charged. Suitable for a database or spreadsheet containing jobs you already have. |
onlyNewSinceLastRun | boolean | Remember delivered job IDs in a persistent named key-value store. Later runs with the same state name return unseen jobs. Skipped jobs are not charged. First run is a baseline capped by maxJobs; later runs may fill older unseen backlog. Memory expires after 120 days and retains at most 50,000 IDs per feed. |
stateName | string | Optional stable name for an only-new feed (maximum 120 characters). Same name shares memory across tasks in your account; avoid overlapping runs. Leave empty to derive a name from the search filters. Change the name for a fresh baseline. |
Price
$0.0008 per job ($0.80 per 1,000); $0.001 per run. List prices for Apify Free and Starter plans; Scale and Business plans pay 15% to 30% less.
| Event | Price | Per 1,000 | Charged when |
|---|---|---|---|
| Job | $0.0008 | $0.80 | One delivered public WTTJ job: full description when enabled, company profile, offices, contract and remote labels, disclosed salary as provided. |
| Actor Start | $0.001 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
Worked example: the input above, capped at 20 jobs, costs at most $0.017. Apify's free plan includes $5 of usage a month, about 6,250 jobs; the Actor's own compute is included in the per-record price, and records skipped by filters, de-duplication or only-new mode are not charged.
What it is not for
Separate Otta/US/UK personalized matching inventory; normalized salary benchmarks (raw source units vary); more than 1,000 hits per source search. The data belongs to its publisher; the Actor reads public pages and endpoints and leaves out personal contact details.
Ready-made example pages
Saved inputs you can run with one click on Apify (Examples tab); each has its own page:
- Welcome to the Jungle Python jobs in France as JSON: Export Python full-time jobs on the public France-focused WTTJ board, with full descriptions, company profiles, offices, remote mode and disclosed salary as provided. Bounded example: five jobs.
{"queries": ["python"], "countryCodes": ["FR"], "contractTypes": ["FULL_TIME"], "maxJobs": 5} - Welcome to the Jungle fully remote Python jobs as JSON: Five public WTTJ jobs matching Python and the source fully remote label, with descriptions, company metadata and office countries. Coverage is the France-focused board, not the separate US/UK matching product.
{"queries": ["python"], "remoteModes": ["fulltime"], "maxJobs": 5} - Webnet Python vacancies on WTTJ: company jobs API: Public Webnet Python jobs on Welcome to the Jungle, with full descriptions and company profile. Replace the company slug to monitor another employer on the France-focused public board. Up to five jobs.
{"queries": ["python"], "companySlugs": ["webnet"], "maxJobs": 5}
Alternatives, honestly
| Option | What it gives you | Where it falls short for this job |
|---|---|---|
| Public WTTJ company job pages | Browse and apply to public vacancies | Manual reading; this Actor adds structured export and delivered-ID memory |
| Other WTTJ Actors on Apify Store | Structured data from the same source | Compare coverage, description inclusion, only-new memory and price |
| Build your own API client | Control over public search and detail requests | You maintain source configuration, filters, pagination and persistent job IDs |