Manager types allegation; the rules engine picks ACAS-aligned templates for the case type.
Participants join via one-time secure link or in-person QR.
Google STT streams multi-speaker text; flagging is enabled for all parties.
All three review, edit and digitally sign the record.
PDF auto-emailed to HR; session artifacts purged.
if case.type == "Gross Misconduct"
require witness
outcome_options = [Summary Dismissal, Final Warning]
escalate_notice = 5 working days
if case.type == "Grievance"
outcome_options = [Grievance Upheld, Not Upheld, No Further Action]
require empathy_prompt in AI template
on session.end:
if all_signatures_captured:
generate_pdf()
deliver_to(config.hr_email)
schedule_purge(audio, hours=config.retention) ┌──────────────┐ ┌──────────────┐
│ Manager UI │ ───▶ │ API Gateway │
└──────────────┘ └───────┬──────┘
│
┌────────────┴────────────┐
▼ ▼
┌────────────┐ ┌────────────┐
│ Rules / │ │ AI Prompt │
│ Case svc │ │ Router │
└─────┬──────┘ └─────┬──────┘
│ │
▼ ▼
┌────────────┐ ┌────────────┐
│ Postgres │ │ Claude/GPT │
│ + Redis │ │ Gemini │
└─────┬──────┘ └────────────┘
│
▼
┌────────────┐ auto-purge 24h
│ S3 (audio) │─────────────────▶ /dev/null
└────────────┘Selects between Claude, GPT and Gemini per prompt class.
Google Cloud STT with speaker diarisation.
Postgres row-level security, Redis session store.
UK GDPR, ISO 27001 aligned, ACAS templates.
REST + WebSocket, JWT auth, 60-min timeout.
PDF generation + HR email routing.
ETSI-aligned digital sign-off.
Employee-number login, MFA optional.
Sign in with a role to explore the full workflow.