Welcome to the Jungle Scraper
Pricing
from $0.79 / 1,000 results
Welcome to the Jungle Scraper
Extract job listings from Welcome to the Jungle — France, UK, US, and 3 more markets. Salary data on 92% of listings, no proxy needed. $0.99/1,000 results. Keyword search, remote & contract filters.
Pricing
from $0.79 / 1,000 results
Rating
5.0
(1)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
26
Total users
18
Monthly active users
0.66 hours
Issues response
4 days ago
Last modified
Categories
Share

Extract structured job listings from Welcome to the Jungle — Europe's leading tech and startup job board with 5M+ monthly visitors, 80,000+ active listings, and 10,000+ companies across France, the UK, the US, and 50+ countries. No API key, no account, and no browser required. Pay per result at $0.99/1,000 listings — no monthly fees, no minimums.
Why this scraper?
🌍 5 Regional Sites
Scrape EN, FR, ES, CS (Czech), and SK (Slovak) markets in a single run. Each site surfaces different company profiles and job listings tailored to that market.
🔍 Full Keyword Search
Search across 80,000+ jobs by keyword, just like the WTTJ search bar. Results are powered by WTTJ's own Algolia search engine, so relevance is identical to what job seekers see on the site.
💰 Salary & Remote Data
92% of listings include salary ranges (min/max, currency, yearly/monthly period). Remote policy (no, punctual, partial, fulltime) is available on 100% of listings.
📋 Rich Job Content — No Extra Requests
Unlike most scrapers, every result includes structured job content extracted directly from WTTJ's search index — no secondary HTTP requests required:
- Key Missions — bullet-point list of duties/responsibilities
- Candidate Profile — skills and requirements in Markdown format
- Education Level — required qualification (e.g. Master's, Bachelor's, PhD)
- Benefits — full list of perks offered (100% fill rate)
- Company Labels — employer certifications (e.g. "Top Employer", "Happy Trainees")
- Company Size — employee headcount from the WTTJ company profile
📍 Full Geolocation
Every listing includes city, country, country code, latitude, and longitude — ready for distance-based queries.
💡 No Proxy Required
WTTJ's Algolia search index is publicly accessible from any IP. No residential proxies, no additional costs.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | "" | Keyword search. Leave empty to browse all listings. |
websiteCountry | string | en | Market site: en, fr, es, cs, sk |
location | string | Country name/code (e.g. France, FR) for country-level filtering, or a city/region (e.g. Paris) for point + radius filtering. Empty or Worldwide = no filter | |
locationRadius | number | 50 | Search radius in km — applies to city/region locations only (ignored for country filtering) |
sortBy | string | relevance | Sort results: relevance or date |
contractTypes | array | Filter by type: full_time, part_time, internship, freelance, apprenticeship, temporary, work_study | |
remoteTypes | array | Filter by remote policy: no, punctual, partial, fulltime | |
salaryMin | number | Minimum annual salary in EUR | |
daysOld | number | Limit to listings published within N days | |
maxResults | number | 100 | Maximum number of results to return |
fetchDetails | boolean | true | Fetch full description and apply URL from each listing's page |
skipReposts | boolean | false | Skip listings seen in previous runs (requires persistent dedup store) |
startUrls | array | Direct WTTJ job listing URLs to scrape |
Output Schema
Every field below is present on every record. Fields the source does not publish are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
id | string | Unique ID from the source. |
url | string | Direct link to the listing. |
title | string | Title as published. |
companyName | string | Hiring company name. |
companyUrl | string | Company url. |
contractType | string | Contract type. |
contractDurationMin | string | Contract duration min. |
contractDurationMax | string | Contract duration max. |
remote | string | Remote. |
experienceLevel | string | Experience level. |
educationLevel | string | Education level. |
language | string | Language. |
salaryMin | number | Minimum salary (null if not published). |
salaryMax | number | Maximum salary (null if not published). |
salaryCurrency | string | Salary currency. |
salaryPeriod | string | Salary period. |
locationCity | string | Location city. |
locationCountry | string | Location country. |
locationCountryCode | string | Location country code. |
locationLat | number | Location lat. |
locationLng | number | Location lng. |
sectors | array | Sectors. |
occupations | array | Occupations. |
benefits | array | Benefits. |
keyMissions | array | Key missions. |
candidateProfile | string | Candidate profile. |
candidateProfileText | string | Candidate profile text. |
descriptionHtml | string | Full description in HTML. |
descriptionText | string | Description text. |
descriptionMarkdown | string | Description markdown. |
applyUrl | string | Apply url. |
skills | string | Skills. |
companyEmployeeCount | number | Company employee count. |
companyLabels | array | Company labels. |
companyCreationYear | number | Company creation year. |
publishDate | string | Publish date. |
publishDateISO | string | Publish date iso. |
source | string | Source. |
scrapedAt | string | Timestamp when this record was scraped. |
contentHash | string | Stable hash of the content, used for repost and change detection. |
isRepost | boolean | true when the listing is a repost of an earlier one (detected by content hash). |
originalPublishDate | string | Original publish date. |
originalUrl | string | Original url. |
Each item in the dataset contains the following fields:
Identifiers
id— unique WTTJ job reference (e.g.QOBRA_04Ve1px)url— canonical listing URLsource— alwayswelcometothejungle.com
Job Details
title— job titlecontractType— contract type (e.g.full_time,internship)contractDurationMin/contractDurationMax— duration in months for temporary/freelance contractsremote— remote policy (no,punctual,partial,fulltime)experienceLevel— experience required (e.g.3-5 years)educationLevel— qualification level (e.g.Master's (Bac+5))language— job language code
Company
companyName/companyUrl— company name and WTTJ profile URLcompanyEmployeeCount— headcountcompanyLabels— employer certifications (e.g.["top-employer-institute", "happy-trainees"])companyCreationYear— founding year
Salary
salaryMin/salaryMax— salary rangesalaryCurrency— currency (default:EUR)salaryPeriod—yearlyormonthly
Location
locationCity/locationCountry/locationCountryCodelocationLat/locationLng— GPS coordinates
Content (available without fetchDetails)
keyMissions— array of duties/responsibilitiescandidateProfile— candidate requirements in MarkdowncandidateProfileText— plain-text version of candidate requirementsdescriptionHtml/descriptionText/descriptionMarkdown— job summarybenefits— list of workplace perks
Content (requires fetchDetails: true)
applyUrl— external application URL when availableskills— required skills extracted from the listing
Taxonomy
sectors— industry sectors (e.g.["Software", "SaaS / Cloud Services"])occupations— occupation categories (e.g.["Tech & Engineering"])
Dates & Deduplication
publishDate— publication date (YYYY-MM-DD)publishDateISO— publication date in ISO 8601 formatscrapedAt— timestamp of this scrapecontentHash— MD5-based hash for change detectionisRepost— whether this listing was seen in a previous runoriginalPublishDate/originalUrl— original publication details if repost
Example record
{"id": "AUCHA_6gDAaew","url": "https://www.welcometothejungle.com/en/companies/auchan/jobs/vendeur-stands-boucherie-charcuterie-f-h_metz_AUCHA_6gDAaew","title": "Vendeur Stands Boucherie Charcuterie F/H","companyName": "Auchan","companyUrl": "https://www.welcometothejungle.com/en/companies/auchan","contractType": "temporary","contractDurationMin": null,"contractDurationMax": null,"remote": "no","experienceLevel": null,"educationLevel": null,"language": "fr","salaryMin": 24280,"salaryMax": 25730,"salaryCurrency": "EUR","salaryPeriod": "yearly","locationCity": "Metz","locationCountry": "France","locationCountryCode": "FR","locationLat": 49.10842,"locationLng": 6.20724,"sectors": ["Mass Distribution","E-commerce","Consumer Goods"],"occupations": ["Fashion"],"benefits": ["Between 1-2 days at home","Unconscious bias training","Dedicated Diversity & inclusivity staff","Reduction of working time (RTT)"],"keyMissions": ["Conseiller les clients sur les produits de boucherie et de charcuterie, en répondant à leurs demandes et en les informan …","Garantir une tenue de rayon irréprochable, en préparant et en présentant le rayon de manière attractive, tout en respect …","Animer quotidiennement le rayon, en réalisant des théâtralisations attrayantes et en mettant en place des opérations com …"],"candidateProfile": "<p><strong>📢Nous vous offrons les avantages suivants :</strong></p><p><br></p><p><span style=\"color:rgb(38, 38, 38);\">• …","candidateProfileText": "<p><strong>📢Nous vous offrons les avantages suivants :</strong></p><p><br></p><p><span style=\"color:rgb(38, 38, 38);\">• …","descriptionHtml": "Rejoignez Auchan Retail France, une entreprise de distribution engagée dans la promotion d'une alimentation saine et dur …","descriptionText": "Rejoignez Auchan Retail France, une entreprise de distribution engagée dans la promotion d'une alimentation saine et dur …","descriptionMarkdown": "Rejoignez Auchan Retail France, une entreprise de distribution engagée dans la promotion d'une alimentation saine et dur …","applyUrl": null,"skills": null,"companyEmployeeCount": 59000,"companyLabels": ["top-employer-institute"],"companyCreationYear": 1961,"publishDate": "2026-06-24","publishDateISO": "2026-06-24T16:41:25.000Z","source": "welcometothejungle.com","scrapedAt": "2026-06-24T17:07:53.619Z","contentHash": "fcaa8c70c3ff5a70","isRepost": false,"originalPublishDate": null,"originalUrl": null}
Example: Software Engineering Jobs in Paris
Input:
{"query": "software engineer","websiteCountry": "en","location": "Paris","locationRadius": 30,"remoteTypes": ["partial", "fulltime"],"salaryMin": 60000,"maxResults": 100,"fetchDetails": false}
Sample output item:
{"id": "QOBRA_04Ve1px","url": "https://www.welcometothejungle.com/en/companies/qobra/jobs/senior-fullstack-software-engineer_paris_QOBRA_04Ve1px","title": "Senior Fullstack Software Engineer","companyName": "Qobra","contractType": "full_time","remote": "punctual","experienceLevel": "5-10 years","educationLevel": "Master's (Bac+5)","salaryMin": 60000,"salaryMax": 72000,"salaryCurrency": "EUR","salaryPeriod": "yearly","locationCity": "Paris","locationCountry": "France","locationCountryCode": "FR","locationLat": 48.8679,"locationLng": 2.35008,"keyMissions": ["Build and iterate on high-impact features for users (dashboards, reports, insights).","Collaborate closely with Product and Design teams."],"candidateProfile": "### Technical Skills\n\n* 5+ years of experience\n* Strong expertise in backend development","benefits": ["Flexible working hours", "Between 1-2 days at home", "Free food & snacks"],"companyEmployeeCount": 45,"companyLabels": ["happy-index-at-work", "tech-at-work"],"sectors": ["Software", "SaaS / Cloud Services"],"publishDate": "2026-04-24"}
Example: Daily Feed of New Tech Jobs (France)
{"websiteCountry": "fr","daysOld": 1,"contractTypes": ["full_time"],"skipReposts": true,"maxResults": 1000,"fetchDetails": false}
Run on a daily schedule to get only newly posted jobs, with deduplication across runs.
Example: Single-Country Job Feed
Constrain results to one country. location accepts a country name or 2-letter code; all returned jobs have an office in that country.
{"searchQuery": "","location": "France","maxResults": 1000,"fetchDetails": true}
To filter around a city instead, set location to the city and use locationRadius:
{"location": "Paris","locationRadius": 30,"maxResults": 500}
Performance
| Metric | Value |
|---|---|
| Total jobs indexed | 80,000+ |
| Typical run (100 results, no fetchDetails) | < 15 seconds |
| Typical run (100 results, fetchDetails) | 2–4 minutes |
| Memory usage | 512 MB |
| Proxy required | None |
| Rate limit handling | Automatic exponential backoff |
💰 Pricing
$0.99 per 1,000 results — you only pay for successfully retrieved listings. Failed retries and filtered reposts are never charged.
| Results | Estimated Cost |
|---|---|
| 1,000 | ~$0.99 |
| 10,000 | ~$9.90 |
| 100,000 | ~$99.00 |
Related scrapers
Other scrapers in our Jobs — France collection:
- APEC.fr Scraper
- Cadremploi.fr Scraper
- France Travail Scraper — 961k+ French Jobs
- HelloWork.fr Scraper
Frequently asked questions
What jobs can I get from Welcome to the Jungle with this actor?
The actor returns every job posting matching your search — title, company, location, contract type, salary where shown, and the apply URL. You set the search terms and country; it pulls the full result set, not just the first page.
Can I filter by remote roles or specific companies?
Yes. Pass your keywords and location filters in the input and the actor returns only matching postings. To track specific companies, run a search per company name and the results come back as one clean dataset.
Does it return new postings only, or everything?
By default it returns everything matching your search. For a daily feed of new roles, schedule a run and diff against your last dataset — each run is timestamped so new postings are easy to isolate.
What format does the data come in?
A structured dataset you export as JSON, CSV, or Excel, or pull straight via the API. Every field is typed and consistent across runs.
How does pricing compare to the Welcome to the Jungle official API?
WTTJ's official partner API requires approval and is aimed at large enterprise ATS integrations. This scraper requires no approval, no contractual commitment, and starts at $0.99/1,000 results — you can have data in minutes rather than weeks. It's designed for teams that need structured job market data for research, competitive analysis, or talent pipeline tooling without procurement overhead.
Is this the right tool for monitoring French tech job postings?
Yes. The fr market option returns all French-language listings on the French WTTJ site, sorted by date. Combined with daysOld filtering and skipReposts, you can run a daily feed that only surfaces new postings — useful for talent intelligence, market research, or building job alert tools.
Run it on a schedule
This actor is built for repeat use. Set it to run daily, weekly, or hourly, and the data keeps flowing without you touching it.
- Schedule runs — open the actor, go to Schedules, and pick a cadence. Each run only charges you for the results it returns.
- Connect it to your stack — push results straight to Google Sheets, Slack, a webhook, or your database using Apify Integrations. No glue code needed.
- Pull results via API — every run writes a clean dataset you can fetch with one API call, ready for whatever you build on top of it.
Set it once and it runs on its own.
Known limitations
- Salary is only returned when the employer publishes it — many listings carry
nullsalary fields. - Company details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be removed by the source at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
- Formats: results export to JSON, CSV and Excel from the dataset
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl