Welcome to the Jungle · Companies Hiring by Sector
Pricing
from $2.10 / 1,000 company hirings
Welcome to the Jungle · Companies Hiring by Sector
Companies hiring on Welcome to the Jungle — website and company LinkedIn on every row. Filter by sector, country, remote, salary. Optional CEO. Push to Lemlist. No login.
Pricing
from $2.10 / 1,000 company hirings
Rating
0.0
(0)
Developer
Corentin Robert
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Welcome to the Jungle · Hiring Companies & Profiles
Paste a WTTJ slug (enky) or leave the list empty and discover companies hiring. One row per company: website, company LinkedIn, open roles, profile stats and featured team when WTTJ publishes them, plus funding and founder LinkedIn on international profiles. Optional named-person hop and Lemlist. CSV / JSON / Excel.
No login. No API key. No WTTJ account needed.
| Mode | Input | Best for |
|---|---|---|
| Enrich | companyUrls: enky, payfit (or the company profile URL) | You already have accounts — we load the public profile, stats, team page and jobs |
| Discover | Sectors + job types (URLs empty) | You need a new pipeline of companies that are hiring |
The Actor searches both WTTJ job boards in discover mode (classic listings and the international jobs board). Every row includes the company website and company LinkedIn when WTTJ has them.
Who is this for?
| You are… | Typical goal | Suggested setup |
|---|---|---|
| B2B SaaS / software vendor | Find tech companies scaling their sales team | Sectors: SaaS + Software · Job types: Sales · Contract: Full-time · Last 3 months |
| Recruiter / headhunter | Build a pipeline of companies hiring in your niche | Sector of your choice · Contract: Full-time or Apprenticeship |
| Outbound SDR / BDR | Identify companies with budget signal (active hiring) | Any sector · Job type: Sales or Tech · Company LinkedIn is already on every row |
| Account-based / CRM | Enrich companies you already picked | Paste slugs: enky, payfit — filters ignored |
| Market researcher | Map which sectors are hiring and where | Multiple sectors · No job type filter · No cap |
| HR tech vendor | Find companies posting HR / People roles | Sectors: any · Job types: HR / People |
| Investor / analyst | Track hiring activity as a growth signal | One sector · Last 1–3 months · Download full dataset |
What you get by default: company name, WTTJ profile URL, company website, company LinkedIn, open roles, hiring mix (sales vs tech vs marketing), headcount, average age / gender split / published revenue when on the profile, featured people (name, title, bio from “Meet …” videos), cities, salary band when published — plus total funding, last round, investors, and founder LinkedIn on profiles that publish them.
When to enable contact enrichment: turn on Person LinkedIn to find when you need a role the company profile did not name (VP Sales, HR). Founder / CEO /in/ from the profile is free. $0.05 only when a paid search finds a profile.
When to enable Lemlist push: add your Lemlist API key + campaign ID to push each lead directly into your outreach sequence — no CSV export needed. Each lead is created with a pre-filled icebreaker (FR or EN) mentioning the open roles and city. A LinkedIn URL is required (person or company). Adds $0.005 per lead pushed.
What it extracts
| Field | Description |
|---|---|
company_name | Company name as listed on WTTJ |
wttj_url | Direct link to their WTTJ profile |
jobs_count_matching | Open roles counted for this company (job-type filter in discover mode; all found jobs in enrich mode) |
jobs_matching_titles | List of matching job titles |
jobs_count_live | All live jobs on the company profile (every function) |
jobs_count_all_functions | Roles in your date / sector / country window, all functions |
hiring_focus | Dominant function they are hiring for (Sales, Tech, Marketing…) |
hiring_by_function | Count per function — see if they are scaling sales vs product |
teams | Published team labels and size on international profiles (not the named people below) |
discovery_source | wttj (classic jobs), intel (international jobs board), wttj+intel, or url (pasted company list) |
nb_employees | Approximate headcount |
size_label | Human-readable size range (e.g. "50–149 employees") |
founding_year | Year the company was founded — useful to filter early-stage vs. established |
company_summary | One-line pitch from WTTJ — perfect for personalizing cold emails |
city | Primary office city |
cities | All office cities on matching roles |
country_code | ISO country code (FR, GB, US…) |
country_codes | All office countries on matching roles |
has_remote | True if a matching role is fully remote or hybrid |
remote_policies | fulltime / partial / punctual on matching roles |
salary_min / salary_max | Yearly salary band when WTTJ published one |
salary_currency | Currency of that band |
jobs_with_salary | How many matching roles published a salary |
jobs_newest_published_at | Date of the newest matching role |
labels | Employer labels (great-place-to-work, bcorp, qualiopi…) |
equality_index | French gender-equality index when published |
benefits | Benefits listed on matching roles |
website_url | Company website from the WTTJ profile |
company_linkedin_url | Company LinkedIn from the WTTJ profile. A /company/{slug} URL is used only when it matches the company; regional pages are ignored. Free, every run |
linkedin_source | wttj, website, or wttj+website |
people_linkedin_urls | Public /in/ URLs from the profile, website, or named founders (up to 8) |
twitter_url | Twitter / X from the WTTJ profile, when published |
total_funding_usd | Published total funding in USD (null when WTTJ has no round) |
last_round | Latest round type (SEED, SERIES A–E…) |
last_round_amount_usd | Amount of that round, USD |
last_round_year | Year of that round |
investors | Named investors when listed |
founders | Named founders with title and LinkedIn |
percentage_female | Female employee share when published |
average_age | Average employee age when published |
parity_women / parity_men | Gender split when published |
published_revenue | Revenue as shown on the profile (e.g. 2.2M) |
featured_people | Named people from profile / team videos (name, title, bio). LinkedIn only if WTTJ linked it |
employee_growth_pct | Headcount growth over 12 months when published |
glassdoor_rating | Glassdoor score when listed |
contact_name | Founder / CEO from the profile, a featured “Meet …” person, or paid hop |
contact_linkedin_url | Person LinkedIn — free from the profile when published |
contact_title | Title on the profile or LinkedIn |
contact_certainty | AI confidence 0–100 (paid hop only) |
contact_source | public_page, public_profile, or paid_search |
lemlist_lead_id | Lemlist lead ID (lea_xxx) if pushed, duplicate if already in campaign (Lemlist ON) |
scraped_at | ISO timestamp |
Quick start
- Open the Actor in Apify Console
- Either paste WTTJ companies (
enky, or the company profile URL) or leave that empty and set Sectors + Job types - Contract types — pick Full-time (CDI) or others (discovery only)
- Countries / cities / remote / salary (optional, discovery only) — UK is GB, US is US. Empty = all markets
- Published within — set the recency window (default: 3 months; discovery only)
- Max companies (optional) — cap the number of results or leave at 0 for all matches
- LinkedIn contact (optional) — choose CEO, CTO, CMO, VP Sales, or HR. $0.05 only when that person's
/in/is found - Lemlist (optional) — add your Lemlist API key and campaign ID to push each lead directly into your sequence ($0.005 per lead). Choose FR or EN for the icebreaker language. Works with or without contact enrichment.
- Click Start — results appear in the Dataset tab as they are collected
- Export as CSV, JSON, or Excel — or let Lemlist handle the outreach automatically
Ready-made examples (published tasks)
| Example | Best for |
|---|---|
| SaaS companies hiring sales on WTTJ | Cloud / SaaS BD |
| AI startups hiring engineers on WTTJ | AI / ML talent or vendor outreach |
| Fintech companies hiring on WTTJ | Payments / insurtech pipeline |
| E-commerce companies hiring sales on WTTJ | Retail / marketplace BD |
LinkedIn enrichment is off in these examples so a Try stays cheap. Turn it on in the input if you need CEO / CTO profiles.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
companyUrls | string[] | [] | Company slugs or profile URLs (enky). When not empty, discovery filters are ignored |
sectors | string[] | ["saas-cloud-services"] | Industry sectors to target (select from 70+ options). Ignored if companyUrls is set |
professionCategories | string[] | ["Sales & Customer Service"] | Job types to match (20 categories) |
contractTypes | string[] | ["full_time"] | Contract types to include |
countryCodes | string[] | [] | FR, GB, US, DE… Empty = all markets on WTTJ |
cities | string[] | [] | Exact office names (Paris, London). Empty = all cities |
remotePolicies | string[] | [] | fulltime, partial, punctual. Empty = any |
salaryYearlyMin | integer | 0 | Yearly salary floor. 0 = no salary filter |
monthsBack | integer | 3 | Only include postings from the last N months (1–12) |
maxCompanies | integer | 0 | Max companies to export (0 = no cap) |
contactRole | string | "" | Role to find: ceo, founder, cto, cmo, vp-sales, or hr. Leave empty to skip. PPE $0.05 only on a found /in/ |
icebreakerLanguage | string | "en" | Language for the Lemlist icebreaker: en (English) or fr (French) |
lemlistApiKey | string | "" | Your Lemlist API key (Settings → Integrations). Leave empty to skip Lemlist push |
lemlistCampaignId | string | "" | Target campaign ID (e.g. cam_A1B2C3). Found in the campaign URL |
lemlistFindEmail | boolean | false | Ask Lemlist to find a verified email for each lead (consumes Lemlist credits) |
deduplicateAcrossRuns | boolean | false | Skip companies already exported in a previous run — ideal for daily schedules. The seen list is stored in a persistent Apify Key-Value Store (wttj-seen-slugs). Note: when enabled, maxCompanies caps new companies only (full pool is fetched first) |
resetDeduplication | boolean | false | Clear the seen companies cache and start fresh on the next run |
JSON example — enrich companies you already know
{"companyUrls": ["enky", "payfit", "alan"]}
JSON example — SaaS companies hiring Sales (CDI, last 3 months)
{"sectors": ["saas-cloud-services", "software-1"],"professionCategories": ["Sales & Customer Service"],"contractTypes": ["full_time"],"countryCodes": ["FR"],"monthsBack": 3,"maxCompanies": 0}
JSON example — FinTech companies hiring Tech, with CEO LinkedIn + Lemlist push (French)
{"sectors": ["fintech-insurtech", "banking-1"],"professionCategories": ["Tech & Engineering"],"contractTypes": ["full_time"],"monthsBack": 6,"contactRole": "ceo","minCertaintyScore": 75,"icebreakerLanguage": "fr","lemlistApiKey": "YOUR_LEMLIST_API_KEY","lemlistCampaignId": "cam_XXXXXXXXXX","lemlistFindEmail": false}
How it works
- Search or enrich — paste slugs (
enky) to enrich those profiles, or leave the list empty to query both WTTJ job boards - Filter — in discover mode, keeps companies with at least one role matching your job types
- Deduplication — one row per company. A cap splits classic vs international-only employers so one board does not eat the quota
- Company profile — we load the public page from the slug (no
/team-3to paste): stats, featured people + bios, jobs, then funding/founders when that profile publishes them - Contact enrichment (optional) — searches another role only if you asked and the profile did not already name them
- Lemlist push (optional) — pushes each lead with a pre-filled FR/EN icebreaker
- Export — one clean row per company
Output sample
{"company_name": "Enky","wttj_slug": "enky","wttj_url": "https://www.welcometothejungle.com/en/companies/enky","discovery_source": "url","nb_employees": 37,"founding_year": 2020,"average_age": 30,"parity_women": 68,"parity_men": 32,"published_revenue": "2.2M","featured_people": [{ "name": "Aïssa", "title": "Founder & CEO", "bio": "With over a decade of experience…" }],"contact_name": "Aïssa","contact_title": "Founder & CEO","contact_source": "public_page","website_url": "https://www.enky.com","company_linkedin_url": "https://www.linkedin.com/company/enky","scraped_at": "2026-08-20T12:00:00.000Z"}
Performance and cost
| Scenario | ~Companies | Cost estimate |
|---|---|---|
| SaaS + Sales + CDI, last 3 months | ~100 | $0.30 |
| All Tech sectors, last 6 months, no cap | ~500 | $1.50 |
| 100 companies + CEO LinkedIn enrichment | 100 | $0.30 + $5.00 = $5.30 |
| 100 companies + CEO enrichment + Lemlist push | 100 | $0.30 + $5.00 + $0.50 = $5.80 |
Compute costs on Apify platform are additional (minimal — this Actor uses plain HTTP, no browser).
Local development
Setup
cd wttj-hiring-signal-scrapernpm install
Run locally
$npm start
Edit storage/key_value_stores/default/INPUT.json to adjust filters for local runs.
Run tests
$npm test
109 unit tests covering filters, slug enrichment, profile stats / team people, contact enrichment, and Lemlist.
Important / limitations
- Daily run deduplication — enable
deduplicateAcrossRunswhen scheduling the Actor daily. Each run only enriches and pushes companies not seen in previous runs, saving enrichment credits. Lemlist also deduplicates natively (409 on existing leads), so the Lemlist push is safe to run without deduplication too. - Results depend on what companies have active listings on WTTJ — not all companies use the platform
- The profession category filter on the classic board is applied after pagination; very broad filters may fetch many pages before finding matches
- Named people on WTTJ videos (
featured_people) usually have no public/in/— you get name, title and bio - International-board discovery uses live jobs (function, location, sector tags). Contract type, salary floor, and “published within N months” apply to the classic board only
- Contact enrichment uses public Google search results — accuracy depends on how prominent the contact is online. The certainty score helps you filter low-confidence results
- LinkedIn URLs may change over time — re-run enrichment periodically for up-to-date profiles
Plug into your outreach stack
The dataset exports as CSV, JSON, or Excel in one click from the Apify Console.
Option A — Native Lemlist push (zero export needed):
- Add your Lemlist API key + campaign ID in the input form
- Run the Actor — each lead is pushed automatically with a pre-filled icebreaker
- Choose FR or EN for the message language
- Enable Find email to let Lemlist search for a verified email (uses Lemlist credits)
Option B — Manual CSV import:
- Run the Actor with enrichment ON
- Export as CSV from the Dataset tab
- Import directly into lemlist as a new lead list
Want to add professional emails without Lemlist credits?
Run the output through FullEnrich — paste the contact_linkedin_url and get a verified email in seconds.
Full sequence: WTTJ hiring signal → LinkedIn contact → email (FullEnrich) → outreach (lemlist).
More tools for B2B prospecting
These Actors pair naturally with the WTTJ Hiring Signal scraper:
| Actor | How it fits |
|---|---|
| French Companies · Search & SIREN Enrichment | Enrich any company from the dataset with its SIREN, legal form, NAF code, and official address from the French register |
| French Legal Announcements · BODACC Scraper | Cross-reference hiring signals with legal events — fundraising, registrations, insolvency — for deeper qualification |
| Facebook Ads Library Scraper | Check whether a company is actively running Meta ads — another strong budget signal alongside the WTTJ hiring activity |
| Facebook Page Scraper · Extract Email, Phone & Website | Find the contact email and phone from a company's Facebook page when LinkedIn enrichment isn't enough |
| Lemlist Usage Detector | Check whether a prospect already uses lemlist — useful for targeting or for avoiding cannibalism in your sequence |
| HubSpot Email Checker | Verify whether a contact email has an active HubSpot login — qualifies inbound leads before sequencing |
How much does it cost to scrape Welcome to the Jungle?
This Actor uses pay-per-event pricing — you only pay for what you get.
| Event | Price | When |
|---|---|---|
wttj-company | $0.003 | Each exported company row (discover or enrich). Website, LinkedIn, stats and team when WTTJ publishes them |
contact-enrichment | $0.05 | Only when a named person /in/ is found (CEO/CTO…). Public /in/ on the page is free. Misses are not billed. |
lemlist-push | $0.005 | Only when a new lead is created in Lemlist (duplicates/skips free) |
| Scenario | Approx. cost |
|---|---|
| 10 companies (Try, no paid hop) | ~$0.03 |
| 100 companies, no person search | ~$0.30 |
100 companies + 80 CEO /in/ found | ~$0.30 + $4.00 = ~$4.30 |
| 100 companies + 80 CEO + 80 Lemlist pushes | ~$4.70 |
| 500 companies, no person search | ~$1.50 |
The Actor uses plain HTTP (no browser) — compute costs are minimal. No residential proxy needed.
Is it legal to scrape Welcome to the Jungle?
This Actor only accesses data that Welcome to the Jungle makes publicly available on its website — company names, office locations, headcount, and active job listings visible to any visitor without a login. No authentication is bypassed and no personal data is collected beyond what is displayed publicly on the platform. As with any data involving companies or individuals, ensure your use complies with GDPR and relevant regulations in your jurisdiction.
Support
Questions or custom scraping needs? Contact corentin@outreacher.fr