Nordic Tender Matcher (AI)
Pricing
from $132.00 / 1,000 tender matcheds
Nordic Tender Matcher (AI)
AI agent that scores Norwegian, Finnish and Swedish public tenders against your company profile and tells you which ones to bid on. Actively maintained. · More no-code data tools → datatools-hub.vercel.app
Pricing
from $132.00 / 1,000 tender matcheds
Rating
0.0
(0)
Developer
Fredrik Hansson
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Answers the question "which Nordic public tenders should my company bid on?" — not "here are 10,000 rows."
Give it a short description of your company. It fetches the open public tenders from Norway, Finland and Sweden, uses OpenAI to pre-filter the obviously irrelevant ones, then scores each remaining tender against your profile and returns a ranked shortlist with a reason, an English summary and the key requirements for every match.
It's built for the moment a salesperson, bid manager or founder asks "is there anything worth bidding on this week?" — and for AI agents that need that answer as a tool call.

Quick start
- Fill in the input — set the fields in the input tab (prefilled with a working example).
- Click Start — the Actor runs and writes one record per item to the dataset.
- Get your data — export to JSON, CSV or Excel, or pull it via the API.
How it works
- Fetch — pulls open tenders from the selected sources (Norway = Doffin, Finland = Hilma, Sweden + current Finland = EU/TED), reusing the same official-API logic as the Nordic Public Tenders Actor. No scraping.
- Cheap pre-filter — OpenAI turns your
companyProfileinto relevant CPV codes and keywords (one small call), and obviously irrelevant notices are dropped before any expensive analysis. - AI scoring — OpenAI scores each surviving tender and returns
matchScore(0–100),matchReason,summaryEnandkeyRequirements. - Rank & deliver — matches at or above
minScoreare sorted by score and returned, best first.
Real OpenAI token usage (and an estimated cost) is logged for every run and stored in the run's SUMMARY.
Why it's different
A raw tender feed makes you read every notice in three languages and decide what fits. This Actor does the reading and the judgement call:
- Ranked, not raw — you see the best opportunities first, with a score.
- Explained — every match says why it fits your company (and where the gaps are).
- English everywhere —
summaryEn,matchReasonandkeyRequirementsare always English, regardless of the tender's language. - Agent-ready — see "Use it as an AI-agent tool" below.
Input
| Field | Type | Default | Description |
|---|---|---|---|
companyProfile | string | — (required) | Free text: what you sell/do, size, regions, references. The more specific, the better the matching. |
countries | string[] | all | Sources to search: ted (current SE + FI), doffin (NO), hilma (historical FI). |
publishedFrom | string (ISO date) | 7 days ago | Only tenders published on/after this date. |
publishedTo | string (ISO date) | today | Only tenders published on/before this date. |
minScore | integer | 60 | Only deliver matches scored at or above this (0–100). |
maxResults | integer | 25 | Max delivered matches (one tender-matched charge each). |
Output
One dataset item per match, highest score first. It is the normalised tender schema plus the AI analysis:
| Field | Type | Description |
|---|---|---|
matchScore | number | 0–100 fit score for your company. |
matchReason | string | 2–3 sentences: why it fits (and gaps). |
summaryEn | string | What's being bought, scope, key requirements — in English. |
keyRequirements | string[] | The most important requirements/qualifications. |
id, source, country | string | Stable id, source (doffin/hilma/ted), buyer country (NO/FI/SE). |
title, titleEn | string | Original and English title. |
buyerName, buyerOrgNumber | string | null | Contracting authority and its org number. |
cpvCodes | string[] | CPV classification codes. |
estimatedValue, currency | number | null, string | null | Estimated value, if published. |
publishedDate, deadline | string | null | ISO-8601 dates. |
noticeType, procedureType | string | null | Notice and procedure type. |
description | string | null | Original-language description. |
url | string | null | Official public notice page. |
Examples
1. IT consultancy (Sweden + Finland)
companyProfile
Mid-sized Swedish IT consultancy (40 employees) specialising in cloud migration,custom software and system integration for the public sector. Operates in Swedenand southern Finland. References in regional healthcare and municipal e-services.
Example output item
{"matchScore": 86,"country": "SE","titleEn": "Sweden – IT consulting services – Framework agreement for system development","buyerName": "Västra Götalandsregionen","matchReason": "Strong fit: the buyer wants public-sector system development and integration, exactly your core offering, and your regional healthcare references are directly relevant. The required team size is within reach for a 40-person firm.","summaryEn": "Framework agreement for custom system development and integration services for a regional authority. Multi-year, call-off based, with options for maintenance.","keyRequirements": ["Public-sector references", "Agile delivery capability", "GDPR/security compliance", "Swedish-speaking team"],"deadline": "2026-11-03T23:59:00.000Z","estimatedValue": 40000000,"currency": "SEK","url": "https://ted.europa.eu/en/notice/-/detail/677811-2026"}
2. Facility cleaning company (Norway)
companyProfile
Norwegian facility-services company, 120 employees, providing commercial cleaning,window cleaning and light grounds maintenance across Oslo and Viken. ISO 14001certified. No construction work.
Returns high scores on municipal/regional cleaning and facility-maintenance framework agreements in Oslo/Viken; low scores on construction, catering or IT notices (dropped at pre-filter or scored below minScore).
3. Medical equipment distributor (all three countries)
companyProfile
Distributor of medical imaging equipment and consumables (MRI, CT, ultrasound)with service contracts. Sells to hospitals across the Nordics. Not a software vendor.
Returns imaging-equipment and service-contract tenders from hospitals/health regions in NO/FI/SE, with keyRequirements surfacing things like CE marking, service-level guarantees and installation scope — and clearly lower scores where a notice is only teleradiology software rather than hardware.
Pricing — pay per event
Two events, so you only pay for work actually done:
| Event | When it's charged | Notes |
|---|---|---|
tender-scanned | Per notice pre-filtered (the cheap scan step) | Covers fetching + cheap filtering. |
tender-matched | Per match delivered after AI analysis | Covers the OpenAI scoring + margin. |
How to price it (developer note). The main cost is the OpenAI scoring of the tenders that survive pre-filtering. Set tender-matched high enough to cover the OpenAI tokens for the analysed set (including analysed-but-below-threshold notices) with margin, and keep tender-scanned low. Every run logs real token usage and an estimated AI cost (in the log and in SUMMARY.ai), so you can calibrate prices against actual spend. Note Apify enforces a $0.10 minimum price per event.
Environment variables / secrets
| Variable | Required | Purpose |
|---|---|---|
OPENAI_API_KEY | Yes | OpenAI API key — powers the pre-filter and scoring. |
OPENAI_MODEL | No | Override the model (default gpt-4o-mini). |
DOFFIN_API_KEY | For Norway (doffin) | Doffin Public API key (Ocp-Apim-Subscription-Key). |
HILMA_API_KEY | For historical FI (hilma) | Hilma AVP-Read key (Ocp-Apim-Subscription-Key). |
Sweden + current Finland (via ted) need no key.
Use it as an AI-agent tool (Apify MCP)
Once published, this Actor is callable through the Apify MCP server (https://mcp.apify.com). Any MCP client — Claude, Claude Code, Cursor, ChatGPT — can invoke it as a tool. Because the input is a single natural-language companyProfile and the output is a ranked, explained shortlist, an agent can be told:
"We're a Finnish security-services firm — find public tenders worth bidding on this month."
…and call this Actor directly, then reason over the returned matches. The flat, English, scored output is designed to be consumed by an LLM without extra glue code.
Run it locally
npm installexport OPENAI_API_KEY=... # requiredexport DOFFIN_API_KEY=... # for Norway (optional)export HILMA_API_KEY=... # for Finnish history (optional)# Put your input in storage/key_value_stores/default/INPUT.json, then:apify run# or: npm run build && node dist/main.js
Related
This Actor reuses the data-collection layer of Nordic Public Tenders (the raw-feed Actor). Use that one if you want the unfiltered notices; use this one if you want the answer to "what should we bid on?".
License
ISC.
Related actors
- Nordic Public Tenders (Norway, Finland, Sweden) — Collects public procurement notices from Norway (Doffin), Finland (Hilma) and Sweden
- Nordic Company Registry (Norway, Finland) — Official company-registry data from Norway (Brønnøysund) and Finland (PRH) in one
- Signal Radar — AI Account Intelligence & ICP Scoring — Turn company domains into ICP-scored, signal-tagged account intelligence from public


