One SHA-256 hash per pass. Stored on a public, append-only ledger anyone can read. Recruiters paste the hash, get back the rubric, not just a green check. No-PII by default: the cert never contains your resume. Revocable only if the underlying scenario is found broken, and we say so in writing when that happens.
ledger live since 2024-09, append-only, zero revocations
Passed all 12 scenarios in the helpdesk track. 88 of 100 weighted, methodology and tool fluency above the band-3 line, communication one band shy.
| ts (utc) | cert | track | handle | hash | verdict |
|---|---|---|---|---|---|
| 23:08:12 | OPS-NET-2210 | networking | @devon.p | 8f2a9c.....b1c2 | valid |
| 23:07:51 | OPS-HD-1184 | helpdesk | @aisha.o | 1c2d3e.....9203 | valid |
| 23:06:32 | OPS-LIN-0942 | linux | @marco.r | 9a0b1c.....7081 | valid |
| 23:05:18 | OPS-CSEC-558 | cybersec | @priya.s | 4d5e6f.....f5a6 | valid |
| 23:04:02 | OPS-HD-1183 | helpdesk | @jordan.l | b7c8d9.....7e8f | valid |
| 23:02:44 | OPS-CLD-0631 | cloud | @elena.t | 5e6f70.....a6b7 | valid |
| 23:01:28 | OPS-AI-0118 | ai-found | @kai.m | c8d9e0.....8f9a | valid |
| 23:00:11 | OPS-NET-2209 | networking | @ravi.s | 6f7081.....b7c8 | valid |
ledger is the source of truth; the profile page reads from it; pass rate is per-track and printed on the rubric page
The recruiter sees the cert id, the track, the weighted score, the per-dimension scores, the minted timestamp, the ledger block, and a link to the scenario list. Nothing about the candidate the candidate did not opt in to.
{
"cert": "OPS-HD-1184",
"track": "helpdesk, entry",
"rubric": "v2.0",
"score": 88,
"pass": true,
"dims": {
"accuracy": 3,
"methodology": 3,
"tool_fluency": 3,
"communication": 2,
"fit": 3
},
"minted": "2026-04-12T23:07:11Z",
"block": 4118,
"block_hash": "f02a...4cd1",
"holder": { "opted_in": true,
"handle": "aisha.o" },
"scenarios": [12, "passed"]
}The profile page is what a candidate shows; the hash is what a recruiter can verify. The two are linked only because the candidate opted in. Opt out and the hash still verifies, just without the handle next to it.
I paste the hash into the verifier, get the per-dim back, and I am done, under three seconds. Five minutes saved per phone screen.
senior recruiter, staffing firm, 2025candidates always free, ledger is public, verifier is open