Welcome to the Jungle Scraper · Hiring Signals & Lemlist Push
Pricing
from $3.00 / 1,000 company extracteds
Welcome to the Jungle Scraper · Hiring Signals & Lemlist Push
Scrape Welcome to the Jungle job postings and turn them into outreach-ready B2B leads. Filter by sector, job type, and contract. Get company name, open roles, headcount, founding year, and optional CEO/CTO/VP Sales LinkedIn. Push directly to Lemlist with a pre-filled icebreaker. No login. No API key
Pricing
from $3.00 / 1,000 company extracteds
Rating
0.0
(0)
Developer
Corentin Robert
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
WTTJ Hiring Signal · Companies Actively Recruiting
A company that is actively hiring is a company with budget, a growth signal, and a decision-maker under pressure to deliver. Turn Welcome to the Jungle job postings into a clean, outreach-ready list — filtered by sector, job type, contract, and recency. Optionally enrich each company with the CEO, Founder, CTO, CMO, VP Sales, or HR contact LinkedIn profile — and push leads directly into a Lemlist campaign with a pre-filled icebreaker.
No login. No API key. No WTTJ account needed.
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 · Enrich CEO LinkedIn |
| 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, matching open role count and titles, headcount, size label, city, and country code — one row per company, ready to export.
When to enable contact enrichment: turn on Find LinkedIn contact when you need a direct decision-maker for outreach. You get their name, exact LinkedIn URL, title, and an AI confidence score. Adds $0.05 per company.
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. Works with or without contact enrichment. 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 | Number of open roles matching your filters |
jobs_matching_titles | List of matching job titles |
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 |
country_code | ISO country code (FR, GB, DE…) |
contact_name | CEO / Founder / HR name (enrichment ON) |
contact_linkedin_url | LinkedIn profile URL (enrichment ON) |
contact_title | Exact title on LinkedIn (enrichment ON) |
contact_certainty | AI confidence score 0–100 (enrichment ON) |
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
- Sectors — pick one or more (e.g. SaaS / Cloud Services)
- Job types — pick what roles to look for (e.g. Sales & Customer Service)
- Contract types — pick Full-time (CDI) or others
- Published within — set the recency window (default: 3 months)
- 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 to automatically find that person's LinkedIn profile for each company ($0.05 per company)
- 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
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
sectors | string[] | ["saas-cloud-services"] | Industry sectors to target (select from 70+ options) |
professionCategories | string[] | ["Sales & Customer Service"] | Job types to match (20 categories) |
contractTypes | string[] | ["full_time"] | Contract types to include |
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 enrichment (PPE: $0.05/company when set) |
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 — SaaS companies hiring Sales (CDI, last 3 months)
{"sectors": ["saas-cloud-services", "software-1"],"professionCategories": ["Sales & Customer Service"],"contractTypes": ["full_time"],"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 — queries WTTJ with your sector, contract, and date filters
- Filter — keeps only companies with at least one role matching your selected job types
- Deduplication — one row per company, with all matching job titles consolidated
- Contact enrichment (optional) — searches for a LinkedIn profile matching the requested role and uses AI to score confidence
- Lemlist push (optional) — pushes each lead to your campaign with a pre-filled FR/EN icebreaker; deduplicates automatically
- Export — one clean row per company, ready to download
Output sample
{"company_name": "PayFit","wttj_slug": "payfit","wttj_url": "https://www.welcometothejungle.com/en/companies/payfit","jobs_count_matching": 2,"jobs_matching_titles": ["Business Developer / SDR - Paris", "Account Executive"],"nb_employees": 800,"size_label": "500–1,499 employees","founding_year": 2015,"company_summary": "The HR and payroll software that lets you focus on what matters.","city": "Paris","country_code": "FR","contact_name": "Firmin Zocchetto","contact_linkedin_url": "https://fr.linkedin.com/in/firmin-zocchetto","contact_title": "Co-founder & CEO @PayFit","contact_certainty": 100,"lemlist_lead_id": "lea_jwzfLYMMYSyyCZZJ9","scraped_at": "2026-06-02T13:45: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
49 unit tests covering filter building, company parsing, contact enrichment, and Lemlist push logic.
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 is applied client-side after Algolia pagination; very broad filters may fetch many pages before finding matches
- 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 extract.
| Scenario | Approx. cost |
|---|---|
| 10 companies (first run / test) | ~$0.03 |
| 100 companies, no enrichment | ~$0.30 |
| 100 companies + CEO LinkedIn | ~$5.30 |
| 100 companies + CEO LinkedIn + Lemlist push | ~$5.80 |
| 500 companies, no enrichment | ~$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