Skip to main content

Factual dataset

Platform facts & benchmarks

Numbers about the InTransparency platform: performance, coverage, regulatory references. Every value names its source, and the ones we re-measure carry the date they were last checked.

Platform coverage

13.492

live job listings

Source: Live count from the production database, at request time (as of 2026-10-24)

30

European countries with listings

Source: Live count from the production database, at request time (as of 2026-10-24)

27/27

EU member states with at least one listing

Source: Live count from the production database, at request time (as of 2026-10-24)

91.3%

of listings are in Europe

Source: Live count from the production database, at request time (as of 2026-10-24)

901

internship and placement listings

Source: Live count from the production database, at request time (as of 2026-10-24)

20.6%

of listings publish a pay figure

Source: Live count from the production database, at request time: 2,779 of 13,492 listings — the employer published a pay figure on the ad we imported (Job.showSalary). Not a compliance assessment: an ad without a figure is not necessarily an ad that was required to carry one. (as of 2026-10-24)

52.8%

of listings in Italy publish a pay figure

Source: Live count from the production database, at request time: 1,674 of 3,173 listings located in Italy — the employer published a pay figure on the ad we imported (Job.showSalary). Not a compliance assessment: an ad without a figure is not necessarily an ad that was required to carry one. (as of 2026-10-24)

7%

of listings in Germany publish a pay figure

Source: Live count from the production database, at request time: 130 of 1,855 listings located in Germany — the employer published a pay figure on the ad we imported (Job.showSalary). Not a compliance assessment: an ad without a figure is not necessarily an ad that was required to carry one. (as of 2026-10-24)

21.1%

of listings in Spain publish a pay figure

Source: Live count from the production database, at request time: 149 of 706 listings located in Spain — the employer published a pay figure on the ad we imported (Job.showSalary). Not a compliance assessment: an ad without a figure is not necessarily an ad that was required to carry one. (as of 2026-10-24)

93

Curated skill entries (not verified ESCO mappings)

Source: lib/esco-seed-data.ts holds 93 ESCO_EXTENDED entries, but only ONE carries an ESCO identifier (Python) — the other 92 are label-only expansion terms. The 93 invented URIs this file once shipped were removed in 98a18238 after all 94 were checked against ec.europa.eu/esco and 93 failed to resolve. This counts CURATED ENTRIES, not verified ESCO mappings. Resolution happens live against ec.europa.eu/esco. (as of 2026-09-09)

18

CCNL codes curated for Italian conventions

Source: lib/ccnl.ts

11

SPID identity providers mapped, ready for the planned SPID/CIE login

Source: lib/spid.ts

4

Locales with identical key sets (English, Italian, Spanish, French)

Source: messages/{en,it,es,fr}.json — identical key sets, enforced on every run by npm run check:i18n (as of 2026-08-26)

Performance (P95 latency)

131ms

MatchExplanation record read

Source: __tests__/bench/db-benchmarks.test.ts, re-run 2026-09-09. p95 measured from a developer machine over the public internet to Neon eu-central-1, so it INCLUDES client network latency — a request served from the deployment region is lower. The previous figures were 3-9x smaller with no measurement context stated. (as of 2026-09-09)

150ms

Company directory query (50 rows)

Source: __tests__/bench/db-benchmarks.test.ts, re-run 2026-09-09. p95 measured from a developer machine over the public internet to Neon eu-central-1, so it INCLUDES client network latency — a request served from the deployment region is lower. The previous figures were 3-9x smaller with no measurement context stated. (as of 2026-09-09)

137ms

User.findUnique (auth hot path)

Source: __tests__/bench/db-benchmarks.test.ts, re-run 2026-09-09. p95 measured from a developer machine over the public internet to Neon eu-central-1, so it INCLUDES client network latency — a request served from the deployment region is lower. The previous figures were 3-9x smaller with no measurement context stated. (as of 2026-09-09)

134ms

Active jobs scan (200 rows)

Source: __tests__/bench/db-benchmarks.test.ts, re-run 2026-09-09. p95 measured from a developer machine over the public internet to Neon eu-central-1, so it INCLUDES client network latency — a request served from the deployment region is lower. The previous figures were 3-9x smaller with no measurement context stated. (as of 2026-09-09)

86ms

Full skill graph aggregation per user

Source: __tests__/bench/db-benchmarks.test.ts, re-run 2026-09-09. p95 measured from a developer machine over the public internet to Neon eu-central-1, so it INCLUDES client network latency — a request served from the deployment region is lower. The previous figures were 3-9x smaller with no measurement context stated. (as of 2026-09-09)

188ms

ESCO URI resolution per term

Source: __tests__/bench/db-benchmarks.test.ts, re-run 2026-09-09. p95 measured from a developer machine over the public internet to Neon eu-central-1, so it INCLUDES client network latency — a request served from the deployment region is lower. The previous figures were 3-9x smaller with no measurement context stated. (as of 2026-09-09)

Quality

2.927

Automated tests in production CI

Source: npm test — 130 suites under __tests__/unit. A point-in-time count: the commit that published it added a suite and moved it, which is why it carries an asOf rather than pretending to be current (as of 2026-09-09)

100%

Test suite pass rate

Source: GitHub Actions, each push

~150s

Full test suite runtime

Source: npm test, measured on a developer machine — CI timing differs (as of 2026-09-09)

3

Static pages generated at build

Source: next build output. Was '225+', which was wrong by two orders of magnitude: the root layout used cookies() and getServerSession(), which opts every route out of static generation. 977 routes render per request; 3 are built ahead. (as of 2026-09-09)

0%

Error rate on production (last 6h snapshot)

Source: Vercel Observability, 6h window (as of 2026-09-09)

Regulatory

Ed25519 (own JSON canonicalisation)

Verifiable Credential signing algorithm

Source: lib/verifiable-credentials.ts — Ed25519 over a canonical JSON serialisation of our own, NOT the W3C Ed25519Signature2020 suite (which requires URDNA2015 RDF canonicalisation and a multibase proofValue). Issued credential documents still carry proof.type "Ed25519Signature2020"; changing that string is an interop break for anyone already verifying them, not a copy edit.

Annex III §4 (high-risk, self-assessed)

AI Act classification of our matching systems

Source: Our own classification — no third-party conformity assessment has been carried out (as of 2026-08-24)

2027-12-02

Date Annex III high-risk obligations apply from

Source: Regulation 2024/1689 Art. 113, as amended by Regulation (EU) 2026/1744 (deferred from 2026-08-02)

Art. 15/16/17/20

GDPR rights exposed as self-service

Source: /dashboard/student/privacy

Published under Creative Commons BY 4.0. Attribution: InTransparency, https://www.in-transparency.com/en/facts