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.
| Vendor | Purpose | Data touched | Region |
|---|---|---|---|
| Vercel | Application hosting (web app + API routes) | All application traffic in transit: educator accounts, student names/emails, transcripts, scores | United States (single-region deploy) |
| Supabase (PostgreSQL) | Primary database | Educator accounts, quizzes, rubrics, student names/emails, transcripts, AI + professor scores, evidence excerpts | Not 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 Cloud | Realtime voice/video rooms for the assessment session; recording egress; hosts our examiner agent | Live microphone audio (plus webcam/screen on video-enabled quizzes), room names, session metadata | Distributed cloud (edge media routing) — not pinned in code |
| Amazon Web Services — S3 | Recording storage (private bucket, short-lived signed URLs) | Audio recordings, webcam/screen video files, question audio prompts | United States (us-east-1) |
| Amazon Web Services — SES | Transactional 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.