> ## 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.

# Scheduling a Kovi AI Interview: SDK and Dashboard Guide

> Step-by-step guide to scheduling a Kovi AI interview via the Python SDK or dashboard—configure tech stack, seniority, pass score, and deadline.

Scheduling an interview in Kovi means generating a unique, time-limited link for a specific candidate and role. You can do this via the dashboard or programmatically with the Python SDK.

## Before You Start

Make sure you have the following ready before scheduling your first interview:

* A Techeval account with at least 1 credit
* Your API key from the dashboard
* Candidate's name, email, and mobile number
* Job ID (create one in the dashboard)

## Schedule via the Python SDK

Install the SDK if you haven't already:

```bash theme={null}
pip install kovi-sdk
```

Then use the following example to schedule an interview programmatically:

```python schedule_interview.py theme={null}
from kovi import KoviClient

# Initialize the client with your API key from the Techeval dashboard
client = KoviClient(api_key="YOUR_LIVE_API_KEY_HERE")

try:
    response = client.schedule_interview(
        job_id="JD-AI-7284",              # Your job description identifier
        candidate_name="Jane Doe",         # Full name of the candidate
        candidate_email="jane@example.com", # Interview link will be sent here
        mobile_number="+91-9999999999",    # Candidate's mobile with country code
        role="AI Engineer",                # Job title for this position
        interview_type="System Design",    # Stage of your recruitment pipeline
        evaluation_level="Mid-Level to Senior",  # Adapts question complexity
        tech_stack=[
            "Python", "FastAPI", "GCP", "LangChain",
            "PostgreSQL", "Supabase", "Pinecone"
        ],                                 # Technologies to focus on
        duration=15,                       # Interview duration in minutes (max 60)
        pass_score=6.5,                    # Minimum score to pass (recommended: 6.3–7.5)
        deadline_hours=72                  # Hours until the link expires
    )

    print("✅ Interview scheduled!")
    print(f"🔗 Send this link to the candidate: {response.get('interviewUrl')}")

except Exception as e:
    print(f"❌ Failed to schedule interview: {e}")
```

## Configuration Parameters

| Parameter | Type | Description |
| - | - | - |
| `job_id` | string | Your job description identifier |
| `candidate_name` | string | Full name of the candidate |
| `candidate_email` | string | Candidate's email — interview link will be sent here |
| `mobile_number` | string | Candidate's mobile with country code (e.g. `+91-9999999999`) |
| `role` | string | Job title (e.g. `"AI Engineer"`) |
| `interview_type` | string | One of: `"Initial Screening"`, `"Technical Deep Dive"`, `"System Design"`, `"Behavioral"`, `"Full Stack"` |
| `evaluation_level` | string | `"Junior"`, `"Mid-Level to Senior"`, or `"Senior to Architect"` |
| `tech_stack` | list\[str] | Technologies to focus on (e.g. `["Python", "FastAPI", "PostgreSQL"]`) |
| `duration` | int | Interview duration in minutes (max 60) |
| `pass_score` | float | Minimum score to pass (recommended: 6.3–7.5) |
| `deadline_hours` | int | Hours until the link expires (e.g. `48`, `72`) |

<Note>
  One interview credit is consumed when the interview **begins**, not when you generate the link. Unused or expired links do not cost you any credits.
</Note>

Upon a successful API call, Kovi **automatically emails** the unique interview link directly to the candidate. The response also returns the `interviewUrl` in case you want to store it in your ATS or display it on your internal dashboard.

The candidate must access the link on a **laptop or desktop computer**. Mobile phones and tablets are blocked because the interview includes live coding exercises that require a full keyboard and browser environment.

<Tip>
  Set `deadline_hours` to 48–72 to balance pipeline velocity with candidate flexibility. Short deadlines keep your pipeline moving; longer ones give candidates time to prepare a suitable environment.
</Tip>


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