Status — read first
AI-assisted best-effort draft · not legal advice · not lawyer-reviewed.
This document was drafted with AI assistance as a best-effort starting point. No licensed attorney has reviewed, approved, or certified it, and it is not safe to rely on as a binding or compliant document. A qualified attorney in each operating jurisdiction must review and finish it before it is published or enforced. Nothing here claims an audit, certification, corporate registration, or executed contract that has actually happened.
This data-source description must be reconciled against the running system before publish. A published AEDT data-source description that is factually wrong is itself an LL144 notice defect — see the bias-audit status page. Two claims below (where audio goes, and where candidate data lives) are constrained to what engineering has actually confirmed.
1. What the tool consumes
The Vettika screening tool (the “AEDT”), provided by Vettika, a service operated by Nexprove across vettika.com and airecruiter.nexprove.com, takes a fixed set of inputs and produces a recruiter-facing report. Inputs:
- Recruiter-authored job description — the role title, responsibilities, and any required qualifications the recruiter pastes into the campaign wizard.
- Recruiter-authored scoring rubric — weighted criteria and what each one should measure.
- Recruiter-authored screening questions — the spoken prompts the interviewer asks, plus the private follow-up hints the AI uses to probe.
- Candidate audio — the candidate's spoken answers during the live call. Audio is transcribed in-flight by Deepgram (via LiveKit Inference) and the resulting text is the source of truth for scoring.
- Candidate-volunteered metadata — name, email, and contact details. Self-reported demographic data is not currently collected; an opt-in collection step, used only for the bias audit, is planned and this page will be updated when it ships.
The tool does not consume résumés parsed for scoring, social media profiles, public web search results, prior employment data, or any third-party background-check data.
2. Qualifications and characteristics evaluated
The AEDT scores candidates against the rubric the recruiter wrote — nothing else. Common rubric categories:
- Role-relevant skills (technical depth, domain knowledge)
- Communication clarity and structure
- Ownership and follow-through
- Past achievements measured against the recruiter's success criteria
Each criterion gets a score and a short justification; the overall recommendation is a weighted aggregate. The model does not evaluate accent, voice timbre, perceived gender, perceived race/ethnicity, perceived age, or any protected characteristic — those are excluded from the prompt and the scoring rubric. Per EU AI Act Art. 5(1)(f), no emotion inference runs; that exclusion is confirmed in the agent configuration, not merely asserted here.
3. Retention windows
Retention follows the single canonical schedule shared with the Data Handling page — the two say the same thing. Transcripts and AI-scored reports are kept 12 months from completion; the recruiter account and its config live for the account lifetime plus 30 days.
| Data | Default retention | Trigger | Notes |
|---|---|---|---|
| Candidate identity row | 12 months from last interaction | Last interview, application, or email | Retain-by-default via soft-delete. The nightly retention job scrubs PII at 12 months and hard-deletes the tombstone within 30 days. Recruiter-initiated erasure and candidate self-service both scrub PII immediately on request. |
| Interview audio (if any is stored) | 12 months from completion | completedAt | Storage is unconfirmed — reconcile with the audio note before relying on this row. |
| Interview transcript | 12 months from completion | completedAt | Stored on Interview.transcriptJson. |
| Interview AI scoring and rationale | 12 months from completion | completedAt | Stored on Interview.scoreJson. EU AI Act Art. 12/19 log-keeping ≥6 months. |
| EmailDispatch audit row | 24 months | createdAt | Deliverability / spam dispute. |
| AuditLog (recruiter actions) | 24 months | createdAt | Security incident review. |
| SecurityLog | 24 months | createdAt | Breach forensics. |
| Candidate.consentJson | 6 years — counsel to confirm | Kept as long as processing relied on it | Counsel checks 6 years against data-minimization; do not over-retain. |
| Candidate.unsubscribeToken | Reconsider "indefinite" — counsel to decide | Suppression-list obligation (CAN-SPAM §5) | Indefinite retention of a token tied to a person is hard to defend under GDPR; a hashed suppression entry may suffice. |
| Recruiter User / Session / Account | Account lifetime + 30 days | Account deletion | Better Auth standard. |
| Billing rows (Stripe / Polar) | 7 years | Tax floor | Do not delete. |
How deletion works today — and the two items counsel should still confirm
- Deletion mechanics (built). The model is retain-by-default via soft-delete plus right-to-erasure on request. Tombstone columns (
dataDeletedAt,deletedAt) exist, and a nightly retention job (/api/cron/retention-prune) enforces the schedule: candidate personal data untouched for 12 months is scrubbed automatically, and each scrubbed tombstone is hard-deleted within 30 days. On an explicit erasure request — candidate self-service via the invite link, or the recruiter acting for their own candidate — the personal fields (name, email, phone, transcript, AI report, recruiter notes) are scrubbed immediately across the candidate and interview rows, while non-personal counts are kept so quota and funnel totals stay accurate. The only deletion feature still not built is the optional “signed deletion receipt” some earlier drafts described; counsel confirms this schedule meets each statutory floor before it is relied on. - Audio. Whether any audio file persists depends on the LiveKit egress configuration, which engineering has not confirmed. We do not claim “we never store audio” until that is verified. If egress records, the audio retention row applies and the claim must change.
Candidates can request earlier deletion via the candidate-data form — see Data Handling.
4. Where it lives
Transcripts, structured reports, scores, and recruiter notes live in a Postgres database hosted on Neon in us-east-1 (production) with at-rest encryption. us-east-2 is the separate QA database and holds no production candidate data. Vercel runs the application and agent runtime in the US. Whether any audio file persists depends on the LiveKit egress configuration, which engineering has not confirmed — we do not claim “audio is not retained” until that is verified (see the audio note on the Data Handling page). Subprocessors and the full data-flow live on the Data Handling page.