Ask them about their own code.

ProjectVerify reads the project an applicant shows you, interviews them about how it works, and gives you a report where every conclusion is tied to their answer and the lines it was about.

src/lib/availability.ts

  1. 1import { now, LEAD_TIME_MS } from './clock';
  2. 2
  3. 3export function openSlots(day: Day, bookings: Booking[]) {
  4. 4a const taken = new Set(bookings.map((b) => b.slotId));
  5. 5│ return day.slots
  6. 6│ .filter((slot) => !taken.has(slot.id))
  7. 7 .filter((slot) => slot.start > now() + LEAD_TIME_MS);
  8. 8}

db/schema.sql

  1. 12create table bookings (
  2. 13 id uuid primary key,
  3. 14 slot_id uuid not null references slots (id),
  4. 15b unique (slot_id)
  5. 16);

Two people book the last slot within the same second. What happens?

Both requests read the bookings before either one writes, so openSlots shows the slot as free to botha. The insert is what stops it: there is a unique constraint on slot_idb, so the second booking fails. Right now that shows up as a generic error page, which is the first thing I would fix.

  • 25minutes per interview
  • 9questions written from their own code
  • 1change they make to it

How it works

3 steps
1

Send a link

Invite one applicant or paste in a list. Each person gets their own link, and nobody needs an account.

2

They talk through their own code

They share a repository. We read it and write questions about how it actually works. They answer in about 25 minutes, then make one small change to it in the browser.

3

You read the evidence

Every conclusion points to the answer it came from and the lines of code it was about, so you can check it yourself.

Find out before the interview, not during it.

Sign inApplicants: use the link in your invitation.
ProjectVerify© 2026