---
name: jagent-graders
description: Grade essays against a rubric and check resumes against a job posting with calibrated scores from the Jagent API (the Jev judgment model). Use when the user asks to grade, score, mark or evaluate an essay, personal statement, SAT essay or a class set of papers, to check a resume against a job description, or to get a yes/no probability or an A/B comparison about a piece of text.
---

# Jagent graders

Jagent runs Jev, a judgment model from TypeSafe AI that answers typed questions about a text with calibrated probabilities. It does not generate text: it grades, scores and compares. Use it when the user wants a measurement, and do the writing yourself.

## Setup

Requests need an API key in the environment:

```bash
export JAGENT_API_KEY=jv_live_...   # from https://jev-agent.com/api-access
```

If `JAGENT_API_KEY` is not set, tell the user to get a key at https://jev-agent.com/api-access. Do not invent one.

Every call spends credits from the key's balance: 1 credit per 1,000 input tokens, charged after the call. A 400-word essay is about 2 credits. Failed calls are not charged. HTTP 402 means the balance is empty: point the user to https://jev-agent.com/plans.

## Grade an essay

```bash
curl -s https://jev-agent.com/api/v1/tools/grade \
  -H "Authorization: Bearer $JAGENT_API_KEY" -H "content-type: application/json" \
  -d @- <<'JSON'
{ "rubric": "essay", "level": "high school",
  "assignment": "Argue whether high schools should start later",
  "essay": "…the essay text…" }
JSON
```

- `rubric`: `essay` (six criteria, letter grade; `level` is `middle school`, `high school` or `college`), `common-app` (personal statement; `prompt` 1-7), `sat` (SAT School Day essay, Reading/Analysis/Writing each 1-4; send the `passage`), or `custom`.
- `custom` takes the user's rubric: `"custom": { "criteria": [{ "name": "Evidence", "description": "Supports the claim with specific evidence" }], "points": 4 }`, and a batch: `"submissions": [{ "name": "Student A", "text": "…" }]` (up to 30).

## Check a resume

```bash
curl -s https://jev-agent.com/api/v1/tools/resume-check \
  -H "Authorization: Bearer $JAGENT_API_KEY" -H "content-type: application/json" \
  -d '{ "resume": "…", "job_description": "…" }'
```

Returns a 0-100 match score, keywords found and missing (matched literally, as an ATS search matches), format checks, the level fit and the probability a recruiter would interview.

## Reading the results

- Each criterion has a `level` (the rubric wording nearest to where the text sits) and an `index` (its exact position, 0 at the bottom of the ladder). A fractional index shows which way the work leans; use it to explain borderline scores.
- `verdict.yes` is a probability, not a grade. Report it as a percentage and do not round it into certainty.
- `checks` are counted facts (length, paragraphs, overused words, stock phrases, quotes found in a passage). They do not feed the grade.
- The grade is an estimate from a written rubric, not an official score. Say so when it matters.

## Follow-ups and comparisons

For a yes/no question about a text or an A/B comparison of two versions, use the MCP server below, or call `POST https://jev-agent.com/api/v1/systemone` with a `noul` or `choice` question. When comparing two versions, ask twice with the order swapped and average: the model favors the second option on close calls.

## MCP alternative

If the client supports MCP, the same tools are available as a remote server:

```bash
claude mcp add --transport http jagent https://jev-agent.com/api/mcp \
  --header "Authorization: Bearer $JAGENT_API_KEY"
```

Tools: `check_resume`, `grade_essay`, `grade_with_rubric`, `judge_yes_no`, `judge_choice`, `judge_score`, `compare_versions`.

## Do not

- Do not ask the API to rewrite text; it only judges. Write revisions yourself, then grade or compare them.
- Do not send text the user has not agreed to send to an external service.

Full reference: https://jev-agent.com/essay-grading-api
