MCP (ChatGPT / Claude) · Wood-processing equipment dealer

Wood-processing equipment dealer → sawmills in Finland: what one real Prosp run returned

Run date
Job duration
47 min 39 s
Results came from
Live web search
Delivered
8 of 8 requested
Screened at completion
229
Rejected at completion
218
Discarded after target
49

TL;DR

  • Prosp delivered 8 companies in 47 minutes 39 seconds.
  • 3 of 8 companies had no company size, so the size preference could not filter them.
  • 2 of 8 companies had no register match.
  • 1 company was in the agriculture_food_production industry, not manufacturing.

The scenario

A dealer of wood-processing equipment wants Finnish sawmills and wood product manufacturers that run their own processing lines, because those are the companies that buy saws, planers and kilns. The buyer is a profile we set up to test this market, not a customer. The run is real, and every company on this page came back from it.

Buyer
A dealer of saws, planers and drying equipment for the timber industry. An illustrative profile, not a named customer.
Target
Small and medium Finnish sawmills and wood product manufacturers that run their own processing lines.

The exact request

Sent by an AI agent through the MCP server as the tool call find_prospects with these arguments:

{
  "criteria": {
    "query": "Find Finnish sawmills and wood product manufacturers that run their own timber processing lines",
    "industries": [
      "manufacturing",
      "furniture_manufacturing"
    ],
    "locations": [
      "Finland"
    ],
    "company_sizes": [
      "small",
      "medium"
    ],
    "keywords": [
      "sawmill",
      "saha",
      "timber products"
    ],
    "maxResults": 8
  }
}

How this run was actually started: through Prosp's internal job endpoint, with exactly these criteria and a target of 8 companies, under an internal exploration account whose results never reach a CRM. That path does not charge credits. Through MCP, an agent sends these arguments to find_prospects, then calls get_discovery_status and get_discovery_results with the job id it gets back.

What came back

The 8 delivered companies, company-level fields as stored for the run. A dash means the field was empty.
namedomaincitycountryindustrybusiness_modelcompany_sizeemployee_countemployee_count_sourceregistry_source
Isojoen Saha Oyisojoensaha.fiIsojokiFinlandmanufacturingmanufacturer———YTJ
Akonkoskensahaakonkoskensaha.fiTöysäFinlandmanufacturingmanufacturer————
Kieppi Sawmill Oykieppisawmill.comMäntyharjuFinlandmanufacturingmanufacturerMICRO6unverified_estimateYTJ
Westas Group Oywestas.fiKoski TlFinlandmanufacturingmanufacturer———YTJ
Uniwood Oyuniwood.fiLahtiFinlandmanufacturingmanufacturerMICRO2unverified_estimateYTJ
Pohjan Timber-hirsi Oypohjantimber.fiHaapavesiFinlandagriculture_food_productionmanufacturerMICRO10unverified_estimateYTJ
Timberwisetimberwise.fiHelsinkiFinlandmanufacturingmanufacturerSMALL16unverified_estimate—
Puumanni Kypuumanni.fiPaltamoFinlandmanufacturingmanufacturerMICRO3unverified_estimateYTJ

Checking the registry ids

Delivered rows checked against the public register on 2026-10-04
domainregisterid deliveredresultwhat we compared
isojoensaha.fi PRH open data (Finnish Trade Register) — verified Looked up by the delivered name (this run's lane does not return registry ids): register: Isojoen Saha Oy (id 0405653-8), seat ISOJOKI, active.
kieppisawmill.com PRH open data (Finnish Trade Register) — verified Looked up by the delivered name (this run's lane does not return registry ids): register: Kieppi Sawmill Oy (id 2803778-8), seat MÄNTYHARJU, active.
westas.fi PRH open data (Finnish Trade Register) — verified Looked up by the delivered name (this run's lane does not return registry ids): register: Westas Group Oy (id 2523631-9), seat KOSKI TL, active.
uniwood.fi PRH open data (Finnish Trade Register) — verified Looked up by the delivered name (this run's lane does not return registry ids): register: Uniwood Oy (id 1549920-3), seat LAHTI, active.
pohjantimber.fi PRH open data (Finnish Trade Register) — verified Looked up by the delivered name (this run's lane does not return registry ids): register: Pohjan Timber-hirsi Oy (id 0982516-4), seat HAAPAVESI, active.

Why candidates were rejected

Rejection reasons, 67 recorded, including candidates that finished after the target was reached
ReasonCountShare
icp_intent_mismatch26 26
global_dedup9 9
industry_contradiction5 5
country_not_in_target4 4
large_too_large3 3
content_thin2 2
enterprise_too_large2 2
industry_hard_floor:b2b_services2 2
parked_domain2 2
classifier_unknown_industry:fa74e33ea46f1 1
content_unknown1 1
directory_aggregator1 1
dns_nxdomain1 1
industry_hard_floor:bakery_pastry1 1
industry_hard_floor:off_taxonomy1 1
industry_mismatch1 1
industry_penalized:home_furniture1 1
industry_penalized:none1 1
non_commercial_early1 1
page_archetype_article1 1
page_archetype_generic1 1

Also not counted above: 152 candidates were never judged at all. Our own pipeline ran out of time on them (an infrastructure stall on our side), so they say nothing about the companies; a re-run would judge them.

Not counted above: 49 more candidates were still being processed when the target was reached. They were discarded without being evaluated (terminal_job_discarded), so they say nothing about quality either way.

What went wrong

How to read this run

The table lists the 8 companies exactly as the run returned them, company-level fields only (name, domain, city, country, industry, business model, company size, employee count, employee count source, registry source). Where a cell is empty, the run did not have the value.

Company size is a band (micro, small, medium, large, enterprise); the employee count source says whether the head count came from an official register or is an unverified estimate. A registry source means Prosp matched the row to a government register.

Below the table, the rejection histogram gives the reasons candidates were screened out. It keeps counting candidates that finish after the target is reached, so its total can be larger than the number rejected when the job completed. Candidates still in progress at that point are listed separately as discarded: they were never evaluated.

Checking the registry

On 2026-10-04, 5 rows that carry a register match were looked up on the public register by the delivered name, and the register's seat and status were compared with the row. The id shown is the register's own: the exploration account this run used does not return the ids Prosp delivers.

Cost and time

How to reproduce this run

A repeat will not return exactly these rows. The web changes, and each run adds to Prosp's knowledge base, so a later run may be served partly from companies found by earlier ones.

Run your own

Describe the companies you want to reach and get the same output: the companies, the rejection histogram and the registry ids to check them against.

Start in Telegram Get API credentials Read the API reference

A discovery costs 100 credits, bought in the Telegram bot with Telegram Stars. Pricing, payment and API keys walks you from the first message to your first run, step by step.