Nordic Tender Matcher (AI) avatar

Nordic Tender Matcher (AI)

Pricing

from $132.00 / 1,000 tender matcheds

Go to Apify Store
Nordic Tender Matcher (AI)

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

Fredrik Hansson

Maintained by Community

Actor 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.

Nordic Tender Matcher (AI) — input and sample output

Quick start

  1. Fill in the input — set the fields in the input tab (prefilled with a working example).
  2. Click Start — the Actor runs and writes one record per item to the dataset.
  3. Get your data — export to JSON, CSV or Excel, or pull it via the API.

How it works

  1. 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.
  2. Cheap pre-filter — OpenAI turns your companyProfile into relevant CPV codes and keywords (one small call), and obviously irrelevant notices are dropped before any expensive analysis.
  3. AI scoring — OpenAI scores each surviving tender and returns matchScore (0–100), matchReason, summaryEn and keyRequirements.
  4. Rank & deliver — matches at or above minScore are 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, matchReason and keyRequirements are always English, regardless of the tender's language.
  • Agent-ready — see "Use it as an AI-agent tool" below.

Input

FieldTypeDefaultDescription
companyProfilestring— (required)Free text: what you sell/do, size, regions, references. The more specific, the better the matching.
countriesstring[]allSources to search: ted (current SE + FI), doffin (NO), hilma (historical FI).
publishedFromstring (ISO date)7 days agoOnly tenders published on/after this date.
publishedTostring (ISO date)todayOnly tenders published on/before this date.
minScoreinteger60Only deliver matches scored at or above this (0–100).
maxResultsinteger25Max 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:

FieldTypeDescription
matchScorenumber0–100 fit score for your company.
matchReasonstring2–3 sentences: why it fits (and gaps).
summaryEnstringWhat's being bought, scope, key requirements — in English.
keyRequirementsstring[]The most important requirements/qualifications.
id, source, countrystringStable id, source (doffin/hilma/ted), buyer country (NO/FI/SE).
title, titleEnstringOriginal and English title.
buyerName, buyerOrgNumberstring | nullContracting authority and its org number.
cpvCodesstring[]CPV classification codes.
estimatedValue, currencynumber | null, string | nullEstimated value, if published.
publishedDate, deadlinestring | nullISO-8601 dates.
noticeType, procedureTypestring | nullNotice and procedure type.
descriptionstring | nullOriginal-language description.
urlstring | nullOfficial 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 Sweden
and 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 14001
certified. 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:

EventWhen it's chargedNotes
tender-scannedPer notice pre-filtered (the cheap scan step)Covers fetching + cheap filtering.
tender-matchedPer match delivered after AI analysisCovers 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

VariableRequiredPurpose
OPENAI_API_KEYYesOpenAI API key — powers the pre-filter and scoring.
OPENAI_MODELNoOverride the model (default gpt-4o-mini).
DOFFIN_API_KEYFor Norway (doffin)Doffin Public API key (Ocp-Apim-Subscription-Key).
HILMA_API_KEYFor 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 install
export OPENAI_API_KEY=... # required
export 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

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.