Skip to content

Milestone: M7 — Reclaim Protocol | SOW Reference: FR4 | Requirement Clarity: ✅ Clear (recommendation already made — Flow A) | Dev Status: ❌ Not started Moved from docs/requirements/tasks/POC/23-reclaim-candidate-flow-design.md — unmodified below.

M7-05 Reclaim Protocol — Candidate Flow Design

Audience: NeuralRays engineering (internal) Purpose: Answer the "do candidates need a login?" question and pick the flow we build first Status: Draft — pending client answers to M7-01 scope confirmation Section 5


1. Short answer to the login question

Candidates do NOT need to log into our platform.

The only login involved in Reclaim Protocol is at the target site — e.g. HMRC's Government Gateway. That login happens in the candidate's own browser, directly with HMRC. Our platform never sees the candidate's HMRC password, and Reclaim's witness network doesn't see it either.

What we need to decide is simply: where does the candidate land in order to trigger the verification? Three options below.


2. Three Candidate-Entry Flows

Flow A — Email-token, no candidate account on our platform

Mirrors the claim-page pattern already shipped. Agency triggers a request → candidate gets an email → clicks a signed tokenized link → lands on a public verification page → Reclaim widget runs → proof posts back.

Agency admin ──"Request HMRC verification for Jane"──► our backend
                                                           │
our backend ──generates signed token──► SES email ────► Jane's inbox
                                                           │
Jane clicks link ─► /verify/{token} page (public, no login)
                    │
                    Reclaim SDK loads → Jane logs into HMRC
                    → proof posted back to /external-claims/submit
                    ↓
Agency dashboard shows "Verified directly from HMRC: ..."

Pros - Zero friction for the candidate - Reuses the claim_token machinery already in production - No new Auth0 role, no registration UI, no password reset flow - Matches how staffing agencies operate in practice (one verification per hire)

Cons - Token link has to remain valid long enough for the candidate to complete HMRC login (~24h) - No "my past verifications" history for the candidate — each agency triggers a fresh proof

Flow B — Full candidate account on our platform

Candidate registers, logs in, sees a dashboard of providers (HMRC, bank, LinkedIn). They verify once and reuse proofs across multiple agencies.

Pros - Reusable proofs — candidate does HMRC once, shares with many agencies - Proper audit trail per candidate - Foundation for a candidate-facing "verifiable résumé"

Cons - Full candidate auth flow: registration, password recovery, MFA - UI to manage proofs, pick which to share, revoke stale ones - Arguably duplicates the role of a digital wallet (Velocity holder wallets already do exactly this)

Flow C — Redirect to Reclaim's hosted UI

We link out to a Reclaim-hosted portal; proofs arrive back via webhook.

Pros - Least code we write

Cons - Candidate leaves our brand entirely - Less control over UX, consent copy, error messaging - Weaker position when the client wants visual customization for their members


3. Recommendation — Flow A for the REC member trial

For the upcoming real-trial deployment with one REC member, Flow A is the right starting point.

Why 1. The token + email-link infrastructure is already live for the Velocity claim flow. Reclaim reuses the same pattern end to end — a fresh controller on the same signed-token primitive. New code is additive, not structural. 2. A new candidate auth surface (Flow B) would be the single biggest item in the rescope. Skipping it keeps the trial focused on the thing the client actually asked for: pulling data from HMRC and similar sources. 3. Every staffing hire cycle is a fresh context anyway. A candidate applying to Acme this month and to Beta Staffing next month typically doesn't mind re-verifying — and it's a stronger privacy story (no long-lived session on our servers). 4. If reusability becomes a client requirement after the trial, we can upgrade Flow A to Flow B by adding magic-link history access (email a login link to {email}, list previous proofs) — still no password, still a small UX addition. Drop 2 work.

What we're giving up by choosing A: the candidate-owned wallet experience. That's legitimately valuable, but it's also the Velocity wallet's job. We don't need to reinvent it inside our platform for a trial.


4. Flow A — Concrete UX

  1. Agency admin dashboard On the existing candidate/employee row, a new action button: Request external verification. Opens a picker for HMRC / Open Banking / LinkedIn / etc. Admin chooses provider + which fields they need confirmed → submits.

  2. Email to candidate (templated, SES-delivered)

    "Acme Staffing would like to verify your employment history directly with HMRC. This takes about 90 seconds and does not share your password with anyone. [ Verify now → ]" Link carries a signed, single-use token (same primitive as claim_token).

  3. Public verification page /verify/{token}

  4. Consent copy: what's being shared, with whom, how long it's retained
  5. "Continue to HMRC" button launches the Reclaim SDK widget
  6. Candidate authenticates with HMRC on HMRC's own pages, inside the widget
  7. Picks which fields to share (Reclaim's own UI)
  8. SDK produces the proof, posts to POST /external-claims/submit

  9. Confirmation page

    "Verified. The proof has been sent to Acme Staffing. You can close this window."

  10. Agency dashboard New "External Verifications" tile under the candidate's profile showing:

  11. Provider (HMRC)
  12. Extracted fields (employer name, dates, income bracket — whatever the provider returns)
  13. Timestamp
  14. Raw proof available for download / re-verification

5. Privacy consequence worth naming explicitly

Flow A means the candidate doesn't need to remember us for their next hiring cycle. Each agency triggers a fresh verification, and each proof stands alone. That's a feature, not a bug — it keeps us off the critical path of the candidate's identity management and aligns with data-minimization principles under UK GDPR.

If the client wants a candidate-owned history layer later, we add it; we don't pre-build it.


6. Open items this design does not yet answer

These are resolved by the seven questions in Task 22:

  • Which data sources beyond HMRC are in scope → changes the number of provider recipes we need to configure
  • Whether Reclaim proofs should also be minted as Velocity VCs → determines if the proof lands in a new table only, or also flows through CihApiService.createCredential
  • Candidate- vs agency-initiated → Flow A covers agency-initiated; candidate-initiated would add a small self-service entry point

Once Task 22 gets client answers, this document can graduate from "draft" to "approved for implementation".