Rules card

How the signals work

Every sentence an interviewer can see, the rule that produces it, the number behind the rule, what it cannot tell you, and how it goes wrong. Thresholds on this page are read from the running code.

Rules version
rules@2026.10.2
Consent text
consent@2026.10.3
Thresholds
all hand-set; none tuned on candidate data yet
Decisions
none automated; a named reviewer records every decision

Three things that apply to every rule

  • Calibration first. Gaze, blink, voice and mouth thresholds are set against the candidate's own one-minute calibration (reading aloud, then thinking), not against a population. Absolute floors stop a quiet or still candidate from being flagged on a noisy baseline.
  • The gaze gate. Gaze and audio-visual observations are stored but only shown to the interviewer live if a non-gaze signal fired within the last 60 s. On their own they are too easy to misread.
  • Observations, not verdicts. Each one is a sentence with a timestamp and the raw numbers. The review page shows the recording at that moment. Nothing is scored, ranked or auto-rejected.

Browser

“Candidate clicked away from the interview window.”

FOCUS_LOST
Fires when
The interview tab lost focus for more than 3 s while the candidate was answering.
Cannot see
What the candidate switched to, or anything on a second monitor.
Known false positives
A notification popup or an accidental click also triggers it.
Suggested checks
Share screen

“Candidate pasted text into the interview window.”

PASTE
Fires when
Text was pasted into the interview window; only the length is recorded, never the content.
Cannot see
Where the text came from.
Known false positives
Pasting a link the interviewer sent also triggers it.
Suggested checks
Ask to rephrase

“Multiple monitors detected.”

MULTI_MONITOR
Fires when
The browser reports more than one display connected.
Cannot see
What is on the other display.
Known false positives
Many engineers simply have two monitors.
Suggested checks
Share screen

Boards

“A large block of code appeared in the editor at once.”

CODE_BURST
Fires when
80 or more characters appeared in the code editor in one edit without a paste event.
Cannot see
Whether the code was typed from memory or from notes.
Known false positives
Editor auto-complete and snippet expansion also trigger it.
Suggested checks
Ask to rephrase · Reference-back

Devices

“Camera was briefly disabled.”

CAMERA_OFF
Fires when
The camera track was muted or removed for more than 2 s.
Cannot see
Why.
Known false positives
A genuine bandwidth drop looks the same; see NET_INCONSISTENT for the healthy-connection version.
Suggested checks
Head turn

“Virtual camera software detected.”

VIRTUAL_CAMERA
Fires when
The selected camera's name contains one of: obs virtual, obs-camera, manycam, snap camera, xsplit, camtwist, virtual camera.
Cannot see
A virtual camera with an innocuous name, or a hardware capture card.
Known false positives
Streamers and people using background-blur apps legitimately use these.
Suggested checks
Head turn · Hand occlusion

“Virtual audio device detected.”

VIRTUAL_AUDIO
Fires when
The selected microphone's name contains one of: vb-audio, vb-cable, cable output, cable input, blackhole, voicemeeter, virtual audio, loopback audio.
Cannot see
A relay with a plain device name.
Known false positives
Podcast and music setups route audio through these.
Suggested checks
Interrupt

Connection

“Camera went off while the candidate's connection was healthy.”

NET_INCONSISTENT
Fires when
The camera went off while the last connection sample (under 20 s old) showed loss ≤ 2% and RTT ≤ 250 ms.
Cannot see
Problems between the browser and the camera driver.
Known false positives
A laptop lid half-closing, or a USB camera disconnecting.
Suggested checks
Head turn · Share screen

Timing

“Unusual pause before answering.”

LATENCY_CONSTANT
Fires when
3 consecutive answers each began 3 s–8 s after the question, within 500 ms of each other.
Cannot see
Whether the pause was thinking or listening to an earpiece.
Known false positives
A deliberate, disciplined candidate who always pauses before speaking.
Suggested checks
Interrupt · Ask to rephrase

Gaze (on device)

Computed in the candidate's browser from self-hosted face-landmark models. Only summary numbers per 500 ms window leave the device; windows with the face missing (< 70% visible) or too dark are ignored.

“Candidate's gaze pattern suggests reading.”

GAZE_READING
Fires when
Horizontal eye sweeps with a periodic return, sustained for 20 s, above the candidate's own calibration baseline and never under 3 saccades/s.
Cannot see
What is being read. A whiteboard, a second screen and a teleprompter look the same.
Known false positives
Reading the shared code editor, which is expected during a coding question.
Suggested checks
Close eyes · Ask to rephrase · Reference-back

“Candidate repeatedly looks below the camera before answering.”

GAZE_DOWN
Fires when
3 answers that each began within 3 s of a fixation below the camera (gaze y < -0.35).
Cannot see
What is below the camera.
Known false positives
A notepad, a second laptop for legitimate notes, or a habit of looking down to think.
Suggested checks
Close eyes · Share screen

“Candidate looks to the same off-screen spot before answering.”

GAZE_OFFSCREEN
Fires when
3 answers that each began after a fixation at the same far off-screen spot (|gaze x| > 0.55).
Cannot see
Who or what is there.
Known false positives
A window, a wall clock, or a family member in the room.
Suggested checks
Share screen · Close eyes

“Candidate's blink pattern is unusual for a sustained period.”

BLINK_ABNORMAL
Fires when
Blink rate below 4 or above 45 per minute for 60 s.
Cannot see
Whether a face is synthetic; this is a weak liveness hint only.
Known false positives
Dry eyes, contact lenses, concentration and some medications all change blink rate.
Suggested checks
Head turn · Hand occlusion

Audio-visual (on device)

Computed in the candidate's browser from self-hosted face-landmark models. Only summary numbers per 500 ms window leave the device; windows with the face missing (< 70% visible) or too dark are ignored.

“Voice continued while the candidate's lips were not moving.”

AV_MISMATCH
Fires when
Voice from the candidate's own microphone above 40% of their calibration level while jaw movement stayed under 30% of it, for 5 s, while the interviewer was not talking.
Cannot see
Whether the voice is a second person in the room or a replayed clip.
Known false positives
Speaker bleed on laptops without echo cancellation; a candidate who talks with little jaw movement. One alert per 2 minutes at most.
Suggested checks
Hand occlusion · Head turn · Interrupt

“Candidate's head has not moved at all for over a minute while speaking.”

HEAD_STATIC
Fires when
Head pose standard deviation under 1.5° for 90 s while the candidate was speaking in at least 30% of that time.
Cannot see
Distinguish a looped video from a very still person.
Known false positives
A candidate sitting rigidly because they are nervous.
Suggested checks
Head turn · Hand occlusion

The seven checks

Pressed by the interviewer, never automatic. Each one stamps a 10-second window on the recording with who pressed it; the candidate sees a one-line card for the ones that need an action.

Ask to rephrase

Say: "Can you say that last part again, but shorter?"

Reference-back

Connect this answer to something they said 10 minutes ago.

Interrupt

Cut in mid-sentence with a short follow-up.

Close eyes

Candidate will be asked to answer the next question with eyes closed.

Candidate sees: “For the next answer, please close your eyes while you speak.”

Share screen

Candidate will be asked to share their entire screen.

Candidate sees: “Please share your entire screen (all displays) for a moment.”

Head turn

Candidate will be asked to turn head fully left, then right.

Candidate sees: “Please slowly turn your head fully to the left, then fully to the right.”

Hand occlusion

Candidate will be asked to pass a hand across their face.

Candidate sees: “Please slowly pass your open hand in front of your face, left to right.”

Changes

The rules version is pinned on every evidence pack. When a threshold changes, the version changes, and interviews already recorded keep the version they were run under. Thresholds will be tuned on consented, de-identified research interviews only, and this page will say which.

Questions about a specific observation: open the review page, which shows the raw numbers next to the sentence, or read the security overview.