Find out who can actually write the code.
Candidates write and run real Python in the browser. Hidden tests grade it automatically. No video of the candidate is ever recorded.
Sign up, we approve your workspace, then 7 days with everything unlocked.
Python is the only language the sandbox runs. Choice questions carry the rest of your stack.
Illustration of the recruiter's dashboard: a list of graded candidates with scores, hidden-test results and integrity flags.
Illustration of the candidate's screen: the task on the left, a Python editor with a Run button on the right, a timer at the top.
Build it, send it, they take it, you read it.
Four steps, in the order you would actually use them.
- 01
Build the test
Start from a role template, or paste in a job description.
- 02
Invite candidates
One single-use link each, locked to the person you sent it to.
- 03
They take it
In the browser, under a timer. Nothing to install.
- 04
Read the result
Graded automatically. Export to CSV, Excel or PDF.
Prefer to see someone do it? We walk you through it live in 20 minutes.
Four things that decide whether this works for you.
Everything below is built and shipping today. Nothing here is a roadmap item.
Paste the job description. Get a test you can edit.
A recruiter never has to write a question. A person always approves the one that goes out.
- It assembles a matching assessment from the library. It does not conjure one.
- Coding tasks are re-verified against the real grader before you see them.
- No model decides pass or fail — a score or recommendation in model output is discarded on our server.
We record signals. We do not record the candidate.
More than a dozen signals, each stamped with a time and shown beside the answers.
- Signals are surfaced to a person as flags. Telling a candidate the outcome is always a human click.
- Coverage depends on the browser: Chromium reports second screens, Firefox and Safari do not, and on its own it never flags an attempt.
One report a non-technical recruiter can read.
Score, per-question results and integrity flags on one screen — exportable.
- An optional pass mark you set ranks attempts. Candidates never see it.
- Flags are signals for you to weigh — never a machine verdict.
- Telling the candidate the outcome is always a human click.
Three question types. One of them runs.
A recruiter starts from a template, not an empty page.
- Role templates plus a growing library. We load what your stack needs before your first invite.
What never happens
- No video is recorded or stored. There is no recorder in the product.
- The camera frame is analysed on the candidate’s own device.
- No identity matching. The model counts faces; it does not recognise anyone.
- The assessment makes zero cross-origin requests.
One flat price per company, never per candidate.
The same number every month, whether a candidate finishes, abandons, or never opens the link.
Basic
€20/ monthOne hiring lead, screening for a role or two at a time.
The full assessment and integrity toolkit.
1 recruiter · 5 tests · 20 candidates a monthRequest access- Most teams
Core
€80/ monthA team hiring developers continuously, with results other people read.
Adds your branding, exports, statistics, team tools, Slack / Zapier / Make and bulk import.
10 recruiters · no test limit · around 1,000 candidates a monthBook a 20-min demo Pro
€150/ monthSeveral roles at once, or more than ten people who need access.
Adds the AI test builder, the developer API, enforced two-factor login, and Traffit on request.
No cap on recruiters, tests or candidatesBook a 20-min demoEnterprise
CustomHigher volume, or a custom arrangement to work out together.
Priced by arrangementEmail us
In every plan, Basic included
No credits, nothing expires, no add-ons — the price you see is what you pay each month, plus VAT.
- Real Python, run in the browser, graded against hidden tests.
- More than a dozen integrity signals, surfaced to a person as flags.
- No candidate video, because nothing is ever recorded.
- Question pools, per-section timing and an unscored practice question.
- The question library and role templates — some questions unlock from Core.
- Persisted candidate data stored in Frankfurt.
- Delete or correct a candidate’s data in one click.
- An onboarding call where we set up your first assessment with you.
Prices exclude VAT. Billed monthly, cancel any time, and your first payment has a 14-day money-back guarantee.
Around 1,000 candidates a month on Core is where we would want to talk — a conversation, not a cut-off.
Payments are processed by Paddle.com, our reseller and Merchant of Record, which also issues your invoice.
The awkward questions, answered first.
Short answers, with the caveats attached.
Which languages can candidates write code in?
Python. The candidate writes and runs it in the browser, and the submitted answer is graded on our servers against hidden tests, inside execution limits of 12 seconds and 1MB with an import denylist.
For any other stack the coverage comes from single-choice and multiple-answer questions, and the builder drafts them in the language you are hiring for. A senior Go role gets Go questions. What it does not get is Go running in the sandbox.
Counting languages means maintaining a sandbox for each one. We maintain a single execution path and put the effort into the question instead. Whether that trade works for you depends on whether running the code is the part of the screen you actually need.
Can a candidate just answer with an LLM?
They can, and we do not claim to stop it. No browser-based assessment can, and any page that says otherwise is selling you something it cannot deliver.
What the product does is record the behaviour that tends to come with it and put it in front of you: paste events from the clipboard and from drag-and-drop, tab switches with the time spent away, fullscreen exits, the cursor leaving the window, blocked shortcuts, network drops, and second-screen presence where the browser reports it.
Coverage is browser-dependent, and that matters here. Second-screen presence is reported by Chromium browsers and is unavailable in Firefox and Safari, and on its own it never marks an attempt. A person reads the flags in context and decides.
The pattern most teams settle on: use the assessment to filter, then spend fifteen minutes talking to the candidate about the code they submitted.
Do you record video of candidates?
No. There is no recorder in the product — no capture, no upload path, nothing stored. Our candidate privacy notice says so in writing.
With the candidate’s explicit consent, a small face-detection model loads from our own origin and runs on their own device. It counts faces. No frame, no image and no biometric template leaves the browser; what reaches us is counts and durations, of the form "no face detected for 40 seconds".
It is also not identity verification. The model does not match anyone against anything, and there is no ID-document step.
Does the AI decide who passes?
No, and it is prevented from trying. If a model response comes back containing a score, an integrity judgement or a hiring recommendation, it is discarded on our servers before a recruiter ever sees it. That refusal lives in the code, and it is how we stay outside the automated-decision rules in GDPR Article 22.
Grading is deterministic: fixed answer keys for the choice questions, hidden tests for the Python task. An optional pass mark sorts graded attempts into pass and fail — you set the threshold, and candidates never see it.
Telling a candidate the outcome is always a human click. There is no automatic rejection anywhere in the product, by design.
Where is our data stored, and who else processes it?
All persisted candidate data is stored in Frankfurt — the application and the database — and error tracking sits in the EU, in Vienna.
Inside the product we publish a sub-processor register naming every vendor, what it processes and where it sits, including the ones outside the EU. Read that instead of taking a badge from us.
One caveat, because it is the one people miss: the optional AI test-creation feature sends the text you paste in — a job description — to a model provider outside the EU. That step runs before any candidate is invited, and it is optional. Build the test manually and it never runs.
What do candidates need in order to take the test?
A desktop or laptop browser, and nothing installed. No plugin, no desktop app, no local Python — the editor and the runtime are served from our own origin, and the assessment makes zero cross-origin requests.
A compatibility check runs before the assessment starts, so an unsupported browser is caught up front instead of halfway through a timed test. Phones and tablets are out: on a touch-only device fullscreen enforcement, cursor tracking and second-screen reporting are structurally inert.
There is an unscored practice question first, so the editor and the Run button are familiar before anything counts. It is not a rehearsal of the real conditions: practice has no timer and records no integrity signals.
How does billing work, and what does it integrate with?
Once your workspace is approved, you choose a plan inside the product and pay by card. Payments are processed by Paddle.com, our online reseller and Merchant of Record: Paddle charges the card, adds VAT where it applies (reverse-charged for EU businesses with a valid VAT number) and issues the invoice. Plans are monthly, you can cancel any time from the Billing page, and your first payment comes with a 14-day money-back guarantee — the refund policy linked below has the details.
Results leave the product as CSV, Excel or PDF from Core up, and through signed webhooks with a delivery ledger and automatic retries. Per-company API keys and the public REST API come with Pro.
Traffit is the only ATS connector we have, so it is the only one we name: we set it up on request for Pro customers, and then moving a candidate into the test stage sends the assessment and the result is written back. From Core up, Slack works by pasting a webhook URL, and Zapier and Make work too — the Zapier app is still private, so we share it with you directly rather than through the directory.
Can I try it on a role we are actually hiring for?
Yes, and that is what the demo is. Bring a live job description. We build the assessment for that role with you on the call, and you preview it exactly as the candidate will see it — answer key stripped, no attempt written.
Or try it on your own: start a free trial — sign up, we approve your workspace, then you get 7 days with everything unlocked before you pick a plan.
Bring a role you're hiring for.
Book a call and we build the first test with you — or start a free trial and build it yourself.
20 minutes, screen-share, and we build a test for that role with you.Sign up, we approve your workspace, then 7 days with everything unlocked.