Skip to content

Sourcing

Source: Playbook v2 EN — Ch. 3

Score all leads against the thesis in the playbook-thesis skill before creating cards.

Channels

Three channels: broker listings, public data weak signals, direct outreach.

Broker Platforms (Finland)

  • yritysporssi.fi — primary Finnish business-for-sale marketplace. WAF/CAPTCHA-blocked for steel-browser since 2026-04-28 — confirmed 2026-07-06 this covers individual listing pages too, not just category/search pages; confirmed 2026-08-03 the block is an AWS WAF image-CAPTCHA (x-amzn-waf-action: captcha) applied blanket at the ELB layer to every path including robots.txt, likely triggered by our Hetzner (datacenter ASN) egress rather than real-browser traffic — a partner on a residential connection should have no trouble. Brave Search cache can work for a one-off known URL but listing IDs get recycled within weeks, so treat cached content as possibly stale/wrong. Workaround (2026-08-03): email saved-search alerts ("hakuvahti"). Mike manually created an account + 3 saved searches on simo.siilanen@askelventures.com from a real browser — this sidesteps the WAF entirely since it's genuine human signup, not scraped traffic. New matching listings arrive by email from asiakaspalvelu@yritysporssi.fi. See H4 in CLAUDE.md's #prospecting protocol and the cron-yritysporssi-alerts skill.
  • yrityskaupat.net — MERGED into firmakauppa.fi as of 2026-07-27. The independent browsable catalog is gone — yrityskaupat.net/fi/myytavat-yritykset/ and all industry sub-paths now hard-redirect to firmakauppa.fi (same operator, "Suomen Yrityskaupat Oy," confirmed via shared /syk/ codebase path). The old select[name=industry] + loadSelling() trick no longer renders. Old yrityskaupat.net listing URLs (127xxx ID range) still resolve individually by direct link, but there's no way to systematically browse that ID space anymore — treat it as frozen/legacy. Some existing Trello cards cite yrityskaupat #NNNNNN IDs; when checking a firmakauppa.fi listing for dedup, also check whether its content matches an old yrityskaupat.net-sourced card (cross-listed same-target under two ID schemes is common — see e.g. the LVIS-urakointiyritys Varsinais-Suomi card, listed as both yrityskaupat #127109 and firmakauppa #FK73435).
  • firmakauppa.fi — now the sole surviving site for what was two platforms. NOT WAF-blocked — scrape directly with steel-browser. Listing tables are pre-rendered client-side, so a full category page pull yields the complete listing set in one go — no pagination handling needed. Preferred method (found 2026-07-27): hit the JSON endpoint https://www.firmakauppa.fi/fi/koti/getIndustryDropdown/?hideEmpty=1&itemType=SELLING&perPage=200 for exact sector slugs + live per-sector listing counts, then browse https://www.firmakauppa.fi/fi/myytavat-yritykset/{slug}/ directly — this replaces the older click-through/select2 approach. Every listing discloses asking price, revenue, sometimes balance-sheet total, and employee count — but never EBITDA/profit. That means no firmakauppa.fi-sourced lead can be confirmed CARD-WORTHY from the listing alone; treat as DEFER pending direct broker/seller inquiry, even when revenue/price/employees/sector all pass. Has a "Katso myös nämä..." recirculation widget linking to other firmakauppa.fi listings (harmless now that yrityskaupat.net has merged in) — when extracting listings, scope to tbody table rows on category pages rather than following every link on the page. Dedup baseline: track the highest firmakauppa.fi ID (FK#####) checked per sector, not a single overall number — the 2026-07-27 sweep found many un-swept back-catalog listings with IDs below the prior week's tracked baseline (FK73594), meaning prior weeks' coverage was narrower than assumed. When doing a fresh full-catalog pull, treat every listing not in the last session's explicit known-ID list as needing a dedup check, regardless of whether its ID is higher or lower than the prior baseline.
  • Broker list (Välittäjät): Google Sheets
  • novie.fi — excluded, not a source. Confirmed 2026-08-31 (Mike, via the MEMO card): it's a business-sale consulting/brokerage service, not a listing catalog — no browsable or scrapable inventory of businesses for sale, just service marketing + contact-us. Nothing to sweep here; don't add it to a cron or sourcing session.

Broker Platforms (Sweden) — paused

Not in use: Sweden and Estonia have been paused since 2026-10-02 (see playbook-thesis). These sources are kept here for reference only.

  • bolagsplatsen.se — primary marketplace (~890 listings, confirmed live 2026-04-21)
  • exitpartner.se — active broker network, NDA-gated
  • företagsförmedlingen.se — live homepage; listing URLs intermittently broken

Weak-Signal Sourcing

Finding unlisted businesses via Finder.fi + public records. Signals: - Owner age 55+ — strongest single predictor of exit-readiness - Revenue declining 2–3 years but still profitable - Stale or absent web presence - Not listed for sale but fits all thesis criteria

Thresholds: 3+ signals → investigate; 5+ signals → outreach-worthy.

Owner Age — How to Estimate

Step 1 — Public records: - PRH / YTJ sometimes includes birth year (format: DDMMYY in henkilötunnus prefix) - asiakastieto.fi päättäjät page occasionally shows birth year - proff.fi board listings sometimes include age

Step 2 — LinkedIn / social media: - Graduation years anchor an age estimate ("Class of 198X" = born early-to-mid 1960s)

Step 3 — Photo estimation: - Company website, local news, LinkedIn photo, Facebook - Note estimated range (e.g. "appears 60+") — do not overstate precision

Step 4 — Company history inference: - Founded 1985 + founder still running = likely 60s+

Record as: **Omistajan ikä-arvio:** ~6X (syntymävuosi [XXXX tai ei tiedossa], lähde: [PRH / LinkedIn / kuva / arvio])

Scoring: age 55–59 = 1 exit signal; 60–64 = 2; 65+ = 3.

finder.fi Workflow

  • Use browser-capable tooling when JS rendering is needed.
  • Do not trust first-pass secondary-source revenue estimates when finder.fi verification is available.
  • Check revenue history, margins, headcount, founding date, board/management details.
  • For non-obvious companies, search finder.fi first.
  • Sector + geography discovery (corrected 2026-08-03): don't brute-force-guess company names. PRH's open-data API (https://avoindata.prh.fi/opendata-ytj-api/v3/companies?location={city}&mainBusinessLine={TOL code}) supports real structured filtering by industry code, town, and registration-date range — the "no structured search" limitation only applies to Finder's own fofisuggest autocomplete, not PRH. Use it to pull the full list of businessIds for a sector+city (or sector+age-band), then verify financials for each via the finder.fi detail-page flow above. Full param reference in the finder-fi skill.

Data Source Priority

Tier 1

  • yritysporssi.fi, firmakauppa.fi (yrityskaupat.net merged in here 2026-07-27), finder.fi

Tier 2

  • kauppalehti.fi / proff.fi, ytj.fi / PRH, Suomen Yritysmyynti / Finlandia Business

Tier 3

  • Hilma, industry-specific registries, industry associations, direct outreach

Referral Networks (underdeveloped — Varia, 2026-04-02)

  • Suomen Yrittäjät — 100k+ member SME association; local chapters have direct retiring-owner relationships
  • Omistajanvaihdos RY — explicitly focused on business succession; best single partner for warm deal flow
  • Accounting firms (tilitoimistot) — see the P&L before any broker does

Approach: offer co-referral, not just awareness.

Follow-on Sourcing

Read knowledge/sourcing/portfolio.yaml before every sweep. For each existing holding: - Search adjacent/overlapping regions in the same sector - Tag matching leads as follow-on / add-on candidates - Reference the parent holding explicitly

Thesis flexibility for add-ons: normal thesis filters can be relaxed for credible add-ons. Flag with "Add On Acquisition" Trello label.

Current holdings: Melers Oy — laundry/textile services, Turku area.

Trello Card Standards

Always clone the template card (📋 TEMPLATE: PROSPEKTI) on the Case Scouting board — never create from scratch.

Every prospect card must include: - Y-tunnus (verified in PRH/finder.fi) - Source link - CEO: name, LinkedIn, contact details - Chairman / owner: name, LinkedIn, contact details, age estimate - Financial analysis link: https://docs.google.com/spreadsheets/d/1llwFP6A7K8D7KaMK9hUOZrz_Bh69od0q/edit (paste in "Kopioi ja täytä talousanalyysi" checklist item) - Cover image: a sector-descriptive flat-illustration icon (via the image-gen skill), keyed off the card title's sector keyword (kuljetus→truck, hautaustoimisto→bouquet+chapel, pesula→washing machine, rengas→tires, sähkö→panel+bolt, LVI/IV/VVS→ductwork+wrench, eristys→insulation roll, siivous→cleaning cart, kiinteistönhoito→toolbox, etc.) — replaces the generic template stock photo. Added 2026-09-03 (Varia's request) across all 67 existing Prospecting cards; apply it to every new card going forward, not just in a batch cleanup.

Description template:

## MYYJÄN YHTEYSTIEDOT:
[contact info or "Ei tiedossa — ei myytävänä"]

---

**Y-tunnus:** [xxx]
**Sijainti:** [city, region]
**Toimiala:** [sector]
**Liikevaihto:** [Xk (year)]
**Liikevoitto:** [Xk (X%)]
**Henkilöstö:** [~N]
**Perustettu:** [year (~age)]

**Toimitusjohtaja (CEO):**
- Nimi: [name]
- LinkedIn: [url or "ei löydy"]
- Yhteystiedot: [email/phone or "ei tiedossa"]

**Omistaja / hallituksen puheenjohtaja:**
- Nimi: [name]
- LinkedIn: [url or "ei löydy"]
- Yhteystiedot: [email/phone or "ei tiedossa"]
- Ikä-arvio: [~XX tai "ei tiedossa"] (lähde: [PRH / LinkedIn / kuva / arvio])

**Miksi kiinnostava:**
- [reason]

**Signaalit:** [sale status / outreach note]
**Lähde:** [sweep name or source URL]

yrityspörssi.fi specifics: - Broker-gated, anonymized listings — the site blocks direct scraping - When a team member shares a listing URL, parse what's visible in the slug - Always check Case Scouting board for duplicates before adding - Never add anonymized prospects without the listing URL and a "broker contact required" note

Before adding any card: 1. Verify Y-tunnus exists (PRH API or finder.fi) 2. Confirm revenue/profit data matches thesis 3. Add source link, CEO, and owner/chairman info

Anti-patterns

  • Do not reverse-engineer anonymous listings when contacting the broker is simpler.
  • Do not rely on finder.fi location filters; filter client-side.
  • Do not treat weak sentiment signals as a substitute for financial verification.
  • Do not assume English-language search is useful for Finnish SME sourcing.
  • Do not add prospects without Y-tunnus and source link.

After Each Session

Write or update: session thesis, session notes, lead files, debrief (if new methods or failures surfaced). Archive in knowledge/sourcing/.