If your tender alerts either flood you with irrelevant notices or deliver almost nothing, the problem is usually not the portal. It is that you are searching with words while the system is organised by numbers.
Every UK public tender notice is tagged with one or more CPV codes — the Common Procurement Vocabulary. Buyers select them when publishing, portals index and alert on them, and category-based invitations, including Scotland's Quick Quotes, are driven by them. Understanding them is the difference between a useful alert list and a useless one.
What a CPV code is
The CPV is a standard classification of everything the public sector buys, with roughly nine and a half thousand entries. Each is an eight-digit code with a check digit, arranged as a hierarchy where each digit narrows the meaning.
Take 45210000 — building construction work:
- 45 — the division: construction work
- 45.2 — the group: works for complete constructions
- 45.21 — the class: building construction work
- and further digits narrow it to specific building types
Trailing zeros mean "everything below this point". So 45000000 covers all construction work, while 45261000 is roofing and specific roof works.
Some of the divisions you will meet most often:
| Code | Covers |
|---|---|
| 30000000 | Office and computing machinery, equipment and supplies |
| 33000000 | Medical equipment, pharmaceuticals and personal care products |
| 34000000 | Transport equipment |
| 45000000 | Construction work |
| 48000000 | Software packages and information systems |
| 50000000 | Repair and maintenance services |
| 55000000 | Hotel, restaurant and retail trade services |
| 60000000 | Transport services |
| 71000000 | Architectural, construction, engineering and inspection services |
| 72000000 | IT services: consulting, software development, internet and support |
| 79000000 | Business services: law, marketing, consulting, recruitment, printing, security |
| 80000000 | Education and training services |
| 85000000 | Health and social work services |
| 90000000 | Sewage, refuse, cleaning and environmental services |
There is also a supplementary vocabulary, an alphanumeric set used to add detail about a characteristic — a material, a purpose, an intended user — on top of the main code.
Why this decides what you see
Keyword searches miss things. A buyer who advertises "provision of a managed print solution" has not used the word "printing" anywhere in the title. A keyword alert for printing does not fire. A CPV alert on the right code does.
Keyword searches also drown you. Search "support" and you will get IT support, family support services, structural support and business support, every day, forever.
Category invitations only work if your codes are right. On portals where buyers select suppliers from a registered list — Scotland's Quick Quotes are the clearest example, but many eProcurement platforms work this way — your registered codes determine whether you are invited at all. Suppliers who set these up casually at registration and never revisit them are invisible to a whole class of work and never find out why.
Getting your own codes right
Start from what you actually deliver, not from your job title. A company describing itself as a facilities management business might genuinely sit across cleaning (90910000), grounds maintenance (77310000), building maintenance (50700000) and security (79710000). Four codes, four alert streams, four different buyers.
Pick the right level of the hierarchy. Register at division level (72000000, all IT services) and you will see everything from data centre migration to helpdesk staffing. Register too narrowly and you will miss notices where the buyer tagged one level up. The workable approach for most suppliers is to register a small number of mid-level codes and filter by value and region, rather than a long list of very narrow ones.
Check what your competitors are tagged under. Award notices carry CPV codes. Look up two or three contracts you wish you had won and note the codes used — that is the buyer's own view of what your work is classified as, which is not always yours.
Revisit them when you change. New service lines, new accreditations and new geographies rarely trigger anyone to update their category registrations. Put it in the annual calendar.
Where the classification lets you down
CPV is a useful index, not a perfect one.
Buyers tag inconsistently. The same service can be classified three different ways by three different authorities, and some default to a broad division code out of habit. A code-only search will miss those.
Some codes are stretched to breaking point. 79000000 business services covers legal advice, recruitment, printing, marketing, security guarding and debt collection. A single code there is not a filter, it is a firehose.
Multi-service contracts carry several codes, and portals differ in how they index them. A contract tagged primarily as construction may include a large maintenance element you would have bid for.
Which is why the sensible approach is neither pure keyword nor pure code: use codes to define the field, then filter by value, region and closing date, and keep a couple of keyword alerts running for the terms your sector actually uses.
A practical exercise, worth an hour
- List every distinct service or product you sell.
- Find the CPV code for each. The classification is published and searchable, and every portal exposes it in its category picker.
- Look up three recent awards in your sector and note the codes the buyers used.
- Update your registrations on every portal you are on — including the ones where the codes drive invitations, not just alerts.
- Diary a review in twelve months.
Searching by what you do, without becoming a taxonomist
TendersHub tracks 10,500+ live UK tenders across the national, devolved and platform portals, and matches on what a tender actually is — its title, its description, its classification and its buyer — rather than requiring you to guess the exact code a particular officer chose on a particular Tuesday.
You describe your business once. The classification is our problem, not yours.
