{"openapi":"3.0.2","info":{"title":"Coco HR Partner API","description":"\n# Coco HR Partner API\n\nIntegrate Coco HR's AI-powered job assessments into your own HR / ATS platform.\n\n## Authentication\n\nEvery partner request must include the following header:\n\n```\nAuthorization: ApiKey <your-api-key>\n```\n\nHow to obtain a key:\n- Sign in to the Coco HR dashboard as a company admin → **Settings → API Keys**, **or**\n- While logged in, call `GET /apikey/fetch-api-key` (browser session) — see the **API keys** section.\n\nThe same key represents your company; treat it like a password.\n\n## Core concepts\n\nA Coco HR **assessment** is the combination of three internal records that the API\nstitches together for you:\n\n| Concept | What it is |\n|---|---|\n| **Job** | The role you're hiring for — title, required skills. Each job has a public application URL: `https://hr.cocolevio.com/job/<job_id>` |\n| **Template** | The question-set configuration attached to a job: number of questions, per-question time limit, whether coding challenges are included, answer mode (audio / typing / both). |\n| **Questions** | The actual items the candidate answers. |\n\n### Question types\n\n| Type | Source | Notes |\n|---|---|---|\n| **Theory questions** | AI-generated from the skill catalogue (see `GET /apikey/get_technologies`). | Configured via `no_of_theory_questions`. |\n| **Coding challenges** | Pre-built interactive coding tasks, optionally enabled per skill. | Configured via `is_coding_challenge_required` + `coding_challenge_data`. |\n\n### Answer modes (`assessment_type`)\n\n| Value | Candidate answers theory questions by |\n|---|---|\n| `audio` | Speaking aloud — answers are transcribed & evaluated by AI |\n| `both` | Either typing or speaking, candidate's choice |\n\n> The number and quality of free-form theory answers are scored by AI and surfaced\n> in the candidate report along with anti-cheat signals (tab-switch count, multiple-faces detection, etc.).\n\n## The end-to-end flow\n\n```\n ┌──────────────────────────────────────────────────────────────────────────┐\n │   1. (Optional) List supported skills                                    │\n │      GET /apikey/get_technologies                                        │\n ├──────────────────────────────────────────────────────────────────────────┤\n │   2. Create an assessment (creates job + template + AI questions)        │\n │      POST /apikey/prepare_assessment                                     │\n │      → returns assessment_id and the generated question titles           │\n ├──────────────────────────────────────────────────────────────────────────┤\n │   3. Add a candidate                                                     │\n │      POST /apikey/process_candidate                                      │\n │      → returns assessment_link (unique URL for that candidate)           │\n ├──────────────────────────────────────────────────────────────────────────┤\n │   4. Candidate takes the test in the browser at assessment_link          │\n │      (no SDK or app required — works on any modern desktop browser)      │\n ├──────────────────────────────────────────────────────────────────────────┤\n │   5. Fetch the AI evaluation report                                      │\n │      GET /apikey/get_candidate_report/{p_candidate_id}                   │\n │      → returns verdict, per-question scoring, video URLs, anti-cheat     │\n └──────────────────────────────────────────────────────────────────────────┘\n```\n\n### Identifiers — your IDs vs Coco IDs\n\nCoco HR keeps **your** identifiers (`p_candidate_id`, `p_job_id`) alongside its own\ninternal IDs. **All partner endpoints accept the identifiers you originally sent**,\nso you never need to store Coco's internal IDs. Re-use the same `p_candidate_id`\nacross `process_candidate` and `get_candidate_report`.\n\n## Importing into Postman / Insomnia\n\nPostman → **File → Import → Link** → paste:\n\n```\nhttps://hr.cocolevio.com/partner-api/openapi.json\n```\n\nThe full request collection (every endpoint, parameters, sample payloads) is\ngenerated automatically. No collection file to download or maintain.\n\n## Advanced: Manual job and template management\n\nWhile `prepare_assessment` is the quickest way to set up a full assessment, you can also\n**create jobs and templates separately** for more control:\n\n### 1. Create a job (optional — `prepare_assessment` does this automatically)\n```\nPOST /apikey/p-create-job\n{\n  \"title\": \"Senior Python Developer\",\n  \"description\": \"We are looking for...\",\n  \"location\": \"Remote\"\n}\n```\nAll fields except `title` are optional.\n\n### 2. Create a reusable template (optional)\n```\nPOST /apikey/p-create-template\n{\n  \"name\": \"Senior Developer Assessment\",\n  \"time_allowed_for_each_question\": 10,\n  \"assessment_type\": \"both\",\n  \"no_of_questions\": 5,\n  \"is_coding_required\": \"no\"\n}\n```\n\n### 3. Create and manage questions\n```\nPOST /apikey/p-create-question\n{\n  \"template_id\": 456,\n  \"queTitle\": \"Explain the difference between == and is in Python\",\n  \"queType\": \"theory\"\n}\n```\n\n**When to use manual management:**\n- You want to reuse templates across multiple jobs\n- You need fine-grained control over the assessment structure\n- You want to build a custom question library\n\n**When to use `prepare_assessment`:**\n- You want a one-shot assessment creation (job + template + questions)\n- You want AI-generated questions based on skills\n\n## Resume contact extraction\n\nExtract a candidate's name, email, and phone from a PDF resume instantly (no AI, no tokens consumed):\n\n```\nPOST /apikey/p-parse-resume-contact\nContent-Type: multipart/form-data\n\nfile=@/path/to/resume.pdf\n```\n\nResponse:\n```json\n{\n  \"name\": \"Archit Saki\",\n  \"email\": \"itsarchit.saki@gmail.com\",\n  \"phone\": \"7448251252\"\n}\n```\n\n## Public application form\n\nEvery job created via the API also has a public-facing application URL that you\ncan share with candidates directly — no API call needed:\n\n```\nhttps://hr.cocolevio.com/job/<job_id>\n```\n\nUse this when you want candidates to apply themselves (resume upload, no\npre-registration). Applicants who arrive this way show up in `GET /apikey/p_get_applicants`.\n\n## Note on `job_id` and `p_candidate_id` types\n\nThe `job_id` in `prepare_assessment` and `p_job_id` in `process_candidate` must be **integers**.\nThe `p_candidate_id` must also be an **integer**.\nThese are your external identifiers (from your ATS/HR system). Store them on your side;\nCoco HR will use them to look up the correct assessment/candidate when fetching reports.\n","contact":{"name":"Coco HR Support","url":"https://hr.cocolevio.com","email":"support@cocolevio.com"},"version":"1.0.0"},"paths":{"/apikey/generate-api-key":{"get":{"tags":["API keys"],"summary":"Generate a new API key (admin, logged in)","description":"Generates a fresh API key for the calling user. Requires an authenticated browser session (company admin logging in to the Coco HR dashboard) — **not** the `Authorization: ApiKey` header used by partner endpoints. Calling this endpoint **replaces** any existing key for the user — share the new key with your integrators before rotating clients.","operationId":"generate_api_key_apikey_generate_api_key_get","responses":{"200":{"description":"API key generated.","content":{"application/json":{"schema":{},"example":{"message":"API key generated successfully","api_key":"9f1c8c5e7d3a2b1f0e9d8c7b6a5b4c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f8a7b"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/apikey/fetch-api-key":{"get":{"tags":["API keys"],"summary":"Fetch the current API key (admin, logged in)","description":"Returns the API key associated with the calling user. Requires an authenticated browser session — **not** the `Authorization: ApiKey` header. Use this when your admin has misplaced their key but does not want to invalidate the existing one. Returns **404** if no key has ever been generated for this user.","operationId":"fetch_api_key_apikey_fetch_api_key_get","responses":{"200":{"description":"API key fetched.","content":{"application/json":{"schema":{},"example":{"message":"API key fetched successfully","api_key":"9f1c8c5e7d3a2b1f0e9d8c7b6a5b4c3d2e1f0a9b8c7d6e5f4a3b2c1d0e9f8a7b"}}}},"404":{"description":"No API key exists for this user."}},"security":[{"OAuth2PasswordBearer":[]}]}},"/apikey/prepare_assessment":{"post":{"tags":["Assessments"],"summary":"Create a job + template + AI questions in a single call","description":"This is the main entry point for setting up a new assessment.\n\nUnder the hood it does **three things atomically**:\n1. Creates a **job** (title + required skills) and links it to your `job_id` for future lookups.\n2. Creates a **template** with the timing and answer-mode configuration (`time_allowed_for_each_question`, `assessment_type`, coding-challenge settings).\n3. **Generates the questions** using AI based on the required skills — `no_of_theory_questions` theory questions, plus coding challenges if `is_coding_challenge_required = \"yes\"`.\n\nConsumes **1 assessment token** from your company's monthly quota. Returns **400** if an assessment already exists for the supplied `job_id` (use `update_assessment` instead in that case).\n\n**Tip:** Call `GET /apikey/get_technologies` first to pick the exact skill names recognised by the AI question generator.","operationId":"prepare_assessment_apikey_prepare_assessment_post","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareAssessmentPayload"}}},"required":true},"responses":{"200":{"description":"Assessment created successfully.","content":{"application/json":{"schema":{},"example":{"message":"Assessment created successfully","assessment_id":1024,"questions":[{"id":51,"queTitle":"Explain the difference between == and is in Python."},{"id":52,"queTitle":"What is the purpose of async/await?"},{"id":53,"queTitle":"Describe how React reconciliation works."}]}}}},"400":{"description":"An assessment already exists for this job_id, or your token quota is exhausted."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/update_assessment":{"post":{"tags":["Assessments"],"summary":"Update an existing assessment (re-generates questions)","description":"Updates the underlying job, template, and question set for an assessment identified by **your** `job_id` (the same value you passed to `prepare_assessment`). Re-runs AI question generation against the updated skill list / question count.\n\nUseful when you change the role definition, swap the required skills, or want to refresh the question set. Existing candidates who already took the assessment keep their original results — only new candidates see the updated questions.","operationId":"update_assessment_apikey_update_assessment_post","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/update_assessment_payload"}}},"required":true},"responses":{"200":{"description":"Assessment updated successfully.","content":{"application/json":{"schema":{},"example":{"message":"Assessment updated successfully","assessment_id":1024,"questions":[{"id":90,"queTitle":"How does virtual DOM diffing work?"},{"id":91,"queTitle":"Compare useMemo and useCallback."}]}}}},"404":{"description":"No assessment found for the given job_id."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/delete_assessment/{job_id}":{"delete":{"tags":["Assessments"],"summary":"Delete an assessment (only if no candidate has taken it)","description":"Deletes the job, template, and assessment record identified by **your** `job_id`.\n\nReturns **409 Conflict** if any candidate has already submitted the assessment — once results exist, deletion is blocked to preserve audit trail. In that case, use `POST /apikey/update_assessment` to modify the assessment instead.","operationId":"delete_job_apikey_delete_assessment__job_id__delete","parameters":[{"required":true,"schema":{"title":"Job Id","type":"string"},"name":"job_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Assessment deleted.","content":{"application/json":{"schema":{},"example":{"message":"Assessment deleted successfully"}}}},"404":{"description":"No assessment found for the given job_id."},"409":{"description":"Cannot delete — at least one candidate has already submitted this assessment."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/process_candidate":{"post":{"tags":["Applicants & Reports"],"summary":"Add a candidate to an assessment and get their unique link","description":"Registers a candidate against the assessment identified by your `p_job_id`, and returns a unique `assessment_link`.\n\nShare that URL with the candidate (email, SMS, your own dashboard) — they open it in any modern desktop browser to take the test. The link is bound to that specific candidate and cannot be reused by anyone else.\n\nThe same email cannot be registered twice against the same `p_job_id` (returns **400**). Re-using the same `p_candidate_id` later in `get_candidate_report` retrieves the AI evaluation for this attempt.","operationId":"process_candate_apikey_process_candidate_post","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddCadidatePayload"}}},"required":true},"responses":{"200":{"description":"Candidate registered.","content":{"application/json":{"schema":{},"example":{"message":"Candidate processed successfully","assessment_link":"https://hr.cocolevio.com/assessment/57291"}}}},"400":{"description":"An applicant with this email already exists for the given job."},"404":{"description":"No assessment found for the given p_job_id."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/get_candidate_report/{p_candidate_id}":{"get":{"tags":["Applicants & Reports"],"summary":"Fetch a candidate's AI evaluation report","description":"Returns the full report for the candidate identified by **your** `p_candidate_id` (the value you passed to `process_candidate`).\n\nThe response includes:\n- `assessment_status` — `Not Started` / `In Progress` / `Completed`.\n- `assessment_result` — AI verdict + per-question scoring (only populated once the candidate finishes).\n- `assessment_anti_cheat_data` — flags like tab switches, multiple-faces-on-camera, ambient noise.\n- `assessment_video` — list of video URLs (one per question) if video answering was enabled in the assessment template.\n\nPoll this endpoint periodically until `assessment_status == \"Completed\"`, or wire up a webhook on your side that polls when the candidate clicks their assessment link.","operationId":"process_candate_apikey_get_candidate_report__p_candidate_id__get","parameters":[{"required":true,"schema":{"title":"P Candidate Id","type":"string"},"name":"p_candidate_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Candidate report fetched.","content":{"application/json":{"schema":{},"example":{"id":7755,"name":"Asha Verma","jobPostId":9001,"email":"asha@example.com","assessment_status":"Completed","data":[{"time":"00:00","user":"Cocolevio","content":"Explain how you would design a scalable caching layer for a high-traffic web application.","mp3_link":"https://s3.../uploads/company/8/questions/15134.mp3","que_type":"theory"},{"time":"00:45","user":"Candidate","uuid":"b8ebcc44-e2fe-48c5-b254-205042550894","que_no":"0","content":"I would use Redis for in-memory caching with a TTL-based eviction policy. For distributed systems, I'd implement cache invalidation through...","mp3_link":"https://s3.../uploads/company/8/assessments/1964_q0.webm","que_type":"response"}],"assessment_result":[{"question_id":51,"question":"Explain how you would design a scalable caching layer for a high-traffic web application.","answer":"I would use Redis for in-memory caching with a TTL-based eviction policy. For distributed systems, I'd implement cache invalidation through...","score":8.5,"max_score":10,"feedback":"Strong understanding of Redis and distributed caching. Could elaborate more on cache-aside vs write-through patterns.","dimensions":{"Technical Depth":8,"Communication":9,"Problem-solving":8}},{"question_id":52,"question":"What is the difference between optimistic and pessimistic locking?","answer":"Optimistic locking assumes conflicts are rare and checks versions before update. Pessimistic locking uses locks to prevent conflicts...","score":7.5,"max_score":10,"feedback":"Good explanation. Consider mentioning database-specific implementations like row-level locks.","dimensions":{"Technical Depth":7,"Communication":8,"Problem-solving":7}}],"assessment_anti_cheat_data":{"browser":"Chrome","browser_version":"120.0.0.0","device_type":"desktop","device_used":"Windows","webrtc_location":"Bangalore, Karnataka, India","webrtc_ip_address":"203.0.113.45","current_ip_address":"203.0.113.45","currentipAddressLocation":"Bangalore, Karnataka, India","isvpn":false,"istabchange":true,"isfullscreen":true,"iscursormoved":true,"isAudioEnabled":true,"isVideoEnabled":false,"snaps":3,"time_taken_for_assessment":"23"},"assessment_video":[{"que_no":"1","file_type":"webm","public_url":"https://s3.../uploads/company/8/assessment/1964_q1_answer.webm"},{"que_no":"2","file_type":"webm","public_url":"https://s3.../uploads/company/8/assessment/1964_q2_answer.webm"}]}}}},"404":{"description":"No candidate found for the given p_candidate_id."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-resume-parsing":{"post":{"tags":["Resume parsing"],"summary":"Parse a resume against a job requirement (AI)","description":"Uploads a resume PDF and returns structured fields extracted by AI:\n- `match_skill_sets` — skills found that match the requested `skill_set`.\n- `total_experience` — total years of professional experience.\n- `current_location` — last known city / location string.\n- `graduation_yes_no` — boolean.\n- `highest_qualification` — degree string (e.g. \"B.Tech in CSE\").\n\nConsumes **1 resume token** from your monthly quota. Send the request as `multipart/form-data` with three fields: `file` (the PDF), `job_requirement` (free-text description of the role), and `skill_set` (comma-separated skills you want matched).","operationId":"process_resume_apikey_p_resume_parsing_post","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_process_resume_apikey_p_resume_parsing_post"}}},"required":true},"responses":{"200":{"description":"Resume parsed.","content":{"application/json":{"schema":{},"example":{"message":"Resume Parsed successfully","resume_parsed_data":{"match_skill_sets":["Python","FastAPI","AWS"],"total_experience":5,"current_location":"Bangalore","graduation_yes_no":true,"highest_qualification":"B.Tech in Computer Science"}}}}},"500":{"description":"Upload to storage failed."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-parse-resume-contact":{"post":{"tags":["Resume parsing"],"summary":"Extract candidate name, email, and phone from a resume PDF","description":"Uploads a resume PDF and returns the candidate's contact information extracted using heuristic text parsing (no AI required, instant response):\n- `name` — candidate full name (from first few lines of the PDF).\n- `email` — first email address found in the document.\n- `phone` — first phone number found in the document.\n\nSend the request as `multipart/form-data` with a single field: `file` (the PDF). Does **not** consume any tokens.","operationId":"parse_resume_contact_apikey_p_parse_resume_contact_post","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_parse_resume_contact_apikey_p_parse_resume_contact_post"}}},"required":true},"responses":{"200":{"description":"Contact info extracted.","content":{"application/json":{"schema":{},"example":{"name":"Archit Saki","email":"itsarchit.saki@gmail.com","phone":"7448251252"}}}},"422":{"description":"File missing or not a PDF."}}}},"/apikey/get_technologies":{"get":{"tags":["Skills & Question Library"],"summary":"List the skill / technology catalogue","description":"Returns the list of pre-loaded technology templates (Python, React, AWS, etc.) that the AI question generator recognises.\n\nPass any of the returned `name` values verbatim in `required_skills` when calling `POST /apikey/prepare_assessment`, or in `selected_technologies` for `POST /apikey/p-generate-questions`. Names not in this catalogue still work but produce lower-quality AI questions.","operationId":"process_technology_get_request_apikey_get_technologies_get","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Catalogue returned.","content":{"application/json":{"schema":{},"example":[{"name":"Python","uuid":"a1b2c3d4-...","cmetadata":{"category":"Backend"}},{"name":"React","uuid":"e5f6g7h8-...","cmetadata":{"category":"Frontend"}},{"name":"AWS","uuid":"i9j0k1l2-...","cmetadata":{"category":"Cloud"}}]}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-generate-questions":{"post":{"tags":["Skills & Question Library"],"summary":"Preview AI-generated questions (no job created)","description":"Returns a fresh batch of AI-generated theory questions for the given technologies, **without creating a job, template, or assessment**.\n\nUseful when you want to preview the question quality, build a custom question bank, or surface sample questions in your own UI before the candidate commits to taking the test.","operationId":"p_generate_questions_apikey_p_generate_questions_post","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionGenerationPayload"}}},"required":true},"responses":{"200":{"description":"Questions generated.","content":{"application/json":{"schema":{},"example":{"message":"Questions generated successfully","questions":[{"question":"Explain the GIL in CPython.","technology":"Python"},{"question":"What is the purpose of useEffect's dependency array?","technology":"React"}]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p_get_applicants":{"get":{"tags":["Applicants & Reports"],"summary":"List all applicants in your company","description":"Returns every applicant record visible to your company, across all jobs.\n\nThis includes applicants added via the API (`process_candidate`) **and** applicants who applied themselves through the public job URL (`https://hr.cocolevio.com/job/<job_id>`). Use to sync candidate state into your own dashboard, drive funnels, or feed downstream systems (CRM / data warehouse).","operationId":"process_candate_apikey_p_get_applicants_get","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Applicants list.","content":{"application/json":{"schema":{},"example":[{"id":7755,"name":"Asha Verma","email":"asha@example.com","jobPostId":9001,"resumeUrl":"https://.../resumes/7755.pdf","assessment_status":"Completed","verdict":"Recommended","isArchived":false,"linkSent":true,"source":"api","data":{},"createdAt":"2026-05-10T08:22:14Z","updatedAt":"2026-05-11T11:05:32Z"},{"id":7756,"name":"Rohan Singh","email":"rohan@example.com","jobPostId":9001,"resumeUrl":"https://.../resumes/7756.pdf","assessment_status":"Not Started","verdict":"Pending","isArchived":false,"linkSent":false,"source":"public_apply","data":{},"createdAt":"2026-05-12T15:40:01Z","updatedAt":"2026-05-12T15:40:01Z"}]}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p_update_applicant/{p_applicant_id}":{"put":{"tags":["Applicants & Reports"],"summary":"Update an applicant's stage / data","description":"Updates fields on an existing applicant — for example, moving them through hiring stages, recording an external decision, or archiving.\n\nThe request body follows the `ApplicantUpdate` schema; all fields are optional and any field you omit is left unchanged. Common updates:\n- `verdict` — `Recommended` / `Not Recommended` / `On Hold` / `Pending`\n- `assessment_status` — `Not Started` / `In Progress` / `Completed`\n- `isArchived` — true to remove from the active list\n- `data` — free-form JSON for your own metadata","operationId":"p_update_applicant_apikey_p_update_applicant__p_applicant_id__put","parameters":[{"required":true,"schema":{"title":"Applicant Id","type":"integer"},"name":"applicant_id","in":"query"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicantUpdate"}}},"required":true},"responses":{"200":{"description":"Applicant updated.","content":{"application/json":{"schema":{},"example":{"message":"applicant updated successfully"}}}},"404":{"description":"No applicant found with the given ID."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-create-job":{"post":{"tags":["Jobs"],"summary":"Create a new job posting","description":"Creates a new job posting for your company. Jobs are the top-level container for recruitment — candidates apply to jobs, and jobs get attached to assessment templates.\n\nRequired fields: `title` (job title), `description` (job description). Optional: `location`, `salary_range`, `job_type`, `requirements`, and free-form `data` JSON for custom metadata.","operationId":"p_create_job_apikey_p_create_job_post","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerJobCreate"}}},"required":true},"responses":{"200":{"description":"Job created successfully.","content":{"application/json":{"schema":{},"example":{"message":"Job created successfully","job_id":123,"title":"Senior Python Developer","description":"We are hiring..."}}}},"400":{"description":"Missing required fields or invalid data."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-list-jobs":{"get":{"tags":["Jobs"],"summary":"List all jobs for your company","description":"Returns all active job postings for your company.","operationId":"p_list_jobs_apikey_p_list_jobs_get","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Jobs retrieved.","content":{"application/json":{"schema":{},"example":[{"id":123,"title":"Senior Python Developer","description":"We are hiring...","location":"Remote"}]}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-get-job/{job_id}":{"get":{"tags":["Jobs"],"summary":"Get a specific job posting","description":"Retrieves details of a specific job by ID.","operationId":"p_get_job_apikey_p_get_job__job_id__get","parameters":[{"required":true,"schema":{"title":"Job Id","type":"integer"},"name":"job_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Job retrieved.","content":{"application/json":{"schema":{}}}},"404":{"description":"Job not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-update-job/{job_id}":{"put":{"tags":["Jobs"],"summary":"Update a job posting","description":"Updates fields on an existing job. All fields are optional.","operationId":"p_update_job_apikey_p_update_job__job_id__put","parameters":[{"required":true,"schema":{"title":"Job Id","type":"integer"},"name":"job_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerJobCreate"}}},"required":true},"responses":{"200":{"description":"Job updated.","content":{"application/json":{"schema":{}}}},"404":{"description":"Job not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-delete-job/{job_id}":{"delete":{"tags":["Jobs"],"summary":"Delete a job posting","description":"Removes a job posting from your company. Cannot delete if candidates have already applied.","operationId":"p_delete_job_apikey_p_delete_job__job_id__delete","parameters":[{"required":true,"schema":{"title":"Job Id","type":"integer"},"name":"job_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Job deleted.","content":{"application/json":{"schema":{}}}},"404":{"description":"Job not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-create-template":{"post":{"tags":["Templates"],"summary":"Create a new assessment template","description":"Creates a reusable assessment template with timing, question types, and answer modes. Templates are linked to jobs — when you prepare an assessment, you either use an existing template or create a new one.","operationId":"p_create_template_apikey_p_create_template_post","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTemplateCreate"}}},"required":true},"responses":{"200":{"description":"Template created successfully.","content":{"application/json":{"schema":{},"example":{"message":"Template created successfully","template_id":456,"name":"Senior Developer Assessment"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-list-templates":{"get":{"tags":["Templates"],"summary":"List all assessment templates","description":"Returns all reusable assessment templates for your company.","operationId":"p_list_templates_apikey_p_list_templates_get","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Templates retrieved.","content":{"application/json":{"schema":{},"example":[{"id":456,"name":"Senior Developer Assessment","time_allowed_for_each_question":10,"assessment_type":"both"}]}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-get-template/{template_id}":{"get":{"tags":["Templates"],"summary":"Get a specific assessment template","description":"Retrieves details of a specific template by ID.","operationId":"p_get_template_apikey_p_get_template__template_id__get","parameters":[{"required":true,"schema":{"title":"Template Id","type":"integer"},"name":"template_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Template retrieved.","content":{"application/json":{"schema":{}}}},"404":{"description":"Template not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-update-template/{template_id}":{"put":{"tags":["Templates"],"summary":"Update an assessment template","description":"Updates fields on an existing template.","operationId":"p_update_template_apikey_p_update_template__template_id__put","parameters":[{"required":true,"schema":{"title":"Template Id","type":"integer"},"name":"template_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTemplateCreate"}}},"required":true},"responses":{"200":{"description":"Template updated.","content":{"application/json":{"schema":{}}}},"404":{"description":"Template not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-delete-template/{template_id}":{"delete":{"tags":["Templates"],"summary":"Delete an assessment template","description":"Removes a template. Cannot delete if it is currently in use by a job.","operationId":"p_delete_template_apikey_p_delete_template__template_id__delete","parameters":[{"required":true,"schema":{"title":"Template Id","type":"integer"},"name":"template_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Template deleted.","content":{"application/json":{"schema":{}}}},"404":{"description":"Template not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-list-template-questions/{template_id}":{"get":{"tags":["Questions"],"summary":"List all questions in a template","description":"Returns all questions associated with a specific assessment template.","operationId":"p_list_template_questions_apikey_p_list_template_questions__template_id__get","parameters":[{"required":true,"schema":{"title":"Template Id","type":"integer"},"name":"template_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Questions retrieved.","content":{"application/json":{"schema":{},"example":[{"id":789,"queTitle":"Explain the difference between == and is","queType":"theory","difficulty":"medium"}]}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-create-question":{"post":{"tags":["Questions"],"summary":"Create a new question","description":"Creates a custom question and attaches it to a template. Questions can be of type: `theory`, `coding`, `video_answer`, `audio`, etc.","operationId":"p_create_question_apikey_p_create_question_post","parameters":[{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerQuestionCreate"}}},"required":true},"responses":{"200":{"description":"Question created successfully.","content":{"application/json":{"schema":{},"example":{"message":"Question created successfully","question_id":789,"title":"Explain the difference..."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-get-question/{question_id}":{"get":{"tags":["Questions"],"summary":"Get a specific question","description":"Retrieves details of a specific question by ID.","operationId":"p_get_question_apikey_p_get_question__question_id__get","parameters":[{"required":true,"schema":{"title":"Question Id","type":"integer"},"name":"question_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Question retrieved.","content":{"application/json":{"schema":{}}}},"404":{"description":"Question not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-update-question/{question_id}":{"put":{"tags":["Questions"],"summary":"Update a question","description":"Updates fields on an existing question.","operationId":"p_update_question_apikey_p_update_question__question_id__put","parameters":[{"required":true,"schema":{"title":"Question Id","type":"integer"},"name":"question_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerQuestionUpdate"}}},"required":true},"responses":{"200":{"description":"Question updated.","content":{"application/json":{"schema":{}}}},"404":{"description":"Question not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-delete-question/{question_id}":{"delete":{"tags":["Questions"],"summary":"Delete a question","description":"Removes a question from a template.","operationId":"p_delete_question_apikey_p_delete_question__question_id__delete","parameters":[{"required":true,"schema":{"title":"Question Id","type":"integer"},"name":"question_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Question deleted.","content":{"application/json":{"schema":{}}}},"404":{"description":"Question not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apikey/p-get-assessment-videos/{assessment_id}":{"get":{"tags":["Assessments"],"summary":"Get videos/recordings for an assessment","description":"Returns all video recordings collected during an assessment attempt. Includes URLs to download each video file from S3. Videos are only available after the candidate has completed the assessment.","operationId":"p_get_assessment_videos_apikey_p_get_assessment_videos__assessment_id__get","parameters":[{"required":true,"schema":{"title":"Assessment Id","type":"integer"},"name":"assessment_id","in":"path"},{"required":false,"schema":{"title":"Authorization","type":"string"},"name":"authorization","in":"header"}],"responses":{"200":{"description":"Videos retrieved.","content":{"application/json":{"schema":{},"example":{"assessment_id":1024,"videos":[{"question_id":789,"url":"https://bucket.s3.region.amazonaws.com/video-123.mp4","duration_seconds":45,"uploaded_at":"2025-05-15T10:30:00Z"}]}}}},"404":{"description":"Assessment not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AIBaseUrlRequest":{"title":"AIBaseUrlRequest","required":["ai_base_url"],"type":"object","properties":{"ai_base_url":{"title":"Ai Base Url","type":"string"}}},"AddCadidatePayload":{"title":"AddCadidatePayload","required":["p_candidate_id","candidate_name","candidate_email","p_job_id"],"type":"object","properties":{"p_candidate_id":{"title":"P Candidate Id","type":"string"},"candidate_name":{"title":"Candidate Name","type":"string"},"candidate_email":{"title":"Candidate Email","type":"string"},"p_job_id":{"title":"P Job Id","type":"string"},"candidate_phone":{"title":"Candidate Phone","type":"string"}}},"AdminAIConfigUpdate":{"title":"AdminAIConfigUpdate","type":"object","properties":{"ai_base_url":{"title":"Ai Base Url","type":"string"},"openai_model":{"title":"Openai Model","type":"string"},"openai_api_key":{"title":"Openai Api Key","type":"string"},"clear_api_key":{"title":"Clear Api Key","type":"boolean"},"ai_config_locked":{"title":"Ai Config Locked","type":"boolean"},"require_own_openai_key":{"title":"Require Own Openai Key","type":"boolean"}}},"Anticheat":{"title":"Anticheat","type":"object","properties":{"device_used":{"title":"Device Used","type":"string"},"device_type":{"title":"Device Type","type":"string"},"browser":{"title":"Browser","type":"string"},"browser_version":{"title":"Browser Version","type":"string"},"webrtc_location":{"title":"Webrtc Location","type":"string"},"webrtc_ip_address":{"title":"Webrtc Ip Address","type":"string"},"current_ip_address":{"title":"Current Ip Address","type":"string"},"currentipAddressLocation":{"title":"Currentipaddresslocation","type":"string"},"avgInternetSpeed":{"title":"Avginternetspeed","type":"string"},"isvpn":{"title":"Isvpn","type":"boolean"},"isAudioEnabled":{"title":"Isaudioenabled","type":"boolean"},"snaps":{"title":"Snaps","type":"array","items":{"type":"string"}},"isVideoEnabled":{"title":"Isvideoenabled","type":"boolean"},"isfullscreen":{"title":"Isfullscreen","type":"boolean"},"istabchange":{"title":"Istabchange","type":"boolean"},"iscursormoved":{"title":"Iscursormoved","type":"boolean"},"time_taken_for_assessment":{"title":"Time Taken For Assessment","type":"string"}}},"ApiKeyPayload":{"title":"ApiKeyPayload","required":["apiKey","userid","host"],"type":"object","properties":{"apiKey":{"title":"Apikey","type":"string"},"userid":{"title":"Userid","type":"string"},"host":{"title":"Host","type":"string"}}},"Applicant":{"title":"Applicant","required":["id","name","email","resumeUrl","createdAt","updatedAt","verdict","linkSent"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"name":{"title":"Name","type":"string"},"jobPostId":{"title":"Jobpostid","type":"integer"},"email":{"title":"Email","type":"string"},"resumeUrl":{"title":"Resumeurl","type":"string"},"resume_parsed_data":{"title":"Resume Parsed Data"},"is_resume_parsed":{"title":"Is Resume Parsed","type":"boolean","default":false},"data":{"title":"Data"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"},"assessment_status":{"title":"Assessment Status","type":"string","default":"Not Started"},"verdict":{"title":"Verdict","type":"string"},"isArchived":{"title":"Isarchived","type":"boolean"},"linkSent":{"title":"Linksent","type":"boolean"},"source":{"title":"Source","type":"string"}}},"ApplicantCreate":{"title":"ApplicantCreate","required":["name","jobPostId","email"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"jobPostId":{"title":"Jobpostid","type":"integer"},"email":{"title":"Email","type":"string"},"resumeUrl":{"title":"Resumeurl","type":"string"},"assessment_status":{"title":"Assessment Status","type":"string","default":"Not Started"},"data":{"title":"Data"},"verdict":{"title":"Verdict","type":"string","default":"Pending"},"isArchived":{"title":"Isarchived","type":"boolean","default":false},"linkSent":{"title":"Linksent","type":"boolean","default":false},"resume_parsed_data":{"title":"Resume Parsed Data"},"is_resume_parsed":{"title":"Is Resume Parsed","type":"boolean","default":false},"captcha_token":{"title":"Captcha Token","type":"string"},"source":{"title":"Source","type":"string"}}},"ApplicantEmail":{"title":"ApplicantEmail","required":["email","name","link","jobPostId"],"type":"object","properties":{"email":{"title":"Email","type":"string"},"name":{"title":"Name","type":"string"},"link":{"title":"Link","type":"string"},"jobPostId":{"title":"Jobpostid","type":"integer"}}},"ApplicantFeedbackCreate":{"title":"ApplicantFeedbackCreate","required":["applicantId","rating","remark","clear_instruction","accuracy","navigating","relevant","issue"],"type":"object","properties":{"applicantId":{"title":"Applicantid","type":"integer"},"rating":{"title":"Rating","type":"integer"},"remark":{"title":"Remark","type":"string"},"clear_instruction":{"title":"Clear Instruction","type":"string"},"accuracy":{"title":"Accuracy","type":"string"},"navigating":{"title":"Navigating","type":"string"},"relevant":{"title":"Relevant","type":"string"},"issue":{"title":"Issue","type":"string"}}},"ApplicantRequest":{"title":"ApplicantRequest","required":["applicant_id","candidateId"],"type":"object","properties":{"applicant_id":{"title":"Applicant Id","type":"integer"},"candidateId":{"title":"Candidateid","type":"integer"}}},"ApplicantUpdate":{"title":"ApplicantUpdate","type":"object","properties":{"name":{"title":"Name","type":"string"},"jobPostId":{"title":"Jobpostid","type":"integer"},"email":{"title":"Email","type":"string"},"resumeUrl":{"title":"Resumeurl","type":"string"},"data":{"title":"Data"},"verdict":{"title":"Verdict","type":"string"},"isArchived":{"title":"Isarchived","type":"boolean"},"linkSent":{"title":"Linksent","type":"boolean"},"resume_parsed_data":{"title":"Resume Parsed Data"},"assessment_status":{"title":"Assessment Status","type":"string"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"},"source":{"title":"Source","type":"string"}}},"Assessment":{"title":"Assessment","required":["id","email"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"job_post_id":{"title":"Job Post Id","type":"integer"},"job_post":{"title":"Job Post","type":"string"},"hash":{"title":"Hash","type":"string"},"company_name":{"title":"Company Name","type":"string"},"company_id":{"title":"Company Id","type":"integer"},"applicant_id":{"title":"Applicant Id","type":"integer"},"email":{"title":"Email","type":"string"},"name":{"title":"Name","type":"string"},"disability":{"title":"Disability","type":"string"},"resume_url":{"title":"Resume Url","type":"string"},"thumbnail":{"title":"Thumbnail","type":"string"},"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/Transcript"}},"result":{"title":"Result","type":"array","items":{"$ref":"#/components/schemas/Result"}},"anticheat":{"$ref":"#/components/schemas/Anticheat"},"verdict":{"title":"Verdict","type":"string"},"status":{"title":"Status","type":"string"},"isPracticeAssessment":{"title":"Ispracticeassessment","type":"boolean"},"isPracticeCompleted":{"title":"Ispracticecompleted","type":"boolean"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"},"assessmentLock":{"title":"Assessmentlock","type":"string","format":"date-time"},"evaluation_score":{"title":"Evaluation Score","type":"number"}}},"AssessmentCreate":{"title":"AssessmentCreate","required":["email","applicant_id"],"type":"object","properties":{"email":{"title":"Email","type":"string"},"applicant_id":{"title":"Applicant Id","type":"string"},"name":{"title":"Name","type":"string"},"disability":{"title":"Disability","type":"string"},"isPracticeAssessment":{"title":"Ispracticeassessment","type":"boolean"},"isPracticeCompleted":{"title":"Ispracticecompleted","type":"boolean"},"isDirectSubmission":{"title":"Isdirectsubmission","type":"boolean"}}},"AssessmentPracticeUpdate":{"title":"AssessmentPracticeUpdate","type":"object","properties":{"assessmentId":{"title":"Assessmentid","type":"integer"},"isPracticeCompleted":{"title":"Ispracticecompleted","type":"boolean"}}},"AssessmentUpdate":{"title":"AssessmentUpdate","type":"object","properties":{"job_post_id":{"title":"Job Post Id","type":"integer"},"job_post":{"title":"Job Post","type":"string"},"company_name":{"title":"Company Name","type":"string"},"company_id":{"title":"Company Id","type":"integer"},"applicant_id":{"title":"Applicant Id","type":"integer"},"email":{"title":"Email","type":"string"},"name":{"title":"Name","type":"string"},"disability":{"title":"Disability","type":"string"},"resume_url":{"title":"Resume Url","type":"string"},"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/Transcript"}},"result":{"title":"Result","type":"array","items":{"$ref":"#/components/schemas/Result"}},"anticheat":{"$ref":"#/components/schemas/Anticheat"},"verdict":{"title":"Verdict","type":"string"},"status":{"title":"Status","type":"string"},"isPracticeAssessment":{"title":"Ispracticeassessment","type":"boolean"},"isPracticeCompleted":{"title":"Ispracticecompleted","type":"boolean"}}},"Body_assessment_audio_upload_uploads_assessment_audio_post":{"title":"Body_assessment_audio_upload_uploads_assessment_audio_post","required":["file"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"}}},"Body_create_did_avatar_uploads_create_did_avatar_post":{"title":"Body_create_did_avatar_uploads_create_did_avatar_post","required":["file","gender"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"},"gender":{"title":"Gender","type":"string"},"auth_override":{"title":"Auth Override","type":"string"}}},"Body_create_item_uploads_post":{"title":"Body_create_item_uploads_post","required":["file"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"}}},"Body_login_auth_token_post":{"title":"Body_login_auth_token_post","required":["username","password"],"type":"object","properties":{"browser":{"title":"Browser","type":"string","default":"SWAGGER"},"device_type":{"title":"Device Type","type":"string","default":"SWAGGER"},"operating_system":{"title":"Operating System","type":"string","default":"SWAGGER"},"ip_address":{"title":"Ip Address","type":"string","default":"127.0.0.1"},"location":{"title":"Location","type":"string","default":"SWAGGER"},"page":{"title":"Page","type":"string"},"mfa_code":{"title":"Mfa Code","type":"string"},"captcha_response":{"title":"Captcha Response","type":"string"},"grant_type":{"title":"Grant Type","pattern":"password","type":"string"},"username":{"title":"Username","type":"string"},"password":{"title":"Password","type":"string"},"scope":{"title":"Scope","type":"string","default":""},"client_id":{"title":"Client Id","type":"string"},"client_secret":{"title":"Client Secret","type":"string"}}},"Body_parse_resume_contact_apikey_p_parse_resume_contact_post":{"title":"Body_parse_resume_contact_apikey_p_parse_resume_contact_post","required":["file"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"}}},"Body_parse_resume_endpoint_mock_assessment_parse_resume_post":{"title":"Body_parse_resume_endpoint_mock_assessment_parse_resume_post","required":["file"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"},"captcha_token":{"title":"Captcha Token","type":"string","default":""}}},"Body_parse_resume_prefill_uploads_parse_resume_prefill_post":{"title":"Body_parse_resume_prefill_uploads_parse_resume_prefill_post","required":["file"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"}}},"Body_process_resume_apikey_p_resume_parsing_post":{"title":"Body_process_resume_apikey_p_resume_parsing_post","required":["file","job_requirement","skill_set"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"},"job_requirement":{"title":"Job Requirement","type":"string"},"skill_set":{"title":"Skill Set","type":"string"}}},"Body_public_resume_upload_uploads_public_resume_post":{"title":"Body_public_resume_upload_uploads_public_resume_post","required":["job_id","file"],"type":"object","properties":{"captcha_token":{"title":"Captcha Token","type":"string","default":""},"job_id":{"title":"Job Id","type":"integer"},"file":{"title":"File","type":"string","format":"binary"}}},"Body_receive_audio_chunk_uploads_assessment_audio_chunk_post":{"title":"Body_receive_audio_chunk_uploads_assessment_audio_chunk_post","required":["audio"],"type":"object","properties":{"audio":{"title":"Audio","type":"string","format":"binary"}}},"Body_receive_candidate_audio_chunk_did_avatar_candidate_audio_chunk_post":{"title":"Body_receive_candidate_audio_chunk_did_avatar_candidate_audio_chunk_post","required":["audio"],"type":"object","properties":{"audio":{"title":"Audio","type":"string","format":"binary"}}},"Body_receive_screen_chunk_uploads_assessment_screen_chunk_post":{"title":"Body_receive_screen_chunk_uploads_assessment_screen_chunk_post","required":["file"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"}}},"Body_receive_video_chunk_uploads_assessment_video_chunk_post":{"title":"Body_receive_video_chunk_uploads_assessment_video_chunk_post","required":["file"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"}}},"Body_save_assessment_que_recording_video_stream_save_que_recording_post":{"title":"Body_save_assessment_que_recording_video_stream_save_que_recording_post","required":["video","assessment_id","que_no","webm"],"type":"object","properties":{"video":{"title":"Video","type":"string","format":"binary"},"assessment_id":{"title":"Assessment Id","type":"string"},"que_no":{"title":"Que No","type":"string"},"webm":{"title":"Webm","type":"string"}}},"Body_transcribe_audio_from_url_transcribe_transcribe_audio_post":{"title":"Body_transcribe_audio_from_url_transcribe_transcribe_audio_post","required":["file"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"}}},"Body_upload_document_ckm_uploaddocument_post":{"title":"Body_upload_document_ckm_uploaddocument_post","required":["files"],"type":"object","properties":{"files":{"title":"Files","type":"array","items":{"type":"string","format":"binary"}}}},"Body_upload_document_ckm_uploaddocumentworking_post":{"title":"Body_upload_document_ckm_uploaddocumentworking_post","required":["files"],"type":"object","properties":{"files":{"title":"Files","type":"array","items":{"type":"string","format":"binary"}}}},"Body_upload_embeddings_tools_upload_embeddings_post":{"title":"Body_upload_embeddings_tools_upload_embeddings_post","required":["files"],"type":"object","properties":{"files":{"title":"Files","type":"array","items":{"type":"string","format":"binary"}}}},"Body_upload_file_url_for_company_uploads_assessment_upload_for_company__company_id__post":{"title":"Body_upload_file_url_for_company_uploads_assessment_upload_for_company__company_id__post","required":["file"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"}}},"Body_upload_file_url_uploads_assessment_upload_post":{"title":"Body_upload_file_url_uploads_assessment_upload_post","required":["file"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"}}},"Body_upload_pdf_new_ckm_upload_pdf_post":{"title":"Body_upload_pdf_new_ckm_upload_pdf_post","required":["kb_id","files"],"type":"object","properties":{"kb_id":{"title":"Kb Id","type":"integer"},"files":{"title":"Files","type":"array","items":{"type":"string","format":"binary"}}}},"Body_upload_resume_mock_assessment__token__resume_post":{"title":"Body_upload_resume_mock_assessment__token__resume_post","required":["file"],"type":"object","properties":{"file":{"title":"File","type":"string","format":"binary"},"captcha_token":{"title":"Captcha Token","type":"string","default":""}}},"ChatMessage":{"title":"ChatMessage","required":["role"],"type":"object","properties":{"role":{"title":"Role","type":"string"},"content":{"title":"Content","type":"string"},"tool_calls":{"title":"Tool Calls","type":"array","items":{"type":"object"}},"tool_call_id":{"title":"Tool Call Id","type":"string"},"name":{"title":"Name","type":"string"}}},"CodeData":{"title":"CodeData","required":["lang","code"],"type":"object","properties":{"lang":{"title":"Lang","type":"string"},"code":{"title":"Code","type":"string"}}},"CodingChallengeItem":{"title":"CodingChallengeItem","type":"object","properties":{"skill":{"title":"Skill","type":"string"},"count":{"title":"Count","type":"integer"}}},"CodingChallengeItemnew":{"title":"CodingChallengeItemnew","type":"object","properties":{"skill":{"title":"Skill","type":"string"},"count":{"title":"Count","type":"integer"}}},"Company":{"title":"Company","required":["id","email"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"email":{"title":"Email","type":"string"},"phone":{"title":"Phone","type":"string"},"company_name":{"title":"Company Name","type":"string"},"company_bio":{"title":"Company Bio","type":"string"},"subscription_plan":{"title":"Subscription Plan","type":"string"},"company_logo":{"title":"Company Logo","type":"string"},"company_video":{"title":"Company Video","type":"string"},"company_website":{"title":"Company Website","type":"string"},"address_line_1":{"title":"Address Line 1","type":"string"},"address_line_2":{"title":"Address Line 2","type":"string"},"city":{"title":"City","type":"string"},"postal_code":{"title":"Postal Code","type":"string"},"isDefaultRoleAdded":{"title":"Isdefaultroleadded","type":"boolean"},"inverted_logo":{"title":"Inverted Logo","type":"boolean"},"inverted_text":{"title":"Inverted Text","type":"boolean"},"theme_color":{"title":"Theme Color","type":"string"},"require_own_openai_key":{"title":"Require Own Openai Key","type":"boolean"},"openai_api_key":{"title":"Openai Api Key","type":"string"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"}}},"CompanyCreate":{"title":"CompanyCreate","required":["email"],"type":"object","properties":{"email":{"title":"Email","type":"string"},"phone":{"title":"Phone","type":"string"},"company_name":{"title":"Company Name","type":"string"},"company_bio":{"title":"Company Bio","type":"string"},"subscription_plan":{"title":"Subscription Plan","type":"string"},"company_logo":{"title":"Company Logo","type":"string"},"company_video":{"title":"Company Video","type":"string"},"company_website":{"title":"Company Website","type":"string"},"address_line_1":{"title":"Address Line 1","type":"string"},"address_line_2":{"title":"Address Line 2","type":"string"},"city":{"title":"City","type":"string"},"postal_code":{"title":"Postal Code","type":"string"}}},"CompanyThemeUpdate":{"title":"CompanyThemeUpdate","type":"object","properties":{"theme_color":{"title":"Theme Color","type":"string"},"text_theme_color":{"title":"Text Theme Color","type":"string"}}},"CompanyUpdate":{"title":"CompanyUpdate","required":["email"],"type":"object","properties":{"email":{"title":"Email","type":"string"},"phone":{"title":"Phone","type":"string"},"company_name":{"title":"Company Name","type":"string"},"company_bio":{"title":"Company Bio","type":"string"},"subscription_plan":{"title":"Subscription Plan","type":"string"},"company_logo":{"title":"Company Logo","type":"string"},"company_video":{"title":"Company Video","type":"string"},"company_website":{"title":"Company Website","type":"string"},"address_line_1":{"title":"Address Line 1","type":"string"},"address_line_2":{"title":"Address Line 2","type":"string"},"isDefaultRoleAdded":{"title":"Isdefaultroleadded","type":"boolean"},"inverted_logo":{"title":"Inverted Logo","type":"boolean"},"inverted_text":{"title":"Inverted Text","type":"boolean"},"city":{"title":"City","type":"string"},"postal_code":{"title":"Postal Code","type":"string"},"theme_color":{"title":"Theme Color","type":"string"}}},"CreateUser":{"title":"CreateUser","required":["email","role","name"],"type":"object","properties":{"password":{"title":"Password","type":"string"},"email":{"title":"Email","type":"string"},"role":{"title":"Role","type":"string"},"name":{"title":"Name","type":"string"},"company":{"title":"Company","type":"integer"},"loginlink":{"title":"Loginlink","type":"string"}}},"CreateUserForApiApp":{"title":"CreateUserForApiApp","required":["name","email","role"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"email":{"title":"Email","type":"string"},"role":{"title":"Role","type":"string"},"loginlink":{"title":"Loginlink","type":"string"},"permissions":{"title":"Permissions"}}},"CustomQuestion":{"title":"CustomQuestion","required":["id","queTitle","queType","isArchived","createdAt","updatedAt"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"queTitle":{"title":"Quetitle","type":"string"},"queType":{"title":"Quetype","type":"string"},"data":{"title":"Data"},"isArchived":{"title":"Isarchived","type":"boolean"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"CustomQuestionCreate":{"title":"CustomQuestionCreate","required":["queTitle","queType","isArchived"],"type":"object","properties":{"queTitle":{"title":"Quetitle","type":"string"},"queType":{"title":"Quetype","type":"string"},"data":{"title":"Data"},"isArchived":{"title":"Isarchived","type":"boolean"}}},"CustomQuestionModel":{"title":"CustomQuestionModel","required":["id","company_id","queTitle","queType","isArchived","data","createdAt","updatedAt"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"company_id":{"title":"Company Id","type":"integer"},"queTitle":{"title":"Quetitle","type":"string"},"queType":{"title":"Quetype","type":"string"},"isArchived":{"title":"Isarchived","type":"boolean"},"data":{"title":"Data","type":"object"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"CustomQuestionUpdate":{"title":"CustomQuestionUpdate","required":["id","queTitle","queType","isArchived"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"queTitle":{"title":"Quetitle","type":"string"},"queType":{"title":"Quetype","type":"string"},"isArchived":{"title":"Isarchived","type":"boolean"},"data":{"title":"Data"}}},"Data":{"title":"Data","type":"object","properties":{"skillCtrl":{"title":"Skillctrl","type":"array","items":{"type":"string"}},"customSkills":{"title":"Customskills","type":"array","items":{"type":"string"}},"skillCtrlwithwholedetails":{"title":"Skillctrlwithwholedetails","type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},"created_by":{"title":"Created By","type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},"updated_by":{"title":"Updated By","type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},"greenhouse_job_id":{"title":"Greenhouse Job Id","type":"string"},"is_draft":{"title":"Is Draft","type":"boolean","default":false},"template_id":{"title":"Template Id","type":"integer"},"location":{"title":"Location","type":"string"}}},"EmailReportRequest":{"title":"EmailReportRequest","required":["assessment_id","recipients"],"type":"object","properties":{"assessment_id":{"title":"Assessment Id","type":"integer"},"recipients":{"title":"Recipients","type":"array","items":{"type":"string"}},"note":{"title":"Note","type":"string"}}},"EvaluationMetricsRequest":{"title":"EvaluationMetricsRequest","required":["message","gpt_response"],"type":"object","properties":{"message":{"title":"Message","type":"string"},"gpt_response":{"title":"Gpt Response","type":"string"}}},"ForgetPassword":{"title":"ForgetPassword","required":["email"],"type":"object","properties":{"email":{"title":"Email","type":"string"},"select_email":{"title":"Select Email","type":"string"}}},"GenerateInvoiceRequest":{"title":"GenerateInvoiceRequest","required":["company_id","year","month"],"type":"object","properties":{"company_id":{"title":"Company Id","type":"integer"},"year":{"title":"Year","type":"integer"},"month":{"title":"Month","type":"integer"},"finalize_and_charge":{"title":"Finalize And Charge","type":"boolean","default":true}}},"GreenhouseApplicantRequest":{"title":"GreenhouseApplicantRequest","required":["greenhouseApplicantId"],"type":"object","properties":{"greenhouseApplicantId":{"title":"Greenhouseapplicantid","type":"string"}}},"GreenhouseData":{"title":"GreenhouseData","required":["greenhouse_applicant_id","greenhouse_job_id"],"type":"object","properties":{"greenhouse_applicant_id":{"title":"Greenhouse Applicant Id","type":"string"},"greenhouse_job_id":{"title":"Greenhouse Job Id","type":"string"}}},"HREmail":{"title":"HREmail","required":["email"],"type":"object","properties":{"email":{"title":"Email","type":"string"}}},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"InterviewConfig":{"title":"InterviewConfig","required":["role","skills","numQuestions"],"type":"object","properties":{"role":{"title":"Role","type":"string"},"skills":{"title":"Skills","type":"string"},"numQuestions":{"title":"Numquestions","type":"integer"}}},"InterviewContext":{"title":"InterviewContext","required":["candidate_name"],"type":"object","properties":{"candidate_name":{"title":"Candidate Name","type":"string"},"interview_focus":{"title":"Interview Focus","type":"string","default":"resume"},"focus_skill":{"title":"Focus Skill","type":"string","default":""},"focus_summary":{"title":"Focus Summary","type":"string","default":""},"resume_summary":{"title":"Resume Summary","type":"string","default":""},"skills":{"title":"Skills","type":"array","items":{"type":"string"}},"projects":{"title":"Projects","type":"array","items":{"type":"string"}},"education":{"title":"Education","type":"string","default":""},"experience":{"title":"Experience","type":"string","default":""},"current_role":{"title":"Current Role","type":"string","default":""},"target_role":{"title":"Target Role","type":"string","default":""},"strengths":{"title":"Strengths","type":"array","items":{"type":"string"}},"weaknesses":{"title":"Weaknesses","type":"array","items":{"type":"string"}},"interview_difficulty":{"title":"Interview Difficulty","type":"string","default":"intermediate"},"interview_duration":{"title":"Interview Duration","type":"integer","default":5},"interview_max_duration":{"title":"Interview Max Duration","type":"integer","default":6},"interview_guidelines":{"title":"Interview Guidelines","type":"array","items":{"type":"string"}}},"description":"The brief handed to the conversational agent. Facts only — never questions."},"Job":{"title":"Job","required":["id","title","description","requirement","data","createdAt","updatedAt","isClosed"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"company_id":{"title":"Company Id","type":"integer"},"company_name":{"title":"Company Name","type":"string"},"title":{"title":"Title","type":"string"},"description":{"title":"Description","type":"string"},"requirement":{"title":"Requirement","type":"string"},"data":{"$ref":"#/components/schemas/Data"},"author":{"title":"Author","type":"integer"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"},"isClosed":{"title":"Isclosed","type":"boolean"},"required_skills":{"title":"Required Skills","type":"string"}}},"JobCreate":{"title":"JobCreate","required":["data","isClosed"],"type":"object","properties":{"title":{"title":"Title","type":"string"},"description":{"title":"Description","type":"string"},"requirement":{"title":"Requirement","type":"string"},"data":{"$ref":"#/components/schemas/Data"},"author":{"title":"Author","type":"integer"},"isClosed":{"title":"Isclosed","type":"boolean"},"required_skills":{"title":"Required Skills","type":"string"}}},"JobUpdate":{"title":"JobUpdate","type":"object","properties":{"title":{"title":"Title","type":"string"},"description":{"title":"Description","type":"string"},"requirement":{"title":"Requirement","type":"string"},"data":{"$ref":"#/components/schemas/Data"},"author":{"title":"Author","type":"integer"},"isClosed":{"title":"Isclosed","type":"boolean"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"},"required_skills":{"title":"Required Skills","type":"string"}}},"KBAddDocRequest":{"title":"KBAddDocRequest","required":["kb_id","document_id"],"type":"object","properties":{"kb_id":{"title":"Kb Id","type":"integer"},"document_id":{"title":"Document Id","type":"integer"}}},"Message":{"title":"Message","required":["role","content"],"type":"object","properties":{"role":{"title":"Role","type":"string"},"content":{"title":"Content","type":"string"}}},"MockAssessmentAnswer":{"title":"MockAssessmentAnswer","required":["question_id","value"],"type":"object","properties":{"question_id":{"title":"Question Id","maxLength":64,"minLength":1,"type":"string"},"value":{"title":"Value","maxLength":20000,"type":"string"}}},"MockAssessmentConfig":{"title":"MockAssessmentConfig","required":["source","topic","question_count","estimated_minutes","difficulty","rules"],"type":"object","properties":{"source":{"title":"Source","type":"string"},"topic":{"title":"Topic","type":"string"},"question_count":{"title":"Question Count","type":"integer"},"estimated_minutes":{"title":"Estimated Minutes","type":"integer"},"difficulty":{"title":"Difficulty","type":"string"},"rules":{"title":"Rules","type":"array","items":{"type":"string"}}},"description":"What the assessment will look like. Shape comes from app.mock_assessment_config,\nwhich is where AI question generation will take over."},"MockAssessmentEmailReportOut":{"title":"MockAssessmentEmailReportOut","required":["sent","email"],"type":"object","properties":{"sent":{"title":"Sent","type":"boolean"},"email":{"title":"Email","type":"string"}},"description":"Result of emailing the stored report. The address is echoed back so the UI\ncan confirm where it went without ever asking the candidate to retype it."},"MockAssessmentEvaluation":{"title":"MockAssessmentEvaluation","required":["schema_version","engine","overall_score","summary","dimensions"],"type":"object","properties":{"schema_version":{"title":"Schema Version","type":"integer"},"engine":{"title":"Engine","type":"string"},"overall_score":{"title":"Overall Score","type":"integer"},"summary":{"title":"Summary","type":"string"},"dimensions":{"title":"Dimensions","type":"object"},"strengths":{"title":"Strengths","type":"array","items":{"type":"string"},"default":[]},"areas_of_improvement":{"title":"Areas Of Improvement","type":"array","items":{"type":"string"},"default":[]},"recommendations":{"title":"Recommendations","type":"array","items":{"type":"string"},"default":[]}}},"MockAssessmentEvaluationOut":{"title":"MockAssessmentEvaluationOut","required":["token","status"],"type":"object","properties":{"token":{"title":"Token","type":"string"},"status":{"title":"Status","type":"string"},"evaluation":{"$ref":"#/components/schemas/MockAssessmentEvaluation"}},"description":"Evaluation result plus its readiness. status is one of\nnot_started | pending | completed | failed."},"MockAssessmentQuestion":{"title":"MockAssessmentQuestion","required":["id","type","prompt"],"type":"object","properties":{"id":{"title":"Id","type":"string"},"type":{"title":"Type","type":"string"},"prompt":{"title":"Prompt","type":"string"},"options":{"title":"Options","type":"array","items":{"type":"string"}},"language":{"title":"Language","type":"string"}}},"MockAssessmentRegister":{"title":"MockAssessmentRegister","required":["name","email","phone"],"type":"object","properties":{"name":{"title":"Name","maxLength":120,"minLength":1,"type":"string"},"email":{"title":"Email","type":"string","format":"email"},"phone":{"title":"Phone","maxLength":40,"minLength":5,"type":"string"},"company":{"title":"Company","maxLength":160,"type":"string"},"role":{"title":"Role","maxLength":160,"type":"string"},"experience":{"title":"Experience","maxLength":80,"type":"string"},"resume_token":{"title":"Resume Token","type":"string"},"captcha_token":{"title":"Captcha Token","type":"string"}}},"MockAssessmentRegistration":{"title":"MockAssessmentRegistration","required":["id","token","name","email","createdAt"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"token":{"title":"Token","type":"string"},"name":{"title":"Name","type":"string"},"email":{"title":"Email","type":"string"},"phone":{"title":"Phone","type":"string"},"company":{"title":"Company","type":"string"},"role":{"title":"Role","type":"string"},"experience":{"title":"Experience","type":"string"},"education":{"title":"Education","type":"string"},"parsed_skills":{"title":"Parsed Skills","type":"array","items":{"type":"string"}},"hasResume":{"title":"Hasresume","type":"boolean","default":false},"skill":{"title":"Skill","type":"string"},"resumeUrl":{"title":"Resumeurl","type":"string"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"}},"description":"Returned only to the person who just registered — carries their own PII."},"MockAssessmentResumeParsed":{"title":"MockAssessmentResumeParsed","required":["resume_token","name","email","phone","role","company","experience","education","skills"],"type":"object","properties":{"resume_token":{"title":"Resume Token","type":"string"},"name":{"title":"Name","type":"string"},"email":{"title":"Email","type":"string"},"phone":{"title":"Phone","type":"string"},"role":{"title":"Role","type":"string"},"company":{"title":"Company","type":"string"},"experience":{"title":"Experience","type":"string"},"education":{"title":"Education","type":"string"},"skills":{"title":"Skills","type":"array","items":{"type":"string"}}},"description":"Returned by parse-resume. `resume_token` refers to the stored upload; the\nrest prefills the funnel. No PII gate — the token is unguessable and the\ncaller is the person who just uploaded their own resume."},"MockAssessmentSelection":{"title":"MockAssessmentSelection","required":["token"],"type":"object","properties":{"token":{"title":"Token","type":"string"},"skill":{"title":"Skill","type":"string"},"resumeUrl":{"title":"Resumeurl","type":"string"}},"description":"Response for the skill/resume endpoints. Deliberately carries no PII: the\ntoken is unguessable but these endpoints are public and unauthenticated."},"MockAssessmentSessionDetail":{"title":"MockAssessmentSessionDetail","required":["token","source","topic","question_count","estimated_minutes","difficulty","status","createdAt"],"type":"object","properties":{"token":{"title":"Token","type":"string"},"source":{"title":"Source","type":"string"},"topic":{"title":"Topic","type":"string"},"question_count":{"title":"Question Count","type":"integer"},"estimated_minutes":{"title":"Estimated Minutes","type":"integer"},"difficulty":{"title":"Difficulty","type":"string"},"status":{"title":"Status","type":"string"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"questions":{"title":"Questions","type":"array","items":{"$ref":"#/components/schemas/MockAssessmentQuestion"},"default":[]},"answers":{"title":"Answers","type":"object","default":{}},"started_at":{"title":"Started At","type":"string","format":"date-time"},"expires_at":{"title":"Expires At","type":"string","format":"date-time"},"submitted_at":{"title":"Submitted At","type":"string","format":"date-time"},"remaining_seconds":{"title":"Remaining Seconds","type":"integer","default":0},"expired":{"title":"Expired","type":"boolean","default":false}},"description":"The running assessment. `remaining_seconds` is computed server-side from\nexpires_at — the client never gets to decide how much time is left."},"MockAssessmentSessionOut":{"title":"MockAssessmentSessionOut","required":["token","source","topic","question_count","estimated_minutes","difficulty","status","createdAt"],"type":"object","properties":{"token":{"title":"Token","type":"string"},"source":{"title":"Source","type":"string"},"topic":{"title":"Topic","type":"string"},"question_count":{"title":"Question Count","type":"integer"},"estimated_minutes":{"title":"Estimated Minutes","type":"integer"},"difficulty":{"title":"Difficulty","type":"string"},"status":{"title":"Status","type":"string"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"}},"description":"A created attempt. Carries no PII — addressed publicly by its own token."},"MockAssessmentSkill":{"title":"MockAssessmentSkill","required":["skill"],"type":"object","properties":{"skill":{"title":"Skill","maxLength":80,"minLength":1,"type":"string"}}},"OpenAIKeyRequest":{"title":"OpenAIKeyRequest","required":["openai_api_key"],"type":"object","properties":{"openai_api_key":{"title":"Openai Api Key","type":"string"}}},"OpenAIModelRequest":{"title":"OpenAIModelRequest","required":["openai_model"],"type":"object","properties":{"openai_model":{"title":"Openai Model","type":"string"}}},"OrderItem":{"title":"OrderItem","required":["id","order","queType"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"order":{"title":"Order","type":"integer"},"queType":{"title":"Quetype","type":"string"}}},"OrderPayload":{"title":"OrderPayload","required":["templateId","order"],"type":"object","properties":{"templateId":{"title":"Templateid","type":"integer"},"order":{"title":"Order","type":"array","items":{"$ref":"#/components/schemas/OrderItem"}}}},"PartialComplianceData":{"title":"PartialComplianceData","required":["compliance_data"],"type":"object","properties":{"compliance_data":{"title":"Compliance Data","type":"object","additionalProperties":{"type":"boolean"}}}},"PartnerJobCreate":{"title":"PartnerJobCreate","required":["title"],"type":"object","properties":{"title":{"title":"Title","type":"string"},"description":{"title":"Description","type":"string","default":""},"location":{"title":"Location","type":"string"},"requirements":{"title":"Requirements","type":"string"},"p_job_id":{"title":"P Job Id","type":"string"}},"description":"Simplified job creation payload for partner API."},"PartnerQuestionCreate":{"title":"PartnerQuestionCreate","required":["template_id","queTitle"],"type":"object","properties":{"template_id":{"title":"Template Id","type":"integer"},"queTitle":{"title":"Quetitle","type":"string"},"queType":{"title":"Quetype","type":"string","default":"theory"},"data":{"title":"Data","type":"object","default":{}}},"description":"Simplified question creation payload for partner API."},"PartnerQuestionUpdate":{"title":"PartnerQuestionUpdate","type":"object","properties":{"template_id":{"title":"Template Id","type":"integer"},"queTitle":{"title":"Quetitle","type":"string"},"queType":{"title":"Quetype","type":"string"},"data":{"title":"Data","type":"object"}},"description":"All fields optional for PATCH-style update."},"PartnerTemplateCreate":{"title":"PartnerTemplateCreate","type":"object","properties":{"name":{"title":"Name","type":"string"},"time_allowed_for_each_question":{"title":"Time Allowed For Each Question","type":"integer","default":10},"assessment_type":{"title":"Assessment Type","type":"string","default":"both"},"is_coding_required":{"title":"Is Coding Required","type":"string","default":"no"},"no_of_coding_questions":{"title":"No Of Coding Questions","type":"integer","default":0},"no_of_questions":{"title":"No Of Questions","type":"integer","default":5},"coding_challenge_data":{"title":"Coding Challenge Data","type":"array","items":{"$ref":"#/components/schemas/CodingChallengeItemnew"},"default":[]}},"description":"Simplified template creation payload for partner API."},"PaymentResponse":{"title":"PaymentResponse","required":["id","invoice_id","company_id","subscription_plan","expiry_date","start_date","amount","status"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"invoice_id":{"title":"Invoice Id","type":"string"},"company_id":{"title":"Company Id","type":"integer"},"subscription_plan":{"$ref":"#/components/schemas/SubscriptionPlan"},"expiry_date":{"title":"Expiry Date","type":"string","format":"date-time"},"start_date":{"title":"Start Date","type":"string","format":"date-time"},"amount":{"title":"Amount","type":"integer"},"status":{"title":"Status","type":"string"},"created_at":{"title":"Created At","type":"string","format":"date-time"},"updated_at":{"title":"Updated At","type":"string","format":"date-time"},"company_details":{"title":"Company Details"}}},"Permission":{"title":"Permission","required":["label","name","read","write"],"type":"object","properties":{"label":{"title":"Label","type":"string"},"name":{"title":"Name","type":"string"},"read":{"title":"Read","type":"boolean"},"write":{"title":"Write","type":"boolean"}}},"PortalSessionRequest":{"title":"PortalSessionRequest","type":"object","properties":{"return_url":{"title":"Return Url","type":"string"}}},"PrepareAssessmentPayload":{"title":"PrepareAssessmentPayload","required":["job_id","job_title","no_of_theory_questions","time_allowed_for_each_question","is_coding_challenge_required","assessment_type","required_skills"],"type":"object","properties":{"job_id":{"title":"Job Id","type":"string"},"job_title":{"title":"Job Title","type":"string"},"no_of_theory_questions":{"title":"No Of Theory Questions","type":"integer"},"time_allowed_for_each_question":{"title":"Time Allowed For Each Question","type":"integer"},"is_coding_challenge_required":{"title":"Is Coding Challenge Required","type":"string"},"coding_challenge_data":{"title":"Coding Challenge Data","type":"array","items":{"$ref":"#/components/schemas/CodingChallengeItemnew"},"default":[]},"total_time_allowed_for_coding_challenge":{"title":"Total Time Allowed For Coding Challenge","type":"integer","default":0},"assessment_type":{"title":"Assessment Type","type":"string"},"required_skills":{"title":"Required Skills","type":"array","items":{"type":"string"}}}},"Question":{"title":"Question","required":["id","queTitle","templateId","isArchived","isPractiseQuestion","createdAt","updatedAt"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"queTitle":{"title":"Quetitle","type":"string"},"templateId":{"title":"Templateid","type":"string"},"data":{"title":"Data"},"isArchived":{"title":"Isarchived","type":"boolean"},"isPractiseQuestion":{"title":"Ispractisequestion","type":"boolean"},"topEmbeddingsText":{"title":"Topembeddingstext","type":"string"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"QuestionCreate":{"title":"QuestionCreate","required":["queTitle","templateId"],"type":"object","properties":{"queTitle":{"title":"Quetitle","type":"string"},"templateId":{"title":"Templateid","type":"string"},"data":{"title":"Data","default":{}},"isArchived":{"title":"Isarchived","type":"boolean","default":false},"isPractiseQuestion":{"title":"Ispractisequestion","type":"boolean","default":false},"topEmbeddingsText":{"title":"Topembeddingstext","type":"string","default":""}}},"QuestionGenerationPayload":{"title":"QuestionGenerationPayload","required":["selected_technologies","no_of_que_to_generate"],"type":"object","properties":{"selected_technologies":{"title":"Selected Technologies","type":"string"},"no_of_que_to_generate":{"title":"No Of Que To Generate","type":"integer"}}},"QuestionModel":{"title":"QuestionModel","required":["id","company_id","queTitle","templateId","isArchived","data","isPractiseQuestion","createdAt","updatedAt"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"company_id":{"title":"Company Id","type":"integer"},"queTitle":{"title":"Quetitle","type":"string"},"templateId":{"title":"Templateid","type":"string"},"isArchived":{"title":"Isarchived","type":"boolean"},"data":{"title":"Data","type":"object"},"isPractiseQuestion":{"title":"Ispractisequestion","type":"boolean"},"topEmbeddingsText":{"title":"Topembeddingstext","type":"string"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"QuestionRequest":{"title":"QuestionRequest","required":["question"],"type":"object","properties":{"question":{"title":"Question","type":"string"},"CkmPastActivity_id":{"title":"Ckmpastactivity Id","type":"integer"}}},"QuestionType":{"title":"QuestionType","required":["id","title","isArchived","createdAt","updatedAt"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"title":{"title":"Title","type":"string"},"data":{"title":"Data"},"isArchived":{"title":"Isarchived","type":"boolean"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"QuestionTypeCreate":{"title":"QuestionTypeCreate","required":["title","isArchived"],"type":"object","properties":{"title":{"title":"Title","type":"string"},"data":{"title":"Data"},"isArchived":{"title":"Isarchived","type":"boolean"}}},"QuestionUpdate":{"title":"QuestionUpdate","required":["queTitle","templateId","isArchived","createdAt","updatedAt"],"type":"object","properties":{"queTitle":{"title":"Quetitle","type":"string"},"templateId":{"title":"Templateid","type":"string"},"isArchived":{"title":"Isarchived","type":"boolean"},"data":{"title":"Data"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"ResetPassword":{"title":"ResetPassword","required":["email","token","new_password"],"type":"object","properties":{"email":{"title":"Email","type":"string"},"token":{"title":"Token","type":"integer"},"new_password":{"title":"New Password","type":"string"}}},"Result":{"title":"Result","required":["answer","question","result"],"type":"object","properties":{"answer":{"title":"Answer","type":"string"},"question":{"title":"Question","type":"string"},"result":{"title":"Result","type":"string"},"evaluation_metrics":{"title":"Evaluation Metrics","type":"string","default":""},"evaluator_remark":{"title":"Evaluator Remark","type":"string","default":""},"human_remark":{"title":"Human Remark","type":"string"},"support_ticket":{"title":"Support Ticket","type":"string"}}},"Role":{"title":"Role","required":["id","name","company"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"name":{"title":"Name","type":"string"},"company":{"title":"Company","type":"integer"},"data":{"title":"Data","type":"array","items":{"$ref":"#/components/schemas/Permission"}},"status":{"title":"Status","type":"string"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"RoleCreate":{"title":"RoleCreate","required":["name"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"data":{"title":"Data"}}},"RoleUpdate":{"title":"RoleUpdate","required":["name"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"data":{"title":"Data"},"status":{"title":"Status","type":"string"}}},"RunBillingRequest":{"title":"RunBillingRequest","type":"object","properties":{"year":{"title":"Year","type":"integer"},"month":{"title":"Month","type":"integer"}}},"SelectedUsersPayload":{"title":"SelectedUsersPayload","required":["userId","emailNotificationType"],"type":"object","properties":{"userId":{"title":"Userid","type":"integer"},"emailNotificationType":{"title":"Emailnotificationtype","type":"string"}}},"SetupSessionRequest":{"title":"SetupSessionRequest","type":"object","properties":{"success_url":{"title":"Success Url","type":"string"},"cancel_url":{"title":"Cancel Url","type":"string"}}},"ShareDocumentRequest":{"title":"ShareDocumentRequest","required":["notebookId","data"],"type":"object","properties":{"notebookId":{"title":"Notebookid","type":"integer"},"data":{"title":"Data","type":"object"}}},"Signup":{"title":"Signup","required":["password","email"],"type":"object","properties":{"password":{"title":"Password","type":"string"},"email":{"title":"Email","type":"string"},"username":{"title":"Username","type":"string"},"phone":{"title":"Phone","type":"string"},"company_name":{"title":"Company Name","type":"string"},"company_website":{"title":"Company Website","type":"string"},"address_line_1":{"title":"Address Line 1","type":"string"},"address_line_2":{"title":"Address Line 2","type":"string"},"city":{"title":"City","type":"string"},"postal_code":{"title":"Postal Code","type":"string"},"captcha_token":{"title":"Captcha Token","type":"string"}}},"SpeedEntry":{"title":"SpeedEntry","type":"object","properties":{"speed":{"title":"Speed","type":"number"},"id":{"title":"Id","type":"integer"}}},"StreamRequest":{"title":"StreamRequest","required":["source_url"],"type":"object","properties":{"source_url":{"title":"Source Url","type":"string"}}},"StripePaymentIntent":{"title":"StripePaymentIntent","required":["amount"],"type":"object","properties":{"amount":{"title":"Amount","type":"integer"}}},"StripePaymentSuccessPost":{"title":"StripePaymentSuccessPost","required":["invoice_id","subscription_plan","amount","status"],"type":"object","properties":{"invoice_id":{"title":"Invoice Id","type":"string"},"subscription_plan":{"title":"Subscription Plan","type":"integer"},"amount":{"title":"Amount","type":"integer"},"status":{"title":"Status","type":"string"},"data":{"title":"Data"}}},"SubmitFormRequest":{"title":"SubmitFormRequest","required":["templateId","selectedQuestionIds"],"type":"object","properties":{"templateId":{"title":"Templateid","type":"integer"},"selectedQuestionIds":{"title":"Selectedquestionids","type":"array","items":{"type":"integer"}}}},"SubscriptionItemCreate":{"title":"SubscriptionItemCreate","required":["name","type"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"type":{"title":"Type","type":"string"}}},"SubscriptionItemResponse":{"title":"SubscriptionItemResponse","required":["id","name","type"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"name":{"title":"Name","type":"string"},"type":{"title":"Type","type":"string"}}},"SubscriptionPlan":{"title":"SubscriptionPlan","required":["id","name","monthly_price","annual_price","discount_percentage","discount_days","is_popular"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"name":{"title":"Name","type":"string"},"monthly_price":{"title":"Monthly Price","type":"integer"},"annual_price":{"title":"Annual Price","type":"integer"},"discount_percentage":{"title":"Discount Percentage","type":"integer"},"discount_days":{"title":"Discount Days","type":"integer"},"is_popular":{"title":"Is Popular","type":"boolean"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"SubscriptionPlanCreate":{"title":"SubscriptionPlanCreate","required":["name","monthly_price","annual_price","discount_percentage","discount_days","subscription_items"],"type":"object","properties":{"name":{"title":"Name","type":"string"},"monthly_price":{"title":"Monthly Price","type":"integer"},"annual_price":{"title":"Annual Price","type":"integer"},"discount_percentage":{"title":"Discount Percentage","type":"integer"},"discount_days":{"title":"Discount Days","type":"integer"},"subscription_items":{"title":"Subscription Items","type":"object"},"is_popular":{"title":"Is Popular","type":"boolean"}}},"SubscriptionPlanResponse":{"title":"SubscriptionPlanResponse","required":["id","name","monthly_price","annual_price","discount_percentage","discount_days","is_popular","items","created_at","updated_at"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"name":{"title":"Name","type":"string"},"monthly_price":{"title":"Monthly Price","type":"integer"},"annual_price":{"title":"Annual Price","type":"integer"},"discount_percentage":{"title":"Discount Percentage","type":"integer"},"discount_days":{"title":"Discount Days","type":"integer"},"is_popular":{"title":"Is Popular","type":"boolean"},"items":{"title":"Items","type":"object","additionalProperties":{"type":"string"}},"created_at":{"title":"Created At","type":"string","format":"date-time"},"updated_at":{"title":"Updated At","type":"string","format":"date-time"}}},"SubscriptionRequest":{"title":"SubscriptionRequest","required":["app_id"],"type":"object","properties":{"app_id":{"title":"App Id","type":"string"}}},"Support":{"title":"Support","required":["id","email","type","status","data","innerHTML","conversation_history"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"assessment_id":{"title":"Assessment Id","type":"integer"},"applicant_id":{"title":"Applicant Id","type":"integer"},"email":{"title":"Email","type":"string"},"company_id":{"title":"Company Id","type":"integer"},"type":{"title":"Type","type":"string"},"status":{"title":"Status","type":"string"},"data":{"title":"Data","type":"string"},"innerHTML":{"title":"Innerhtml","type":"string"},"conversation_history":{"title":"Conversation History","type":"string"},"company_name":{"title":"Company Name","type":"string"},"created_at":{"title":"Created At","type":"string","format":"date-time"},"updated_at":{"title":"Updated At","type":"string","format":"date-time"},"applicant_name":{"title":"Applicant Name","type":"string"},"applicant_email":{"title":"Applicant Email","type":"string"}}},"SupportCreate":{"title":"SupportCreate","required":["type","data","status","innerHTML","conversation_history"],"type":"object","properties":{"type":{"title":"Type","type":"string"},"assessment_id":{"title":"Assessment Id","type":"integer"},"applicant_id":{"title":"Applicant Id","type":"integer"},"data":{"title":"Data","type":"string"},"status":{"title":"Status","type":"string"},"innerHTML":{"title":"Innerhtml","type":"string"},"conversation_history":{"title":"Conversation History","type":"string"}}},"SupportUpdate":{"title":"SupportUpdate","required":["status","conversation_history"],"type":"object","properties":{"status":{"title":"Status","type":"string"},"conversation_history":{"title":"Conversation History","type":"string"}}},"Template":{"title":"Template","required":["id","createdAt","updatedAt"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"company_id":{"title":"Company Id","type":"integer"},"templateName":{"title":"Templatename","type":"string"},"category":{"title":"Category","type":"string"},"subCategory":{"title":"Subcategory","type":"string"},"noOfQue":{"title":"Noofque","type":"string"},"data":{"title":"Data"},"isArchived":{"title":"Isarchived","type":"boolean","default":false},"per_question_time":{"title":"Per Question Time","type":"integer"},"is_practice_allowed":{"title":"Is Practice Allowed","type":"boolean","default":false},"is_typing_allowed":{"title":"Is Typing Allowed","type":"string"},"is_coding_required":{"title":"Is Coding Required","type":"string"},"no_of_coding_questions":{"title":"No Of Coding Questions","type":"integer"},"coding_challenge_data":{"title":"Coding Challenge Data"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"TemplateCreate":{"title":"TemplateCreate","required":["subCategory","isArchived","is_practice_allowed"],"type":"object","properties":{"templateName":{"title":"Templatename","type":"string"},"category":{"title":"Category","type":"string"},"subCategory":{"title":"Subcategory","type":"string"},"noOfQue":{"title":"Noofque","type":"string"},"data":{"title":"Data"},"isArchived":{"title":"Isarchived","type":"boolean"},"per_question_time":{"title":"Per Question Time","type":"integer"},"is_practice_allowed":{"title":"Is Practice Allowed","type":"boolean"},"is_typing_allowed":{"title":"Is Typing Allowed","type":"string"},"is_coding_required":{"title":"Is Coding Required","type":"string"},"no_of_coding_questions":{"title":"No Of Coding Questions","type":"integer"},"coding_challenge_data":{"title":"Coding Challenge Data","type":"array","items":{"$ref":"#/components/schemas/CodingChallengeItem"}}}},"TemplateUpdate":{"title":"TemplateUpdate","required":["isArchived","is_practice_allowed"],"type":"object","properties":{"templateName":{"title":"Templatename","type":"string"},"category":{"title":"Category","type":"string"},"subCategory":{"title":"Subcategory","type":"string"},"noOfQue":{"title":"Noofque","type":"string"},"per_question_time":{"title":"Per Question Time","type":"string"},"isArchived":{"title":"Isarchived","type":"boolean"},"data":{"title":"Data"},"is_practice_allowed":{"title":"Is Practice Allowed","type":"boolean"},"is_typing_allowed":{"title":"Is Typing Allowed","type":"string"},"is_coding_required":{"title":"Is Coding Required","type":"string"},"no_of_coding_questions":{"title":"No Of Coding Questions","type":"integer"},"coding_challenge_data":{"title":"Coding Challenge Data","type":"array","items":{"$ref":"#/components/schemas/CodingChallengeItem"}}}},"TestAIConnectionRequest":{"title":"TestAIConnectionRequest","required":["api_key"],"type":"object","properties":{"api_key":{"title":"Api Key","type":"string"},"base_url":{"title":"Base Url","type":"string","default":""}}},"ThreadUpdateRequest":{"title":"ThreadUpdateRequest","required":["title"],"type":"object","properties":{"title":{"title":"Title","type":"string"}}},"TokenPurchaseRequest":{"title":"TokenPurchaseRequest","required":["totalAmountPaid"],"type":"object","properties":{"resumeTokens":{"title":"Resumetokens","type":"integer","default":0},"assessmentTokens":{"title":"Assessmenttokens","type":"integer","default":0},"totalAmountPaid":{"title":"Totalamountpaid","type":"number"}}},"Transcribe":{"title":"Transcribe","required":["audio_file_url","assessmentId","uuid"],"type":"object","properties":{"audio_file_url":{"title":"Audio File Url","type":"string"},"assessmentId":{"title":"Assessmentid","type":"integer"},"uuid":{"title":"Uuid","type":"string"}}},"Transcript":{"title":"Transcript","type":"object","properties":{"time":{"title":"Time","type":"string"},"user":{"title":"User","type":"string"},"content":{"title":"Content","type":"string"},"uuid":{"title":"Uuid","type":"string"},"mp3_link":{"title":"Mp3 Link","type":"string"},"que_type":{"title":"Que Type","type":"string"},"que_no":{"title":"Que No","type":"string"}}},"TranscriptTurn":{"title":"TranscriptTurn","required":["role"],"type":"object","properties":{"role":{"title":"Role","type":"string"},"message":{"title":"Message","type":"string","default":""}},"description":"One turn. `role` is 'interviewer' or 'candidate'."},"TryNowRequest":{"title":"TryNowRequest","required":["id"],"type":"object","properties":{"id":{"title":"Id","type":"integer"}}},"UpdateUser":{"title":"UpdateUser","type":"object","properties":{"alternate_email":{"title":"Alternate Email","type":"string"},"password":{"title":"Password","type":"string"},"name":{"title":"Name","type":"string"},"profile_picture":{"title":"Profile Picture","type":"string"},"status":{"title":"Status","type":"string"},"role":{"title":"Role","type":"string"}}},"Upload":{"title":"Upload","required":["id","email","url","createdAt","updatedAt"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"email":{"title":"Email","type":"string"},"url":{"title":"Url","type":"string"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"User":{"title":"User","type":"object","properties":{"id":{"title":"Id","type":"integer"},"company":{"title":"Company","type":"integer"},"email":{"title":"Email","type":"string"},"alternate_email":{"title":"Alternate Email","type":"string"},"name":{"title":"Name","type":"string"},"profile_picture":{"title":"Profile Picture","type":"string"},"role":{"title":"Role","type":"string"},"status":{"title":"Status","type":"string"},"last_login":{"title":"Last Login","type":"string","format":"date-time"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"}}},"UserEmailNotification":{"title":"UserEmailNotification","type":"object","properties":{"id":{"title":"Id","type":"integer"},"email_notification_type":{"title":"Email Notification Type","type":"string"}}},"Users":{"title":"Users","type":"object","properties":{"id":{"title":"Id","type":"integer"},"company":{"title":"Company","type":"integer"},"email":{"title":"Email","type":"string"},"alternate_email":{"title":"Alternate Email","type":"string"},"name":{"title":"Name","type":"string"},"profile_picture":{"title":"Profile Picture","type":"string"},"role":{"title":"Role","type":"string"},"status":{"title":"Status","type":"string"},"last_login":{"title":"Last Login","type":"string","format":"date-time"},"createdAt":{"title":"Createdat","type":"string","format":"date-time"},"updatedAt":{"title":"Updatedat","type":"string","format":"date-time"},"email_notifications":{"title":"Email Notifications","type":"array","items":{"$ref":"#/components/schemas/UserEmailNotification"},"default":[]}}},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"anyOf":[{"type":"string"},{"type":"integer"}]}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}},"VerifyAndEnableAuthenticator":{"title":"VerifyAndEnableAuthenticator","required":["mfa_code"],"type":"object","properties":{"mfa_code":{"title":"Mfa Code","type":"integer"}}},"VerifyOTP":{"title":"VerifyOTP","required":["email","token"],"type":"object","properties":{"email":{"title":"Email","type":"string"},"token":{"title":"Token","type":"integer"}}},"Visitor":{"title":"Visitor","required":["email"],"type":"object","properties":{"email":{"title":"Email","type":"string"},"username":{"title":"Username","type":"string"},"phone":{"title":"Phone","type":"string"},"company_name":{"title":"Company Name","type":"string"},"company_website":{"title":"Company Website","type":"string"},"address_line_1":{"title":"Address Line 1","type":"string"},"address_line_2":{"title":"Address Line 2","type":"string"},"city":{"title":"City","type":"string"},"postal_code":{"title":"Postal Code","type":"string"}}},"VoiceCompleteIn":{"title":"VoiceCompleteIn","required":["company_id"],"type":"object","properties":{"conversation_id":{"title":"Conversation Id","type":"string","default":""},"company_id":{"title":"Company Id","type":"integer"},"applicant_id":{"title":"Applicant Id","type":"integer"},"anticheat":{"title":"Anticheat","type":"object"}}},"VoiceInterviewEmailOut":{"title":"VoiceInterviewEmailOut","required":["sent","email"],"type":"object","properties":{"sent":{"title":"Sent","type":"boolean"},"email":{"title":"Email","type":"string"}}},"VoiceInterviewEndOut":{"title":"VoiceInterviewEndOut","required":["interview_id","status","turns_stored","report_status"],"type":"object","properties":{"interview_id":{"title":"Interview Id","type":"string"},"status":{"title":"Status","type":"string"},"turns_stored":{"title":"Turns Stored","type":"integer"},"report_status":{"title":"Report Status","type":"string"}}},"VoiceInterviewReport":{"title":"VoiceInterviewReport","required":["engine"],"type":"object","properties":{"schema_version":{"title":"Schema Version","type":"integer","default":1},"engine":{"title":"Engine","type":"string"},"overall_score":{"title":"Overall Score","type":"integer","default":0},"technical_knowledge":{"title":"Technical Knowledge","type":"integer","default":0},"communication":{"title":"Communication","type":"integer","default":0},"confidence":{"title":"Confidence","type":"integer","default":0},"problem_solving":{"title":"Problem Solving","type":"integer","default":0},"project_understanding":{"title":"Project Understanding","type":"integer","default":0},"summary":{"title":"Summary","type":"string","default":""},"strengths":{"title":"Strengths","type":"array","items":{"type":"string"}},"weaknesses":{"title":"Weaknesses","type":"array","items":{"type":"string"}},"recommendations":{"title":"Recommendations","type":"array","items":{"type":"string"}},"interview_duration":{"title":"Interview Duration","type":"integer","default":0}},"description":"The voice report. Deliberately its own shape — NOT the MCQ evaluation."},"VoiceInterviewReportOut":{"title":"VoiceInterviewReportOut","required":["interview_id","status","report_status"],"type":"object","properties":{"interview_id":{"title":"Interview Id","type":"string"},"status":{"title":"Status","type":"string"},"report_status":{"title":"Report Status","type":"string"},"candidate_name":{"title":"Candidate Name","type":"string","default":""},"report":{"$ref":"#/components/schemas/VoiceInterviewReport"},"transcript":{"title":"Transcript","type":"array","items":{"$ref":"#/components/schemas/TranscriptTurn"}}}},"VoiceInterviewStartOut":{"title":"VoiceInterviewStartOut","required":["interview_id","session_token","interview_context","status"],"type":"object","properties":{"interview_id":{"title":"Interview Id","type":"string"},"session_token":{"title":"Session Token","type":"string"},"interview_context":{"$ref":"#/components/schemas/InterviewContext"},"status":{"title":"Status","type":"string"},"provider":{"title":"Provider","type":"string","default":"mock"},"connection":{"title":"Connection","type":"object"}}},"VoiceInterviewStatusOut":{"title":"VoiceInterviewStatusOut","required":["interview_id","status","report_status"],"type":"object","properties":{"interview_id":{"title":"Interview Id","type":"string"},"status":{"title":"Status","type":"string"},"report_status":{"title":"Report Status","type":"string"},"has_transcript":{"title":"Has Transcript","type":"boolean","default":false},"started_at":{"title":"Started At","type":"string"},"completed_at":{"title":"Completed At","type":"string"}}},"VoiceInterviewTranscriptOut":{"title":"VoiceInterviewTranscriptOut","required":["interview_id","status"],"type":"object","properties":{"interview_id":{"title":"Interview Id","type":"string"},"status":{"title":"Status","type":"string"},"transcript":{"title":"Transcript","type":"array","items":{"$ref":"#/components/schemas/TranscriptTurn"}}}},"VoiceStartOut":{"title":"VoiceStartOut","required":["provider","agent_id","signed_url","dynamic_variables"],"type":"object","properties":{"provider":{"title":"Provider","type":"string"},"agent_id":{"title":"Agent Id","type":"string"},"signed_url":{"title":"Signed Url","type":"string"},"dynamic_variables":{"title":"Dynamic Variables","type":"object","additionalProperties":{"type":"string"}},"mock_session_id":{"title":"Mock Session Id","type":"string"}}},"app__api__routers__did_avatar__ChatRequest":{"title":"ChatRequest","required":["text"],"type":"object","properties":{"stream_id":{"title":"Stream Id","type":"string"},"text":{"title":"Text","type":"string"},"session_id":{"title":"Session Id","type":"string"}}},"app__api__routers__new_ckm__ChatRequest":{"title":"ChatRequest","required":["history","message","kb_id"],"type":"object","properties":{"history":{"title":"History","type":"array","items":{"$ref":"#/components/schemas/Message"}},"message":{"title":"Message","type":"string"},"kb_id":{"title":"Kb Id","type":"integer"}}},"app__copilot__router__ChatRequest":{"title":"ChatRequest","required":["messages"],"type":"object","properties":{"messages":{"title":"Messages","type":"array","items":{"$ref":"#/components/schemas/ChatMessage"}},"thread_id":{"title":"Thread Id","type":"string"}}},"data_from_frontend":{"title":"data_from_frontend","required":["id","log_data"],"type":"object","properties":{"id":{"title":"Id","type":"integer"},"log_data":{"title":"Log Data","type":"object"}}},"reomveCusQueFromTemplateRequest":{"title":"reomveCusQueFromTemplateRequest","required":["templateId","customQueId"],"type":"object","properties":{"templateId":{"title":"Templateid","type":"integer"},"customQueId":{"title":"Customqueid","type":"integer"}}},"update_assessment_payload":{"title":"update_assessment_payload","required":["job_id","job_title","no_of_theory_questions","time_allowed_for_each_question","is_coding_challenge_required","assessment_type","required_skills"],"type":"object","properties":{"job_id":{"title":"Job Id","type":"string"},"job_title":{"title":"Job Title","type":"string"},"no_of_theory_questions":{"title":"No Of Theory Questions","type":"integer"},"time_allowed_for_each_question":{"title":"Time Allowed For Each Question","type":"integer"},"is_coding_challenge_required":{"title":"Is Coding Challenge Required","type":"string"},"coding_challenge_data":{"title":"Coding Challenge Data","type":"array","items":{"$ref":"#/components/schemas/CodingChallengeItemnew"},"default":[]},"total_time_allowed_for_coding_challenge":{"title":"Total Time Allowed For Coding Challenge","type":"integer","default":0},"assessment_type":{"title":"Assessment Type","type":"string"},"required_skills":{"title":"Required Skills","type":"array","items":{"type":"string"}}}}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key with prefix. Example: `ApiKey 1a2b3c...`"}}},"servers":[{"url":"https://hr.cocolevio.com/api","description":"Current host (hr.cocolevio.com)"},{"url":"https://hr-qa.cocolevio.com/api","description":"QA"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"API keys","description":"Issue and retrieve API keys. These two endpoints require a browser session (not the `Authorization: ApiKey` header) — typically called from the company admin's dashboard."},{"name":"Jobs","description":"Create, list, and manage job postings. Jobs are the top-level container for recruitment — candidates apply to jobs, and templates are attached to jobs to define the assessment format."},{"name":"Templates","description":"Create, list, and manage reusable assessment templates. Templates define the question set, timing, answer modes, and coding challenge settings for an assessment."},{"name":"Questions","description":"Create, list, and manage questions within templates. Build custom question libraries or regenerate AI-powered questions based on skills."},{"name":"Skills & Question Library","description":"Browse the catalogue of supported skills/technologies and preview AI-generated questions before committing to an assessment."},{"name":"Assessments","description":"Create, update, and delete assessments. A single `prepare_assessment` call creates the underlying job, template, and AI-generated theory questions in one transaction."},{"name":"Applicants & Reports","description":"Add candidates against an assessment, list applicants visible to your company, and fetch the AI evaluation report once a candidate completes their test."},{"name":"Resume parsing","description":"Resume extraction endpoints. `POST /apikey/p-parse-resume-contact` — fast heuristic extraction of name, email, and phone from a PDF (no AI, no tokens). `POST /apikey/p-resume-parsing` — AI-powered extraction of skills, experience, and qualifications (consumes 1 resume token)."}]}