Now in private beta · for hiring teams

Hire engineersbuildersdesignersproject managersagents
you can actually trust.

Prooftrace is an AI-aware interview platform. Run real, ambitious tasks — and see exactly how candidates used the model. Read every line, or pasted and prayed.

Early access for hiring teams.
New norm
candidates now reach for AI on take-homes
Too often
mid-level hires fail the on-the-job equivalent
Live
engagement signals captured as they work
Real
infra · your stack · per-task budgets
How it works

A live interview, with a black box.

Candidates code in our browser sandbox. You get an annotated transcript and a verdict — not a vibe.

  1. 01
    Send a link.
    Pick a problem from our bank or upload your own. Set rules: internet on/off, models allowed, banned words.
  2. 02
    Candidate codes.
    Browser-native IDE. We record keystrokes, focus changes, paste sources, prompts, model output — locally, encrypted, consented.
  3. 03
    Assess how they use AI.
    See when they pushed back on a hallucination, refined a prompt, or pasted unread. Score the judgment — not just the output.
  4. 04
    You see the receipts.
    Replay the whole session. Hover any line for its origin. Approve, reject or invite to onsite — with evidence.
The moat · engagement signals

See how they think with AI.

Anyone can let candidates use AI. Prooftrace shows you whether they used it well — read every line, refined the prompt, pushed back on bad suggestions — or just pressed Accept and shipped.

Prompt
Implement debounce(fn, ms) — return a function that delays calls until ms have passed since the last call.
Candidate A
Engaged with the model
94
engaged
function debounce(fn, ms) {
  let t
  return (...args) => {
    clearTimeout(t)
    t = setTimeout(() => fn(...args), ms)
  }
}
Signals
Time on AI output
3m 42s
Edits to suggestions
23
Prompts sent
4 · refined
Pushed back on AI
Blind pastes
0
Tests pass
yes
Keystroke cadenceirregular · read + edit
Candidate B
Pasted and shipped
12
engaged
/**
 * Creates a debounced version of the provided function that delays
 * its execution until `ms` milliseconds have elapsed since the
 * last time the debounced function was invoked.
 *
 * @param {Function} fn - The function to debounce
 * @param {number} ms  - The debounce delay in milliseconds
 * @returns {Function} The debounced function
 */
function debounce(fn, ms) {
  let timeoutId;
  return function(...args) {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => {
      fn.apply(this, args);
    }, ms);
  };
}
Signals
Time on AI output
6s
Edits to suggestions
0
Prompts sent
1
Pushed back on AI
0
Blind pastes
1 · 412ch
Tests pass
yes
Keystroke cadenceflat · paste-and-go

─── Both submitted working code. The signals tell you which one you'd want shipping at 2am.

Real tasks · real environments

Bigger tasks.
Real environments.

Because AI does the boilerplate, you can finally ask the questions you actually care about. Spin up real services. Bring your codebase. Test on real data.

  • 60-minute architecture, not 20-minute leetcode
    Design a rate limiter, build a sync engine, refactor a hot path. Whiteboard-grade problems with a real environment.
  • Pre-wired services — Postgres, Redis, S3, queues
    Pick the stack. We provision it. Pre-seed fixtures and traffic. Candidates connect from the editor — no install dance.
  • Bring your codebase, monitoring, fixtures
    Drop in a private repo, your Prometheus dashboard, your Sentry. Interview in the stack the candidate would actually ship to.
task.config.yaml
ready
title:"Rate limiter, 90 min"
duration:90m
repo:github.com/acme/billing
branch:main
services:
- postgres:15# pre-seeded
- redis:7# flushed
- stripe-sandbox# mock keys
fixtures:
- /seed/users.sql# 4,200 rows
- /seed/events.json# 120k events
monitoring:
- prometheus# exposed :9090
- sentry# project-acme
ai_allowed:
- claude-opus-4.7# on
- gpt-5.5# on
- deepseek-v3.2# on
- budget# $5.00
Controls

Set the rules.
We enforce them.

Not every role bans AI — and for some, prompting is the skill. Configure what's allowed, per question. Budget the model spend so a candidate can't burn $200 looking for the answer.

Cut internet access

Sandbox the browser. No DNS, no models, no Stack Overflow. Just the editor and stdlib docs you whitelist.

internet: blocked
Prohibit prompts & words

Block specific phrases, regex patterns, or whole categories — leetcode answers, API keys, framework names.

"give me the answer"leetcode.com/o1-.*/
Whitelist models & budget

Choose which assistants are allowed — and cap the spend. Cut a candidate off at $5 or 100k tokens, whichever comes first.

Claude Opus 4.7allowed
GPT-5.5allowed
DeepSeek v3.2allowed
Kimi K2blocked
GLM 4.6blocked
budget$1.84 / $5.00
Limited beta

Stop using interview tasks
unattached from reality.

Join the waitlist. We're onboarding teams in the order they sign up, starting May 2026.

No spam. We'll email when your slot opens.
Frequently asked

Questions we get a lot.