Marketplace Coverage
Recent Scrape Sessions
| Date | Marketplace | Countries / params | Found | New | Matched | Status |
|---|
Commercial Motor Server-side
Commercial Motor dealers are scraped server-side via proxy. Select country and page range below.
Fields: Name ✅ Phone ✅ Adverts count ✅ URL ✅ | Email ❌ Website ❌ Address ❌ (from detail pages)
Ready
Sandhills Browser Console
Sandhills Global runs several marketplaces that share the same directory structure — they're all imported as one marketplace ("Sandhills") and de-duplicated, so a dealer present on several Sandhills sites counts once (any other, non-Sandhills marketplaces the company is on are kept). Pick the site(s), open each full directory, run the script (it walks every page to the end — not just the first few), then Copy → Import. Country is captured per dealer; filter in the Hub. Bot-detection protected → the script paces itself, pauses on blocks, and saves progress so you can resume.
Directory: Name ✅ Phone ✅ Address ✅ Logo ✅ URL ✅ · Detail: Email ✅ Website ✅ Listings ✅ Country ✅
🌍 The script scrapes the whole directory (the Sandhills sites ignore a country URL filter). Each dealer's country is captured automatically from its page — filter by country later in the Dealers tab.
Ready
Truck1 Browser Console
Truck1 lists dealers per country. Pick countries (or 🌍 All countries) and run the script in the Truck1 tab.
Directory (fast): Name ✅ Country (from flag) ✅ Years on Truck1 ✅ Member-since ✅ Listings ✅ Status (Reliable / Verified / Manufacturer) ✅ Rating ✅ Logo ✅ URL ✅
Detail pages (optional, slower): Phone ✅ Website ✅ E-mail ✅ Full address ✅ City ✅ Postal code ✅
Detail pages (optional, slower): Phone ✅ Website ✅ E-mail ✅ Full address ✅ City ✅ Postal code ✅
Hold Ctrl/Cmd for several · “All countries” loops every country
Ready
TrucksNL Browser Console
TrucksNL pages are server-rendered — the script reads the HTML directly via
fetch() in your browser. No bot detection issues.
Step 1 (fast, all pages via fetch): Name ✅ City ✅ Country ✅ Logo ✅ Years ✅ URL ✅ — safe to switch tabs
Step 2 (visits each, ~4s/dealer): Listings ✅ Phone ✅ Email ✅ Website ✅ Address ✅
⚠️ Step 2 reads each dealer's rendered stock count, so it pauses while the tab is hidden and resumes when you switch back (keep it visible for speed). Filter by country to keep it manageable (e.g. France ~190 = ~13 min).
Step 2 (visits each, ~4s/dealer): Listings ✅ Phone ✅ Email ✅ Website ✅ Address ✅
⚠️ Step 2 reads each dealer's rendered stock count, so it pauses while the tab is hidden and resumes when you switch back (keep it visible for speed). Filter by country to keep it manageable (e.g. France ~190 = ~13 min).
Ready
Linemedia Browser Console
Linemedia pages are server-rendered — the script reads HTML directly via
fetch() in your browser (you must be logged in / on the site). Filter by country and/or activity type to keep it manageable.
Step 1 (list): Name ✅ Logo ✅ Location ✅ Listings ✅ Rating ✅ URL ✅
Step 2 (visits each, ~1.5s/dealer): Phone ✅ WhatsApp ✅ Website ✅ Address ✅ Postal ✅ Contact ✅ Years ✅
Step 2 (visits each, ~1.5s/dealer): Phone ✅ WhatsApp ✅ Website ✅ Address ✅ Postal ✅ Contact ✅ Years ✅
Ready
Via Mobilis Browser Console
Via-Mobilis.com business directory is server-rendered — the script reads HTML directly via
fetch() in your browser. Filter by country and/or material type to keep it manageable.
Step 1 (list, all pages via fetch): Name ✅ Logo ✅ Location ✅ Listings ✅ Rating ✅ URL ✅
Step 2 (visits each, ~1.5s/dealer): Phone ✅ WhatsApp ✅ Website ✅ Address ✅ Postal ✅ Contact ✅ Years ✅
Step 2 (visits each, ~1.5s/dealer): Phone ✅ WhatsApp ✅ Website ✅ Address ✅ Postal ✅ Contact ✅ Years ✅
Ready
Mascus Browser Console
Mascus has no dealer directory — so the script walks the listings feed for each target you pick (a whole continent like 🌍 Europe, a single country, or the whole world), optionally narrowed by category and brand. Filters map onto the URL (
/+/continentcodes=150/…search.html, /+/brands=atn/…, /{cc},country.html); it collects every distinct dealer, then opens each dealer page for full contact details. Feed + dealer pages embed their data as JSON (__NEXT_DATA__), read directly via same-origin fetch() — no proxy needed.
Step 1 (feed, all pages): Dealer ✅ Listings count ✅ Location ✅ Phone ✅ URL ✅
Step 2 (visits each dealer, ~0.8s): Website ✅ Email ✅ Address ✅ Postal ✅ Logo ✅ Active since ✅ Description ✅
Step 2 (visits each dealer, ~0.8s): Website ✅ Email ✅ Address ✅ Postal ✅ Logo ✅ Active since ✅ Description ✅
⚠️ A full country can be hundreds of feed pages + hundreds of dealer visits — it can run several minutes. Set a Max feed pages limit first to test, then run 0 (all) for the complete pass.
Ready
TruckScout24 Browser Console
TruckScout24's dealer directory (
/tsd/Suche?query= &sort=company) lists every dealer but can't be filtered by country — so the script walks a page range (A→Z) and grabs every dealer, then opens each dealer page for full details. Country is captured per-dealer from its address. Runs same-origin via fetch() — no proxy.
Step 1 (directory pages): Dealer ✅ Address ✅ Postal ✅ City ✅ Country ✅
Step 2 (visits each dealer, ~1s): Mobile phone (legal info) ✅ Contact ✅ Email ✅ Logo ✅ # Listings ✅
Step 2 (visits each dealer, ~1s): Mobile phone (legal info) ✅ Contact ✅ Email ✅ Logo ✅ # Listings ✅
⚠️ The directory has thousands of dealers across hundreds of pages. Scrape in chunks (e.g. 1–5, then 6–10, …); the script auto-stops when it reaches the last page. Each dealer page is visited (~1s) for the mobile number + listing count.
Ready
Machineseeker Browser Console
Same Machineseeker Group platform as TruckScout24 — the dealer directory (
/Haendler/Suche?query= &sort=company) lists every dealer but can't be filtered by country, so the script walks a page range and grabs every dealer, then opens each dealer page for full details. Country is captured per-dealer from its address. Same-origin fetch() — no proxy.
Step 1 (directory pages): Dealer ✅ Address ✅ Postal ✅ City ✅ Country ✅
Step 2 (visits each dealer, ~1s): Mobile phone (legal info) ✅ Contact ✅ Email ✅ Logo ✅ # Listings ✅
Step 2 (visits each dealer, ~1s): Mobile phone (legal info) ✅ Contact ✅ Email ✅ Logo ✅ # Listings ✅
⚠️ The directory has thousands of dealers across hundreds of pages. Scrape in chunks (e.g. 1–5, then 6–10, …); the script auto-stops at the last page. Each dealer page is visited (~1s) for the mobile number + listing count.
Ready
Machineryzone Browser Console
MB Diffusion group platform (same engine as Agriaffaires & Truckscorner). The pro directory (
/pros/list/1.html) lists every dealer; it can't be filtered by country in-app, so the script walks a page range and grabs every dealer card, then opens each dealer page for full details. Optional country slug narrows the source (e.g. belgium → /pros/list/1-belgium.html). Same-origin fetch() — no proxy.
Step 1 (directory): Dealer ✅ Activity ✅ Country ✅ City ✅ Makes ✅ # Listings ✅
Step 2 (visits each dealer, ~1s): Showcase website ✅ Phone ✅ Address ✅ Contact ✅ Member since ✅ Logo ✅
Step 2 (visits each dealer, ~1s): Showcase website ✅ Phone ✅ Address ✅ Contact ✅ Member since ✅ Logo ✅
⚠️ The directory has hundreds of pages. Scrape in chunks (1–5, then 6–10, …); the script auto-stops at the last page. Each dealer page is visited (~1s) for website + phone + address.
Ready
Agriaffaires Browser Console
MB Diffusion group platform (same engine as Machineryzone & Truckscorner). The pro directory (
/pros/list/1.html on agriaffaires.us) lists every dealer; no in-app country filter, so the script walks a page range and grabs every dealer, then opens each dealer page for full details. Optional country slug narrows the source (e.g. france). Same-origin fetch() — no proxy.
Step 1 (directory): Dealer ✅ Activity ✅ Country ✅ City ✅ Makes ✅ # Listings ✅
Step 2 (visits each dealer, ~1s): Showcase website ✅ Phone ✅ Address ✅ Contact ✅ Member since ✅ Logo ✅
Step 2 (visits each dealer, ~1s): Showcase website ✅ Phone ✅ Address ✅ Contact ✅ Member since ✅ Logo ✅
⚠️ The directory has hundreds of pages. Scrape in chunks; the script auto-stops at the last page. Each dealer page is visited (~1s) for website + phone + address.
Ready
Truckscorner Browser Console
MB Diffusion group platform (same engine as Machineryzone & Agriaffaires). The pro directory (
/pros/list/1.html on truckscorner.com) lists every dealer; no in-app country filter, so the script walks a page range and grabs every dealer, then opens each dealer page for full details. Optional country slug narrows the source (e.g. germany). Same-origin fetch() — no proxy.
Step 1 (directory): Dealer ✅ Activity ✅ Country ✅ City ✅ Makes ✅ # Listings ✅
Step 2 (visits each dealer, ~1s): Showcase website ✅ Phone ✅ Address ✅ Contact ✅ Member since ✅ Logo ✅
Step 2 (visits each dealer, ~1s): Showcase website ✅ Phone ✅ Address ✅ Contact ✅ Member since ✅ Logo ✅
⚠️ The directory has hundreds of pages. Scrape in chunks; the script auto-stops at the last page. Each dealer page is visited (~1s) for website + phone + address.
Ready
Mobile.de Browser Console
Germany's biggest vehicle marketplace. Data lives across pages, so the script does it in two phases same-origin on
suchen.mobile.de (no proxy — mobile.de blocks server fetches):
Phase 1 (search-result sweep): picks the chosen categories, walks every result page (past the 50-page UI cap, via
Phase 2 (one detail page per dealer): Total listings ✅ (the dealer's "von N Angeboten") Member-since ✅ Full address ✅ Dealer mobile.de page ✅
pageNumber) and collects every distinct dealer — Name ✅ Phone ✅ City ✅ Country ✅ Seller type ✅Phase 2 (one detail page per dealer): Total listings ✅ (the dealer's "von N Angeboten") Member-since ✅ Full address ✅ Dealer mobile.de page ✅
⚠️ Categories have thousands of listings. The script auto-paces, pauses if mobile.de shows a block/captcha (solve it, then click Resume), and saves progress — re-paste & re-run to continue. Phase 2 visits one detail page per dealer, so a large run takes a while. Real external website + e-mail aren't on this domain — they need a later
home.mobile.de pass.Ready
Otomoto Browser Console
Poland's biggest vehicle marketplace (otomoto.pl). Pick a category, set how many result pages to sweep, then run the script same-origin on otomoto.pl. It reads the page's embedded data (no HTML scraping), walks the pagination to the end, and collects every distinct dealer — de-duplicated by seller id.
Listing sweep (fast): Name ✅ Dealer page (subdomain) ✅ Logo ✅ City ✅ Region ✅ Country ✅ Seller type ✅ Approx. listings-in-category ✅
Dealer pages (recommended, default): Real total listings ✅ Full address ✅ Postal code ✅ Phone ✅ E-mail ✅ “On Otomoto since” ✅
Dealer pages (recommended, default): Real total listings ✅ Full address ✅ Postal code ✅ Phone ✅ E-mail ✅ “On Otomoto since” ✅
⚠️ Big categories have hundreds of pages (Trucks ≈ 350). The script auto-paces, pauses on a DataDome block/captcha (solve it → Resume), and checkpoints every page — re-run to resume where it stopped, nothing is lost.
Ready
| Name | Marketplaces | Act. MP | Total | Avg/MP | MRR /mo | Listings / marketplace | Phone | Website | City | Country | Zip | Address | Active since | Active by MP | Contact |
|---|
Statistics & KPIs
Countries
Marketplaces
Match
Refine (same filters as All Dealers)
💶 Estimated MRR / subscription revenue — from the Pricing tab, summed over active marketplaces, respecting the filters above. Use the marketplace & country filters to slice it.
MRR by marketplace
MRR by country
Geographic distribution — Europe
Real map — countries shaded by the selected metric (darker = more). Hover for exact values, scroll/drag to zoom & pan. Grey = no data. Respects the filters above.
Dealers per country
Top 15 by dealer count
Listings per country
Unique listings (max per dealer — not multiplied across marketplaces)
Marketplace distribution
Distinct dealers present on each marketplace
Dealers by number of marketplaces
How many dealers sit on 1, 2, 3 … marketplaces
Listings-per-dealer distribution
Unique listings per dealer — fixed buckets, with cumulative-% curve
Marketplaces × listings — correlation
Pearson r between a dealer's # of marketplaces and total listings
—
Dealers by country × number of marketplaces
Rows = countries · columns = how many marketplaces the dealer is on · cell = dealer count (darker = more)
💶 Marketplace pricing & budget estimates
Set the monthly price a dealer pays per marketplace, by listings bracket and country. The Est. budget column in All Dealers sums each dealer's active marketplaces (≥1 listing) at the matching bracket, applying the ± margin you set per marketplace, to show a low–high range. A marketplace with 0 listings adds nothing. Edit any cell, add/remove brackets, or copy one country's grid to another — then Save. Grouped column (Machineryzone / Truckscorner / Agriaffaires) is billed once using the dealer's largest listing count among the three.
—
📈 Aéllo Copilot — Business Plan live model
This tab = your detailed P&L & runway (every cost line, EBITDA, cash). The 🎯 GTM Model tab answers a different question — “will the go-to-market work, and should we invest?” (market → capacity → gates → go/no-go). To avoid two different revenue numbers, you can pull the GTM model’s revenue & customers into this P&L with the toggle below — then the GTM drives the top line and this tab supplies all the cost detail.
🔗 Revenue & customers from:
🔗 Stripe actuals
— connect your key in Settings
📅 Past actuals — what already happened (subscriptions, revenue & cost)
This is where you log real history, month by month: active subscriptions, MRR billed, other revenue, and the real cost (your purchase invoices). They overlay on the charts as dashed actual lines so you can compare plan vs reality. The Extrapolation scenario is pre-filled with your invoice costs. Months use
YYYY-MM (e.g. 2026-01). Stripe-synced months are used automatically where you leave revenue blank.🧾 Import purchase invoices (drag & drop)
Drop the Excel/CSV of your invoices to pay. I auto-detect the date and amount columns, total them per month, and let you push them straight into Other cost above — same prefill logic, but from your own file. Nothing leaves your browser.
⬆️ Drag your invoices file here, or click to choose (.xlsx, .xls, .csv)
MRR & customers
Revenue vs costs (monthly)
Cumulative cash (break-even)
Cost breakdown (end month)
🌍 Target countries (revenue)
New paying dealers added per month from Start month, with churn. Key accounts pay the higher price. Avg price ≈ your Copilot subscription per dealer.
💵 Other revenues (non-MRR)
Onboarding / setup fees, add-ons, usage. per new = one-off × new customers that month; per active = recurring × active customers; fixed = €/mo.
🤝 Affiliation & partners
A partner channel that brings extra paying customers each month. Their subscription revenue counts as revenue; the affiliate cost = Comm % of that subscription — recurring (every month while active) or one-off (first month only) — plus any fixed platform/retainer cost. Counted in Marketing & Sales. Set a Country to attribute it, or leave blank for all.
🧑💼 Per-employee costs (scale with the team)
Costs that are per person — they grow automatically when you add headcount in Team / HR above. Each line is a € amount per employee per month × the active headcount of the chosen scope. So hiring a salesperson auto-adds their meal vouchers, CRM seat (HubSpot), phone (CloudTalk), Gmail, laptop… “Applies to” uses the Sales / IT tags you tick on each person: every employee, Sales (people tagged Sales) or IT / dev (tagged IT). Someone can be both — e.g. a CEO ticked Sales + IT pays for both the CRM seat and the dev tools. The Now column shows the current cost at today's headcount.
⚡ Events that impact MRR & growth
Layer real-world events on top of the baseline ramp — they make month-by-month realistic. New rep / Marketing add new customers/mo (Marketing for a duration); Growth (+% new/mo) boosts organic acquisition by a % for a duration (Value = 20 → +20% new/mo); Price multiplies ARPU (1.1 = +10%); Churn overrides churn %; Bump adds a one-off batch of customers; Cost adds €/mo for a duration. Country blank = all.
🗺️ Roadmap & target KPIs
Edit milestones
📑 P&L by year (compte de résultat) 🌍 View:
Yearly summary — detailed revenue & expense lines. Pick a country above to see its P&L (shared overhead allocated pro-rata). Crop/extend via the Horizon above.
📊 Month-by-month P&L — follows the 🌍 country view above
🏆 Investor summary
🎯 Aéllo Copilot — GTM Model whales · funnel · CAC/LTV
Top-down market sizing, live on your data: clean the whale accounts per country into 3 tiers, price each one, derive the TAM → SAM → SOM, then reverse-engineer how many active clients (and therefore sales / demos / calls) you need to break even — with CAC, LTV and payback. This tab = the growth & go/no-go decision (market, capacity, gates). The 📈 Business Plan tab turns it into a detailed month-by-month P&L & runway — pull these numbers straight in via its “Revenue & customers from → 📊 The GTM Model” toggle. Your original Business-Plan simulation stays untouched until you flip that switch.
📝 Notes & assumptions log — scratchpad saved with this scenario (decisions, "in the meantime…", how each gate works)
📐 Market sizing — TAM → SAM → SOM
TAM = the whole reachable market (whales + the small long-tail). SAM = the part we can actually serve well = the whale accounts. SOM = what we realistically obtain in ~3 years (your market-share assumption × SAM).
🐋 Whale accounts per country
Tier criteria are fully editable per 🔍 Review (field · operator · value, combined with AND/OR). Count = number of accounts; €/mo = their average subscription. Edit any cell.
🔍 Review lets you build each tier from any number of conditions — pick a field (marketplaces #, unique listings, total listings, marketplace names, dealer name), an operator (≥ > = ≤ <, or contains / doesn’t contain for text) and a value, combined with AND (match all) or OR (match any). It then pulls the matching active dealers per country so you can uncheck auctions / parts sellers / irrelevant ones before writing the count back.
🎛️ Assumptions (the levers)
Funnel, rep economics, cost base & value. Tap any i to see what it means. Everything recomputes live.
👥 Salesforcei
🧮 How many sales do we NEED? (reverse funnel)
From total cost → break-even clients → demos → calls → reps → CAC / LTV / payback.
🎯 Break even withinmonths
→ the «Avg €/mo per whale to break even» line below solves for the ARPU you'd need, with the sales force as configured.
📞 Outbound capacity — how many demos can one BD really run?
Set sales/rep/month (simplest): you say how many clients one rep signs a month → the model back-calculates the demos and calls needed (using the close-% and call→demo-% in the Assumptions panel). Or derive bottom-up from full activity. Either way each new rep ramps over their own first months.
🌍 Unit economics per country
Each country's whales, 3-yr SOM, blended price, and its own CAC / LTV / LTV:CAC / payback (shared cost allocated pro-rata by whales). This is "CAC & LTV for each country" from the meeting.
🪧 Self-serve channel — the small / mono-platform long tail hypothesis
No demo, no onboarding — full self-care. Small accounts can't justify human time: they find you (ads / SEO), sign up and connect themselves. This is the standard B2B-SaaS paid funnel: ad budget → clicks → trials → paid. Set your spend & conversions below; the model gives CAC, LTV:CAC, payback and the break-even conversion. Separate from the whale plan above.
Pool · price · launch
📣 Paid funnel (the parameters to adjust) — checked against the LTV:CAC 3× hurdle
📣 Where we can spend (channels)
- Email on the scraped list — low cost
- SEO / content / white-paper — takes time & energy (cheap, slow)
- Retargeting of visitors — cheap, high intent
- AI ads on Claude / GPT / Gemini answers
- SEA on intent keywords (Google)
- LinkedIn — pricier, B2B targeting
No demo — full self-care.
🧪 Test & learn (small accounts)
💡 Conversion tips
- Time-to-value < 10 min — connect 1 marketplace & WhatsApp on day one
- Annual pre-payment to avoid early churn
Path to equilibrium
Clients (stacked) + cumulative cash
Revenue vs cost (monthly)
MRR vs total cost, with the EBITDA / net line
Cost by category (monthly)
People · Marketing & Sales · Tech · Rent · Admin · Overhead · One-off
Whales by country & tier
🚦 Validation gates — go / no-go decision framework
A flow of dated stop/go tests. At each one: pass → continue; miss → do your committed response — one or more actions you decide now and commit to doing all of (and the flow stops there until you act). The point is they're chosen before you're emotional about it. Leave a row on “Continue as planned” and it's just a checkpoint to watch, not a gate. Each gate shows the cash you'd have burned if you stop there. 0 = ignore that criterion.
💡 Need ideas? 14 gate examples (investor-grade checkpoints)
Copy the shape into your own gates: a metric, a threshold, a date — and what you'll do if it misses. Click ✨ Load recommended flow above to drop in the 5-gate starter set.
🗺️ Flow map — 🚦 solid = a real gate (stop/go, branches on miss) · • dashed = a checkpoint you only watch
✏️ Edit gates — criteria, dates & miss-actions
👥 Team & firing — non-sales headcount (tech / ops / admin). Each adds to the monthly burn until fired; firing flows into the projection & cash.
Set a “Fire at” gate (or month) to model a worst-case cut: from that month the salary stops and the cash burn drops. Sales reps are fired in the Salesforce → «Plan — hire at gates» table above — firing a rep stops their cost and their sales capacity, so you can pick exactly who to let go. Keep best-case vs worst-case as separate 📁 scenarios.
🧭 SWOT — strengths · weaknesses · opportunities · threats. Click any bullet to edit; “+ add” for a new one. Saved with the scenario.
📈 Projection — whales + self-serve combined · click any underlined value for its calc Month 1 = Horizonmo
💸 Cash already burned before month 1
€
— the cumulative-cash line & peak cash start from −this, so total capital needed is right. It is NOT a cost of any year, so it never distorts the P&L / EBITDA. (Remove the “Cash burned” extra-cost row — that double-counts it as 2026 opex.)
📉 Downside: cash-in at% of plan
— drives the “Cash @ X% rev” column & the worst-case burn KPI: if you miss the targets, how much cash you burn (same costs, less/no cash-in).
New clients each month = Whales (rep-driven) + Self-serve (inbound). Whales =
min(ramp × sales capacity, market room) — sales capacity is built bottom-up in the 📞 Outbound panel; each salesperson ramps up to 100% over their own ramp window (set Ramp to full (months) in 👥 Salesforce, or per-rep in the Plan table). market room = the whale list still un-won (caps growth at your SOM target). Self-serve = min(ramp × inbound sign-ups, pool left) from the ad funnel, draining the addressable pool. Click any underlined value (Gross adds, Active, MRR, Cost, Net, Cash) to pop its exact calculation for that month.➕ Extra costs on the projection — add any recurring € /mo (legal, office, infra…) with a start/end month; it's added to the Cost column
📑 P&L by year — compte de résultat, aggregated from the projection above Country:
🔗 Stripe connection (read-only)
Connect a restricted, read-only Stripe key (
rk_… recommended — give it only read permissions on Subscriptions & Invoices) to pull your active subscriptions, real MRR and paid invoices into the Business Plan as actuals. The key is stored server-side and never displayed back; the app only reads (never creates/charges).🔒 Change Password
👤 My Profile
👥 User Management
| Username | Display Name | Created |
|---|
Add New User
🗑️ Data Management
Clear all data for a specific marketplace. This removes marketplace links; dealers shared with other marketplaces are kept.