Skip to content

Interview engineers the way they work now.

Candidates use their own AI tools (Claude Code, Codex, Cursor and four more) in a secure VS Code environment in the browser. For screens, live coding interviews and hackathons.

First month free · No credit card · EU hosted

  • 16,000+minutes of AI-assisted building recorded
  • 15+countries
  • 10+companies and universities signed up
kendor.io/interview/8f2a…Senior backend interviewLive with AdaAI: Claude · on42:10 left
routes.tstodos.test.ts
1router.post('/todos', async (req, res) => {
2 const { title } = req.body;
+ if (!title?.trim()) {
+ return res.status(400).json({ error: 'title required' });
+ }
6 const row = await db.one(
7 'insert into todos (title) values ($1) returning *',
8 [title],
9 );
10 res.status(201).json(row);
11});
Ada · candidateYou · reviewer
Before you accept it: what if title isn’t a string?
TERMINAL · claude
● The route inserts req.body.title without validating it.
● Update(src/routes.ts)
⎿ Added 3 lines
$ node --test
✓ pass 4 · fail 0
Reviewer log · live
00:41Ran node --test · 2 red
01:12Prompt why do the two POST tests fail?
02:20Ran node --test · 4 green
Prompts1
Tests4/4
Questions1
The position

Kendor is the first interview platform where candidates use their own AI tools in a secure, online VS Code, and you see every prompt, edit and test run.

Where interviews are going

Google is piloting a code comprehension round: read an unfamiliar codebase, find the bugs, talk through the design, with an AI assistant at hand. That is a Kendor interview, on your own repo.

A reviewed session

A real screen, then its review.

Four steps.
One honest signal.

No question bank, no webcam theatre. Pick a project, let them work, read what happened, advance them.

Pick

A Kendor project or your own repo. Decide if AI is on.

01

Sit

A booted sandbox. Editor, terminal, database and preview.

02

Review

Timeline, playback and an AI summary that checks their claims against the code.

03

Advance

Results write back to the stage in your ATS.

04

From a job descriptionA challenge from your own code, in minutes.Import your repo and paste the job description. Claude Code carves a task for the role out of your code, with tests and a brief, while you watch. You review it and publish.

  1. 1Import your repo
  2. 2Paste the job description
  3. 3Claude Code drafts it
kendor.io/organization/acme/screens/newkendor.io/organization/acme/challenges/812/edit
New screen
  1. Setup
  2. 2Challenges
  3. 3Scoring
  4. 4Review

Add the first challenge from a repository.

https://github.com/acme/orders-apiCheck
github.com/acme/orders-api @ 3f9c2a114 files · kendor.yaml founddetected Node 22
Installsnpm ciStartsnpm run devon port 5173DatabasesPostgreSQL 18Valkey 9

Draft it with AI

Optional. Paste the job description and the AI agent carves a task for the role out of this repository.

Job descriptionUsed for this draft only. Kendor doesn't keep it.
Senior Backend Engineer, Orders team

You’ll own the orders API: Node, Express and PostgreSQL.

Pagination that holds up at a million rows.

A checkout that never charges twice, even on retries.

You’ll work with Claude Code every day.

Create & open editor
Orders APIAI-draftedDraft savedPublish
acme/orders-apisrcroutes.tsdb.tstestsorders.test.tsBRIEF.mdkendor.yamlpackage.json
BRIEF.mdorders.test.ts
1import { test } from 'node:test';
2import { api } from './helpers';
3
4test('page 2 starts at order 21', async () => {
5 const rows = await api.get('/orders?page=2');
6 assert.equal(rows[0].id, 21);
7});
8
9test('a retried checkout charges once', async () => {
10 await api.post('/checkout', { key: 'k1' });
11 await api.post('/checkout', { key: 'k1' });
12 assert.equal(await api.charges(), 1);
13});
TERMINALagent
> Draft a challenge for this role from the job description
● Read(src/routes.ts)
● Write(BRIEF.md)
● Write(tests/orders.test.ts)
● Bash(npm test)
⎿ 2 failing on the starter, as the task intends
✻ Done. Review the brief and the tests, then publish.

The environmentYour repo, running in seconds.Cloned from GitHub into an isolated container with Node, PostgreSQL and AI agents ready. Tests are read-only. Nothing for the candidate to install.

kendor sandbox createReady in 1.2 s
acme/orders-apimain · 14 files
Your repo · GitHub
src
routes.ts
db.ts
schema.sql
tests
todos.test.ts
kendor.yaml
package.json
Read-only · tests/
routes.tsdb.ts
src › routes.ts
1import { Router } from 'express';
2import { db } from './db';
3
4export const router = Router();
5
6router.get('/orders', async (req, res) => {
7 const page = Number(req.query.page ?? 1);
8 const rows = await db.many(
9 'select * from orders limit 20 offset $1',
10 [(page - 1) * 20],
11 );
12 res.json(rows);
13});
mainTypeScriptLn 6, Col 14
TERMINAL · kendor
$ kendor sandbox create
✓ cloned acme/orders-api · 14 files
✓ container ready in 1.2 s
✓ tests/ marked read-only
✓ dev server on :5173
✓ Claude Code on the org key
Running
Node22.23
PostgreSQL18.6
Valkey9.1
Claude · Codex · Cursor

The reviewOne session. Every move.A real review page, scrubbed. Drag the playhead to see what the candidate did, what the AI agent did, and when the tests turned green.

00:38:48 / 00:45:00
Ada Okafor · Senior backend interview
0m5m10m15m20m25m30m35m40m45m
Candidate
Claude
Tests
Test runs4
AI prompts2
Pastes1
Lines by hand32
At this momentAll four green. Submitted with six minutes left.
TipThe paste at 30:00 is worth a question in the debrief.

AI policyYou decide if AI is on.Off, or any of seven AI agents, per assessment. Run Claude Code and Codex on your keys, or let candidates bring their own accounts. Every prompt lands in the reviewer log.

Senior backend interview
AI account

Just the editor, terminal and tests.

AI agents
  • Claude Code
  • Codex
  • Cursor
  • Copilot
  • Antigravity
  • OpenCode
  • Cline
TERMINAL
$ claude
command not found: AI agents are off for this screen.
$ node --test
✓ 2 passed · 2 failed
Reviewer log
00:41 Ran node --test · 2 red
09:12 routes.ts edited by hand
15:48 Paste · 3 lines
38:50 4 green · submitted
TipOrg keys with a budget per candidate, or their own account.

StacksTheir real stack. Not a quiz.Pick a Kendor project or import your own repo. Databases run inside the sandbox, and the tests stay read-only in the repo.

$ kendor new --stack 7 languages · 4 databases · Docker + k8s
  • And more
    Ask for your stack

HackathonsHost a hackathon. See how it was built.A sandbox with a full IDE and their own AI for every builder, a virtual venue where everyone meets, and judging on what actually runs. Our Build Day ran on it: 50 builders, 15 judges.

kendor.io/hackathons/acme-search-dayEnterpriseHow it works
01Publish
AHosted by AcmeApplications open

Rebuild search in a day

  • Sat, Nov 21 · build day9 h on your clock
  • OnlineIn your browser: VS Code, a terminal and your AI agent
Applied: 312 from 41 countries
ApplyEN ES FR DE IT PT RU
02Select
Applications87 of 100 places filled
  • AOAda OkaforPT · github.com/adaokAccepted
  • LBLinus BergSE · github.com/lbergAccepted
  • MTMei TanSG · github.com/meitanWaitlisted
  • OHOmar HaddadJO · github.com/ohaddadTo review
Not emailed yet: 24Email decisions
03Build and review
Building nowLive: 86
06:12:48left on their own clock
$ claude
✓ Signed in with their own account
> make search tolerate typos
Test runs
23
AI prompts
41
Tests
12 / 12

When the clock runs out, the work goes to anonymous judges, with a scorecard Kendor ran itself.

PricingSimple. Cancel any month.Prices in USD, billed monthly or yearly. No per-candidate fees.

All prices in US dollars (USD).

Starter

$63/ month

Billed annually · $756 / year

  • Live + async interviews
  • AI-enabled coding
  • Up to 3 team members
  • 25 candidates a month, 5 working at once
  • 600 live call minutes a month
Start hiring

ProPopular

$400/ month

Billed annually · $4,800 / year

  • Unlimited team members and call minutes
  • Live + async interviews
  • Your own repositories
  • AI-enabled coding
  • ATS integrations (Ashby, Greenhouse, Lever)
  • Interview review and summaries
Start your free month

Enterprise

Custom
  • Hackathons for hiring
  • Advanced hiring analytics
  • SSO and access controls
  • Audit and retention policies
  • Custom integrations
  • Procurement and security support
Talk to us

Not sure which plan fits your team?

Talk to us
  • Pro has unlimited seats and call minutes.
  • Each person counts once a month, however often you invite them. A 6th at the same time waits for a free slot.
  • Claude Code and Codex use your own Anthropic or OpenAI account; other agents use the candidate's. Fair use applies.
TipPro has unlimited seats and call minutes.
TipEach person counts once a month, however often you invite them. A 6th at the same time waits for a free slot.
TipClaude Code and Codex use your own Anthropic or OpenAI account; other agents use the candidate's. Fair use applies.
Your turn

Hire by the work.

Set up in minutes · 45-minute sessions · EU hosted

Erased by default

Sandboxes and recordings follow your retention window.

EU hosted

Candidate data is stored in the EU.

Your keys

Claude Code and Codex run on your own Anthropic or OpenAI account; other agents on the candidate's.

Security review

SSO with SAML and OIDC, audit policies, a public sub-processor list.