Subprocessors & models

Every third party that touches data

This list is maintained from the codebase’s configuration — if a service isn’t configured in the app, it isn’t on the list, and vice versa. Last updated June 10, 2026.

VendorPurposeData touchedRegion
VercelApplication hosting (web app + API routes)All application traffic in transit: educator accounts, student names/emails, transcripts, scoresUnited States (single-region deploy)
Supabase (PostgreSQL)Primary databaseEducator accounts, quizzes, rubrics, student names/emails, transcripts, AI + professor scores, evidence excerptsNot pinned in code — available on request
OpenAI (API)Speech-to-text (gpt-4o-mini-transcribe), AI examiner (gpt-4o), examiner voice (tts-1), rubric scoring (gpt-4o), educator question-import tools (gpt-4o)Student speech audio, transcripts, question + rubric text, instructor personas/notes, instructor-uploaded course documents. Never webcam/screen video.Not specified by vendor for standard API traffic
LiveKit CloudRealtime voice/video rooms for the assessment session; recording egress; hosts our examiner agentLive microphone audio (plus webcam/screen on video-enabled quizzes), room names, session metadataDistributed cloud (edge media routing) — not pinned in code
Amazon Web Services — S3Recording storage (private bucket, short-lived signed URLs)Audio recordings, webcam/screen video files, question audio promptsUnited States (us-east-1)
Amazon Web Services — SESTransactional email (currently only demo-request notifications to the founder)Demo-request contact details (prospect name, email, institution, message). No student data.United States (us-east-1)

Honest footnotes

  • Trigger.dev appears in our dependencies but is not active: no project is configured and no data flows to it today (scoring runs inside our own infrastructure). If we activate it for background scoring, its payloads are limited to internal record IDs — never transcripts or names — and this page will be updated first.
  • Canvas (or your LMS) is not a subprocessor — it’s your institution’s own system. QPAssess sends professor-reviewed grades back to it only when the professor triggers grade sync via LTI.
  • Model-level detail on what each OpenAI model sees and decides is on How AI is used.