---
title: "Create Evaluation"
method: POST
path: "/api/evaluations"
tags: ["Evaluations"]
---

# Create Evaluation

`POST /api/evaluations`

## Request

- Base URL: `https://api.thebetterhire.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.thebetterhire.ai/api/evaluations`
- Auth: HTTP bearer

Create a human evaluation. evaluator_type is forced to 'human' and
evaluator_user_id comes from the token (the old route used the NextAuth
session).

## Request body

- EvaluationCreate: POST body. Required set mirrors the old route (interview_id, application_id, overall_rating, recommendation). overall_rating is a required int so 0 is accepted but omission is rejected — matching the old `=== undefined` check. evaluator_type/evaluator_user_id are server-set.
  - `interview_id` string, required
  - `application_id` string, required
  - `interview_stage_id` string, nullable
  - `overall_rating` integer, required
  - `competency_scores` unknown
  - `feedback_text` string, nullable
  - `strengths` string[], nullable
  - `weaknesses` string[], nullable
  - `recommendation` string, required
  - `evidence` unknown

## Response `201`

Successful Response

- EvaluationRow: Full evaluations row (SELECT * / RETURNING *). Every column declared so nothing silently drops when a column is added.
  - `id` string, required
  - `organization_id` string, required
  - `interview_id` string, required
  - `application_id` string, nullable
  - `interview_stage_id` string, nullable
  - `evaluator_type` string, nullable
  - `evaluator_user_id` string, nullable
  - `evaluator_name` string, nullable
  - `evaluator_model` string, nullable
  - `overall_rating` integer, nullable
  - `competency_scores` unknown
  - `feedback_text` string, nullable
  - `strengths` string[], nullable
  - `weaknesses` string[], nullable
  - `key_highlights` string[], nullable
  - `recommendation` string, nullable
  - `recommendation_reasoning` string, nullable
  - `evidence` unknown
  - `created_at` string, date-time, nullable
  - `updated_at` string, date-time, nullable
  - `deleted_at` string, date-time, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api.md) · [All operations](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api/revisions/c8ad03e900ea?raw)
