> ## Documentation Index
> Fetch the complete documentation index at: https://docs.techeval.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Scoring, Grading Rubrics, and Anti-Cheat Proctoring

> Understand how Kovi scores candidates on a 0–10 scale, applies seniority-adjusted rubrics, and uses multi-layer proctoring to ensure interview integrity.

Kovi evaluates every interview on a rigorous 10-point scale and backs it with a multi-layered proctoring engine that detects AI tool usage, gaze shifts, and browser activity. You receive a structured scorecard at the end of each session — complete with a numeric score, pass/fail status, identified strengths and weaknesses, and a full set of proctoring flags — so you can make confident, evidence-backed hiring decisions.

## Scoring Rubric

Kovi scores every interview response on a **0–10 scale**. The final score reflects three dimensions:

* **Technical accuracy** — correctness of solutions, use of appropriate patterns, and depth of knowledge
* **Communication quality** — clarity of explanation, ability to walk through reasoning, and responsiveness to follow-up questions
* **Depth of explanation** — whether the candidate goes beyond surface-level answers to demonstrate genuine understanding

Kovi's rubric is seniority-adjusted, meaning the same score represents different demonstrated ability at different experience levels. A Junior candidate and a Senior candidate can both score `6.5`, but the bar each had to clear to earn that score is substantially different.

**Recommended pass score range: 6.3 – 7.5.** As a calibration anchor, a highly capable candidate benchmarked at approximately 130 IQ typically scores **6.5**. Set your threshold based on the criticality and seniority of the role.

## Setting a Pass Score

Include the `pass_score` parameter in your `schedule_interview()` call to define the numeric threshold a candidate must meet or exceed to be considered passing.

```python theme={null}
from kovi import KoviClient

client = KoviClient(api_key="YOUR_LIVE_API_KEY_HERE")

response = client.schedule_interview(
    job_id="JD-AI-7284",
    candidate_name="Maria Garcia",
    candidate_email="m.garcia@example.com",
    mobile_number="+1-5550009999",
    role="Senior AI Engineer",
    interview_type="Full Stack",
    evaluation_level="Senior to Architect",
    tech_stack=["Python", "LangChain", "GCP", "PostgreSQL"],
    duration=45,
    pass_score=6.5,      # Candidates scoring below this are marked as not passing
    deadline_hours=48
)
```

When the interview concludes, Kovi's webhook payload returns a `passed_threshold` field in the scorecard:

* `passed_threshold: true` — the candidate met or exceeded your `pass_score`
* `passed_threshold: false` — the candidate scored below your `pass_score`

You can use this field directly in your ATS automation to gate advancement to the next pipeline stage.

## Proctoring Engine

Kovi's anti-cheat system operates continuously throughout the session without interrupting the interview flow. All evidence is captured silently and surfaced in the scorecard after the session ends.

### AI Copilot Detection

Kovi analyzes conversational speech rhythm in real time to identify patterns consistent with candidates reading responses generated by tools like ChatGPT. When suspicious patterns are detected, Kovi injects dynamic follow-up curveball questions that require genuine in-context reasoning — questions that an AI-assisted answer cannot cleanly pivot to handle. This makes passive AI assistance significantly harder to rely on without detection.

### Hardware Proctoring

Kovi monitors the candidate's hardware environment throughout the session:

* **Gaze tracking** — detects sustained gaze deviation away from the screen, which may indicate reference to off-screen materials
* **Multiple-face detection** — flags if more than one person is present in front of the camera
* **Browser tab-switch logging** — records every instance of the candidate switching away from the interview tab, with timestamps

### Non-Blocking Evidence Capture

Kovi does **not** terminate an interview when it detects potential cheating. Instead, it continues the session, captures all behavioral and technical evidence, and flags the relevant indicators on the scorecard. This approach ensures you receive a complete evaluation rather than an abruptly ended session, and it prevents false positives from prematurely disqualifying a legitimate candidate.

All proctoring signals are aggregated into the `proctoring_flags` object returned in the webhook payload:

```json theme={null}
{
  "candidate_id": "cnd_98765",
  "final_score": 7.2,
  "passed_threshold": true,
  "proctoring_flags": {
    "tab_switches": 0,
    "ai_copilot_detected": false,
    "disconnects": 1
  },
  "strengths": ["Database Scaling", "Microservices Architecture"],
  "weaknesses": ["CI/CD Pipeline Configuration"],
  "transcript_url": "https://techeval.ai/dash/transcripts/cnd_98765"
}
```

Review `ai_copilot_detected`, `tab_switches`, and `disconnects` together when assessing the integrity of a session. A high score accompanied by `ai_copilot_detected: true` warrants a manual follow-up.

## Auto-Submission Rules

Kovi enforces two timing rules to keep sessions moving and prevent candidates from stalling:

1. **Initial response window** — once Kovi finishes reading a question, the candidate has **12 seconds** to begin speaking. If they remain silent for the full 12 seconds, the system automatically submits an empty response and advances to the next question.
2. **Mid-answer pause limit** — once a candidate begins speaking, Kovi allows a **7-second pause gap** before treating the answer as complete. If the candidate pauses for longer than 7 seconds mid-answer, the response is auto-submitted and the session advances.

These rules ensure the interview completes within your configured `duration` and prevent deliberate time-wasting strategies.

## Session Recovery

Kovi automatically saves interview state after every question exchange. If a candidate experiences a network drop or loses connectivity, they can click the original interview link to rejoin and resume exactly where they left off — no answers are lost and the session timer continues from where it paused.

If a candidate disconnects **more than twice** during a single session, Kovi automatically sends a notification to HR so you can decide whether to reschedule or proceed with the partial evaluation.

<Warning>
  Kovi **blocks mobile phones and tablets** from accessing the interview session. A laptop or desktop computer is strictly required. Inform candidates of this requirement before sending the interview link to avoid last-minute technical issues.
</Warning>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.