BidScout
Összes bejegyzés
6 min read

How BidScout Knows Which Tenders Fit Your Business

You describe your company once. Every day, thousands of tenders get scored against your profile. Here’s how the AI matching actually works — embeddings, similarity scoring, and what it takes to make it useful.

AITechnologyBehind the Scenes
Ez az oldal jelenleg csak angol nyelven elérhető.

When you sign up for BidScout and fill in your company profile, something happens behind the scenes. Every tender in our database — thousands of them, across 27 EU countries and growing — gets scored against what you do. Not by keywords. By meaning.

People ask how this works more than anything else. So here’s the honest version — how we turn a paragraph about your company into a match score for every tender in Europe.

Why keyword search doesn’t work for procurement

The most obvious approach to matching tenders with companies is keyword search. You say you do "cloud migration," and we look for tenders containing those words.

In procurement, this falls apart fast. A German municipality publishes a tender titled "IT-Infrastruktur Modernisierung". A Czech hospital needs "modernizace informačního systému." A French agency asks for "transformation numérique." All three want essentially the same thing: someone to modernize their IT. None of them contain the words "cloud migration."

Across 24 EU languages and the formal vocabulary of public procurement, keyword matching is barely better than guessing. You’d need to anticipate every possible phrasing in every language. That’s not a search problem. It’s an understanding problem.

Embeddings: turning meaning into math

Instead of matching words, we match meaning. The technique is called embedding, and here’s the intuition behind it.

Imagine a massive library with 1,536 shelves. Each shelf represents a different aspect of meaning — not just topics like "IT" or "construction," but finer things like formality, urgency, technical depth, geographic context, industry domain. Every document in the world can be placed somewhere in this library based on where it falls on each of those 1,536 axes.

Documents about similar things end up near each other. "Cloud infrastructure consulting" lands close to "IT-Infrastruktur Modernisierung" because they mean similar things, even though they share zero words. A tender for road construction lands in a completely different part of the library.

This is what we do with your company profile. When you describe your business — what you do, your past projects, your capabilities — we convert that description into a position in this 1,536-dimensional space. Every tender gets the same treatment. Then matching becomes a question of distance: how close is your company to this tender?

How your profile matches against real tenders Your company IT consulting 88 IT-Infrastruktur Modernisierung Germany · Services 74 transformation numérique France · Services 65 informatikai szolgáltatások Hungary · Services 41 Office furniture (PL) 12 Road works (IT) Same profile, five languages. Meaning matches — keywords wouldn’t.

The key insight: this works across languages by design. The embedding model has seen text in all major EU languages during training. German, French, Czech, Hungarian — semantically similar text ends up in similar positions regardless of language. That’s not a feature we built; it’s how modern language models work. We just use it.

From distance to a score you can act on

So we have distances between your profile and every tender. Smaller distance means better match. But there’s a practical problem: raw similarity values aren’t intuitive.

When you compare text across different domains — a company profile versus a formal procurement document — the raw similarity tends to cluster in a narrow band. For 1,536-dimensional embeddings, practical values for cross-domain comparison typically range from about 0.3 to 0.55. That’s how the math works. Two documents about exactly the same topic but written in very different styles (one is a sales pitch, the other is a legal notice) won’t score 0.95. They score more like 0.5.

If we showed you that raw number, a 0.48 match and a 0.52 match would look almost identical. But in practice, that gap represents a meaningful difference in relevance.

Raw similarity 0 to 1 scale .35 .38 .42 .48 .52 ← everything clusters here → 0 1.0 ↓ calibrate to 0–100 BidScout match score 0 to 100 22 45 65 82 93 0 100 Same five tenders, spread across the full range. Now the differences are visible.

So we calibrate. We map the realistic similarity range onto a 0–100 scale where the differences become meaningful. A score of 65 (gold) means this tender is genuinely relevant to what you do. A score of 85 (green) means it’s a strong fit. A score of 20 means the system found some faint topical overlap but you can probably skip it.

The calibration is based on empirical analysis of real tender–profile pairs. We studied what similarity values correspond to genuinely relevant matches versus noise, and tuned the scale accordingly. It’s not arbitrary — it’s grounded in our data.

What the full pipeline looks like

Matching is one piece of a larger system. Here’s what happens from the moment you save your company profile to the moment matched tenders appear in your inbox:

From your profile to matched tenders refreshed 2×/day with new tenders from TED + national portals Your Profile set once Embed 1,536 dims Compare vs. all tenders Dashboard + email digest You describe your company once. New tenders are matched automatically. Ranked 0–100 · summarized by AI · delivered to your inbox every morning

Your profile gets embedded once (and re-embedded if you update it). On the tender side, new opportunities flow in from TED and national portals twice a day. Each tender gets embedded and scored against every user profile. By the time you check your dashboard or open your morning email, the matches are already there.

Cross-language matching in practice

This is the part that still surprises us, honestly.

An IT consulting company based in Budapest, with a profile written in English describing cloud infrastructure and system integration, will score highly against a German-language tender for "Beschaffung von IT-Dienstleistungen für Cloud-Migration" and equally against a Hungarian-language tender from EKR for "informatikai rendszerintegrációs szolgáltatások."

The embedding doesn’t care what language the text is in. It cares what it means. Two descriptions about IT system integration end up in the same neighborhood of the embedding space whether they’re written in English, German, Hungarian, or French.

For EU procurement, this is transformative. The biggest barrier to cross-border tendering has always been language. Not legal barriers — any EU company can legally bid in any member state. The barrier is that you simply don’t find opportunities published in languages you don’t speak. Semantic matching removes that barrier at the discovery stage.

The feedback loop

Every time you save a tender, mark one as "interesting," or flag one as "not relevant," that’s a signal. Right now, these signals help us understand matching quality at a product level — which types of matches work well and which don’t.

Over time, as we accumulate enough feedback data, these signals will feed back into the matching itself — learning from what real procurement professionals consider relevant, not just what the math says is similar. We’re not there yet, but the infrastructure is in place.

For now, the feedback buttons serve a simpler purpose: they help you organize. Save the ones worth revisiting. Dismiss the ones that aren’t a fit. Your saved tenders page becomes a curated shortlist.

What matching can’t do

Transparency cuts both ways, so here’s what the AI doesn’t know.

It doesn’t know your current capacity — whether your team is swamped or looking for work. It doesn’t know your specific certifications, or whether you meet the minimum turnover requirement that a particular tender demands. It doesn’t know your commercial relationship with a specific contracting authority.

The match score tells you: "based on what this tender is about and what your company does, there’s a strong semantic overlap." It’s a relevance signal, not a bid recommendation. You still need to read the tender, check the requirements, and decide whether to invest the time.

But it means you spend that time on the 10 tenders that actually fit, instead of scanning through 3,000 to find them.


Create your free account and see the matching in action. Describe your company, and within seconds you’ll have every tender in our database scored against your profile — across all 27 EU countries, in any language, with AI summaries to help you decide fast.

Ne maradjon le egyetlen pályázatról sem

A BidScout megtalálja az Ön vállalkozásához illő EU közbeszerzéseket. Ingyenesen kipróbálható, bankkártya nélkül.