Welcome to the Jungle Jobs Scraper | Every Job, ATS & Companies avatar

Welcome to the Jungle Jobs Scraper | Every Job, ATS & Companies

Pricing

from $0.40 / 1,000 results

Go to Apify Store
Welcome to the Jungle Jobs Scraper | Every Job, ATS & Companies

Welcome to the Jungle Jobs Scraper | Every Job, ATS & Companies

Export every Welcome to the Jungle (WTTJ) job, past the site's 1,000-result search limit: up to the whole ~90,000-job board in one run. 105 fields: salary, remote, contract, skills, apply link with ATS vendor, and company website, LinkedIn, headcount, revenue. Incremental alerts.

Pricing

from $0.40 / 1,000 results

Rating

0.0

(0)

Developer

Corvuslab

Corvuslab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

What does Welcome to the Jungle Jobs Scraper do?

Welcome to the Jungle Jobs Scraper exports job listings from Welcome to the Jungle (WTTJ) as clean structured data with 103 fields per job: salary, remote policy, contract type, skills, the apply link with its applicant-tracking system, and company data (website, LinkedIn, headcount, revenue, HQ). The site's own search stops at 1,000 results per query; this Actor goes past that, so one run can export every matching job, up to the whole board of about 90,000 jobs.

Give it search terms, locations, countries, companies, filters or Welcome to the Jungle URLs, or press Start with an empty input for the newest 100 jobs. No code, no login, no proxy. Export as JSON, CSV, Excel, via API or as an MCP tool for AI agents.

New to Apify? Sign up free and use the included monthly platform credit to try this Actor — no credit card needed.

Why this scraper

  • 🚫 No 1,000-result ceiling — tested on all 5,476 UK jobs in one run: 5,476 unique jobs, exactly the site's count.
  • ⚡ Fast & low-cost — about 400 fully detailed jobs in 16 seconds.
  • 🏷️ ATS vendor and apply domain on every detailed job.
  • ♻️ Cheap to monitor — incremental mode skips unchanged jobs before their details are fetched.

What data can you extract from Welcome to the Jungle?

GroupWhat you get
JobTitle, reference, URL, contract type and duration, remote policy, minimum experience, education level, category, profession, sectors, benefits, key missions, summary, posting language, dates
SalaryMinimum and maximum, currency, period, yearly-normalised minimum, hasSalary flag
LocationCity, district, region, country, coordinates, street address, postal code, and every office of multi-site jobs
Apply & ATSApply URL, apply domain, ATS vendor, whether you apply on WTTJ itself, required documents, number of application questions
CompanyName, logo, description, headcount, founded year, revenue, average age, share of women, equality index, labels, HQ, open jobs, website, LinkedIn, Facebook, Instagram, X and YouTube
Long textsJob description, candidate profile and recruitment process as plain text, HTML and/or Markdown

Key features

  • 🚫 Every job, not the first 1,000 — "all jobs in the UK" really means all of them, and a whole-board export is one run.
  • 🏷️ Where you apply — applyDomain on every detailed job, the ATS vendor (atsProvider) on roughly 40% of them, plus the required documents. Most job exports stop at the apply link.
  • 🏢 Company data on every row — website, socials, headcount, founded year, revenue, HQ, gender split and open-job count travel with each job, so you need no second company lookup.
  • 💶 Full details in one price — description, apply link, skills and company data come with the per-job charge, with no details add-on.
  • 🎚️ Every site filter — keywords (optionally title-only), locations with a km radius, 58 countries, companies, contract, remote, posted within, experience, education, salary, company size, sector, job category and posting language. Filtered-out jobs are never billed.
  • 🔗 Paste any WTTJ URL — a search page keeps its filters, a company page returns all its open jobs, a job page returns that job.
  • 🔔 Monitoring and alerts — incremental mode plus Telegram, Slack, Discord or webhook notifications.
  • 🤖 AI-ready output — compact mode, drop-empty mode and text truncation keep payloads small.

🚀 How to scrape Welcome to the Jungle

  1. Enter search terms (e.g. data analyst), pick locations, countries and filters, or paste a Welcome to the Jungle URL.
  2. Set Max results (0 = no limit).
  3. Click Start. Jobs stream into the Output tab.
  4. Download as JSON, CSV or Excel, or pull them from the API.

Quick-start example input

{
"searchTerms": ["data analyst"],
"locations": ["Paris"],
"radiusKm": 20,
"remote": ["fulltime", "partial"],
"postedWithin": "7",
"maxResults": 200
}

This returns up to 200 data-analyst jobs posted in the last week within 20 km of Paris that allow full or partial remote work, newest first.


Input

All 39 inputs are optional and grouped as in the editor.

FieldTypeWhat it does
searchTermsarrayJob titles, skills or keywords. Each term runs as its own search; results are merged and de-duplicated.
searchInTitleOnlybooleanMatch search terms in the job title only.
locationsarrayCity, region or district names, e.g. Paris, London, New York. A job matches when any of its offices is there.
radiusKmintegerWiden each location to everything within 1–500 km.
countriesarrayOnly jobs with an office in these countries (58 to choose from).
startUrlsarrayWTTJ search, company or job page URLs.
companiesarrayCompany names as in their WTTJ URL (doctolib, l-oreal) or full company URLs.
maxResultsintegerMaximum jobs for the whole run, across all searches (default 100, 0 = no limit).
sortByenumdate (newest first) or relevance.

🎚️ Filters

Several values inside one filter widen the search (OR); different filters narrow it (AND).

FieldTypeWhat it does
contractTypesarrayfull_time, part_time, temporary, internship, apprenticeship, freelance, vie, graduate_program, volunteer, other
remotearrayfulltime, partial, punctual, no, unknown
postedWithinenumLast 1, 3, 7, 14 or 30 days
experienceLevelsarrayMinimum years asked: 0-1, 1-3, 3-5, 5-10, 10+
educationLevelsarrayMinimum diploma on the French scale, no_diploma to phd (bac_5 = master's)
salaryMinintegerMinimum published yearly salary, in the job's own currency
onlyWithSalarybooleanSkip jobs without a published salary
companySizesarray0-15, 15-50, 50-250, 250-2000, 2000+ employees
sectorsarray20 company sectors (tech, finance, consulting, retail, health, media…)
jobCategoriesarray20 job families (tech & engineering, sales, product, HR, marketing…)
jobLanguagesarrayLanguage the ad is written in: fr, en, de, es, it, pt, nl, cs, pl

📄 Output

FieldTypeWhat it does
includeDetailsbooleanOn by default. Adds the long texts, apply link and ATS, skills, tools and the company's website, socials, revenue and HQ. Off = fastest run, search-card fields only.
siteLanguageenumLabel language for benefits, sectors, categories, skills and links: en, fr, es, cs, sk.
descriptionFormatenumall, text, html or markdown.
descriptionMaxLengthintegerCut each long text at this many characters.
compactbooleanCore fields only.
excludeEmptyFieldsbooleanDrop empty fields from each job.

♻️ Incremental monitoring

FieldTypeWhat it does
incrementalModebooleanOutput only jobs that are new, changed or back since the last run.
stateKeystringName for the tracked search (derived from your settings if blank).
emitUnchanged / emitExpiredbooleanAlso output unchanged jobs / jobs that were taken down.

🔔 Notifications

Telegram (telegramToken + telegramChatId), slackWebhookUrl, discordWebhookUrl, webhookUrl + webhookHeaders, and notificationLimit (jobs per message, 1–20). Setup is under alerts below.

⚙️ Advanced

proxyConfiguration (not needed) and maxRequestRetries (0–10, default 4).

More example inputs

Every job in the United Kingdom, past the 1,000-result limit:

{ "countries": ["GB"], "maxResults": 0 }

All open jobs at two companies, plus a saved search URL with its filters:

{
"companies": ["doctolib", "l-oreal"],
"startUrls": [{ "url": "https://www.welcometothejungle.com/en/jobs?query=product%20manager&refinementList%5Bremote%5D%5B%5D=fulltime" }],
"maxResults": 0
}

Output

Each dataset item is one job. A real record, shortened:

{
"id": "1271a75e-a64a-432d-8510-66ba196133bc",
"title": "SAP FI Functional Expert - F/H",
"url": "https://www.welcometothejungle.com/en/companies/atos/jobs/sap-fi-functional-expert-f-h_bezons_ATOS_egNQeeZ",
"companyName": "Atos",
"companyEmployees": 51000,
"location": "Bezons, Ile-de-France, France",
"countryCode": "FR",
"contractType": "full_time",
"remote": "partial",
"experienceMinYears": 7.0,
"salaryMin": 85000.0,
"salaryMax": 90000.0,
"salaryCurrency": "EUR",
"salaryPeriod": "yearly",
"jobCategory": "Consulting & Strategy",
"sectors": ["IT / Digital"],
"publishedAt": "2026-10-24T09:20:49Z",
"description": "Votre mission : allier expertise métier en comptabilité, maîtrise technique de SAP FI…",
"applyUrl": "https://atos.contactrh.com/jobs/10425/44530676",
"applyDomain": "atos.contactrh.com",
"atsProvider": "ContactRH",
"applicationRequired": ["resume"],
"skills": ["Regulatory compliance"],
"tools": ["Vim", "SAP"],
"companyWebsite": "https://atos.net/fr/",
"companyRevenue": "8 milliards €",
"companyWomenPercent": 30.0,
"companyHeadquartersCity": "Bezons"
}

Data fields

  • Core — id, jobReference, title, url, slug, companyName, location, contractType, contractDurationMinMonths / MaxMonths, remote, isRemote, experienceMinYears, educationLevel, jobCategory, jobSubCategory, profession, sectors, sectorParents, benefits, keyMissions, summary, language, publishedAt, updatedAt, startDate, isPromoted, searchKeyword.
  • Salary — salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryYearlyMin, hasSalary.
  • Location — city, district, region, country, countryCode, latitude, longitude, offices, officeCount, address, postalCode.
  • Long texts — description, candidateProfile, recruitmentProcess, companyDescription, each also as …Html and …Markdown.
  • Apply & ATS — applyUrl, applyDomain, applyOnSite, atsProvider, applicationRequired, applicationQuestionCount, skills, tools.
  • Company — companySlug, companyUrl, companyLogoUrl, companySummary, companyWebsite, companyLinkedinUrl, companyFacebookUrl, companyInstagramUrl, companyTwitterUrl, companyYoutubeUrl, companyEmployees, companyFoundedYear, companyRevenue, companyAverageAge, companyWomenPercent, companyEqualityIndex, companyLabels, companyCommitments, companyOpenJobs, companyHeadquartersAddress / City / CountryCode, companyUsesExternalAts.
  • Contacts found in the text — extractedEmails, extractedPhones, extractedUrls (rarely filled; most employers don't post them).
  • Run & monitoring — source, scrapedAt, detailFetched, contentHash, plus in incremental mode changeType (NEW / UPDATED / REAPPEARED / UNCHANGED / EXPIRED), firstSeenAt, lastSeenAt, previousSeenAt, expiredAt, isRepost, repostOfId, repostDetectedAt.

Compact mode returns 20 core fields, including the apply link, ATS and company website. The Output tab has three views: Overview, Apply & ATS and Company intelligence.


♻️ How to monitor Welcome to the Jungle with incremental mode

Turn on incremental mode and schedule the Actor. Each run compares against the last one and outputs only NEW / UPDATED / REAPPEARED jobs (and EXPIRED ones if you ask). Unchanged jobs are recognised before their details are fetched, and a job that is taken down and reposted is flagged as a repost.

After the first run, your cost follows how much the board changes, not how much you watch:

Daily churnof 1,000 trackedbillable recordsyou save
5 %1,0005095 %
15 %1,00015085 %
30 %1,00030070 %

To set it up: configure your search, turn on Incremental mode, run it once to record the starting set, then add a recurring run in the Schedules tab.


🔔 How to set up Welcome to the Jungle alerts

Fill in only the channels you want:

ChannelWhat to configure
✈️ TelegramtelegramToken (from @BotFather) + telegramChatId
💬 SlackslackWebhookUrl
🎮 DiscorddiscordWebhookUrl
🪝 WebhookwebhookUrl (+ optional webhookHeaders) receives JSON, ready for n8n, Make or Zapier

Each message lists up to notificationLimit jobs with title, company, location, link and change type. A failing channel never stops the run or the other channels. With incremental mode on, you hear only about new jobs.


💡 What can you do with Welcome to the Jungle data?

Find companies that are hiring

Build a list of employers hiring in a sector or city, with website, LinkedIn, headcount and open-job count, while the hiring need is live.

Map the applicant-tracking market

atsProvider and applyDomain show which recruiting software each employer runs, or that it recruits through its own career site.

Benchmark salaries

Salary bands with currency, period and a yearly-normalised minimum. Combine onlyWithSalary with a category filter for a clean set.

Power a job board or alert feed

Export a niche slice once, then let incremental mode feed only new and changed jobs into your site, newsletter or Slack.

Research the labour market

Track hiring volume, remote policy, contract mix and benefits by sector, country or company over time.


💰 How much does it cost to scrape Welcome to the Jungle?

The Actor uses pay-per-event pricing: a small fee per run plus a fee per job returned. The Pricing tab shows the current numbers. Full details are included in the per-job fee. Two things cut your bill:

  • Filters — jobs you filter out are never fetched or billed.
  • Incremental mode — after the first run you pay only for what changed.

🔌 Integrations & export

Export to JSON, CSV, Excel or HTML, or use the REST API and the JavaScript / Python clients. Schedule runs, connect Google Sheets, Slack, Make, Zapier or n8n, or call it as an MCP tool from AI agents.

Also covering the French job market: HelloWork Jobs Scraper (corvuslab/hellowork-scraper) and APEC Jobs Scraper (corvuslab/apec-jobs-scraper) for executive roles.


🔗 Using the API

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("corvuslab/welcome-to-the-jungle-jobs-scraper").call(run_input={
"searchTerms": ["product manager"],
"countries": ["FR", "GB"],
"maxResults": 500,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["companyName"], item["applyDomain"])

❓ FAQ

Can I really get more than 1,000 jobs from one search? Yes. Set maxResults to 0 for no limit. Runs that ask for more than 1,000 jobs come back newest first, whatever sortBy says.

Why is atsProvider empty on many jobs? It names a vendor only when the employer uses a recognisable applicant-tracking system (SmartRecruiters, Teamtailor, Workday, Lever and others). Many employers recruit through their own career site; applyDomain names that site. When applyOnSite is true, you apply on Welcome to the Jungle itself.

Why are salary fields empty on some jobs? Many employers don't publish pay. hasSalary tells you at a glance, and onlyWithSalary or salaryMin keep only jobs that show one.

Which fields need full details on? The long texts, apply link, ATS, required documents, skills, tools, street address and the company's website, socials, revenue, average age, gender split and HQ. With includeDetails off you get the search-card fields only, and each job is still billed.

Why are some company fields empty? Revenue, average age, gender split, equality index and socials appear only when the company's WTTJ profile publishes them. Missing values are null, never guessed.

Which countries and languages are covered? 58 countries, from France, the UK and the US to Morocco and Singapore. Labels come in English, French, Spanish, Czech or Slovak; the job text stays in the language the employer wrote it in, often French.

How do location and radius work? A job matches when any of its offices is in the place, so multi-site jobs are not missed. Add radiusKm to include the surroundings.

How do companies and start URLs combine? Each start URL is read with its own filters. Search terms, companies and locations run as a separate search, and the results are merged without duplicates. The dropdown filters (country, contract, remote…) apply to everything.


This Actor collects only publicly available job and company data that anyone can see on welcometothejungle.com without logging in. You're responsible for how you use it, in particular any personal information, and for complying with the site's terms and applicable law, including the GDPR where it applies. Not affiliated with, endorsed by or sponsored by Welcome to the Jungle.


Keywords: welcome to the jungle scraper · wttj scraper · welcome to the jungle api · welcometothejungle.com scraper · welcome to the jungle jobs · wttj jobs export · scrape welcome to the jungle jobs · france jobs scraper · job listings scraper · salary data · ats data · company hiring data · recruitment lead generation · job monitoring · job alerts · export to CSV · export to Excel · MCP tool for AI agents