Skip to main content
Use Scale to score content against a rubric you define. You provide five level descriptions — what 0 through 4 mean for your use case (severity, quality, risk, satisfaction, and so on). Sage always expects exactly five integer levels (04); the labels are not built in. Subsets, sparse scales, or any other level values are rejected with HTTP 400.

Request

{
  "content": "Candidate explained our product roadmap clearly but struggled to answer questions about database scaling tradeoffs.",
  "question": {
    "id": "interview_score",
    "kind": "scale",
    "instructions": "How strong was this candidate in the technical interview?",
    "levels": [
      {"level": 0, "description": "Not qualified — fundamental gaps in required skills"},
      {"level": 1, "description": "Weak — significant concerns about core competencies"},
      {"level": 2, "description": "Mixed — some strengths but notable gaps remain"},
      {"level": 3, "description": "Solid — meets the bar with minor areas to probe"},
      {"level": 4, "description": "Strong hire — clearly exceeds expectations for the role"}
    ]
  }
}

Response

{
  "id": "interview_score",
  "kind": "scale",
  "result": { "expectation": 2.4, "confidence": 0.71 },
  "meta": { "model": "levanto-sage-v0.5", "latency_ms": 79.8 }
}

Fields

FieldDescription
expectationExpected level on the rubric
confidenceHow peaked the level distribution is (independent of the mean)
Always send all five levels, 0 through 4. No sparse rubrics, no alternate ranges, no fewer or more levels. Each level must be a distinct integer in that set. See Limits for the full per-kind bounds and Errors for the rejection message.