Copilot

Dealer Hub Copilot

Multi-marketplace dealer intelligence — by Aéllo

🚀 AUTO-DEPLOY OK · 2026-07-10 · test-1
Forgot password?

Marketplace Coverage

Recent Scrape Sessions

DateMarketplaceCountries / paramsFoundNewMatchedStatus

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 ✅
Sandhills sites All · None
🌍 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 ✅
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).
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 ✅
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 ✅
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 ✅
⚠️ 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 ✅
⚠️ 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 ✅
⚠️ 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 ✅
⚠️ 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 ✅
⚠️ 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 ✅
⚠️ 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 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” ✅
⚠️ 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

All Dealers — Unified View

Countries All · None
Marketplaces All · None
Match
Refine & sort
0 selected | Delete pages Page-range deletes every dealer matching the current filters on those pages.
NameMarketplacesAct. MPTotalAvg/MPMRR /moListings / marketplacePhoneWhatsAppEmailWebsiteCityCountryZipAddressActive sinceActive by MPContact

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.

👥 Team / HR

Gross monthly salary × headcount × (1 + employer charges) → counted in the row's Bucket. Phase hires with start/end. For a salesperson set Comm %, the Type (one-off = N months of the deal MRR · recurring = % of the active MRR of their countries every month) and the Countries they cover (e.g. BE,NL,LU — blank = all). Highlighted rows are commissioned.

📣 Marketing & Sales spend

🛠️ Tools & infrastructure

💥 One-off costs

🧑‍💼 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

    UsernameDisplay NameEmailCreated

    Add New User

    🗑️ Data Management

    Clear all data for a specific marketplace. This removes marketplace links; dealers shared with other marketplaces are kept.