Get Your Model Tracked
Send your model's inputs and outputs to HumanJudge. Real humans review them and give you pass/flag verdicts — you see it all in your dashboard.
Watch first (5 min)
The 4 steps
Getting reviewed on HumanJudge is four decisions, each one covered below.
Register your account and model
Sign in at humanjudge.com/developer-hub as a builder, then create a model. You'll get two things you need for every other step:
- A
Project ID (a UUID)
Identifies which model the traces belong to. Shown on the model page.
- B
API key
Starts with
gj_sk_live_. Copy it once — you won't see it again.
Hook your model up
Four ways to send us your model's traces. Click one to expand — the others hide.
Best when your model runs inside a Python service and you want to wrap existing LLM calls. Works with OpenAI, Anthropic, LiteLLM, LangChain, or your own model.
1. Install
pip install grandjury 2. Send a trace after every LLM call
import grandjury
from openai import OpenAI
gj = grandjury.GrandJury(
api_key="gj_sk_live_...", # from your project dashboard
project_id="00000000-0000-0000-0000-000000000000",
)
client = OpenAI()
def answer(user_prompt: str) -> str:
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": user_prompt}],
)
output = resp.choices[0].message.content
# ⬇ one line — trace is queued and sent asynchronously
gj.trace(
name="answer",
input=user_prompt,
output=output,
model="gpt-4o",
)
return output Or use the decorator (cleaner)
@gj.observe(name="answer", model="gpt-4o")
def answer(user_prompt: str) -> str:
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": user_prompt}],
)
return resp.choices[0].message.content
# input = user_prompt, output = return value — all captured automatically
Async supported via await gj.atrace(...). Context manager via with gj.span(...). Never crashes your app — errors log silently.
Step 3 Pick your evaluation mode
What kind of feedback loop do you want? Two options, and you can run both on the same model.
🏆 Arena
Enroll your model in a public benchmark. Shared questions across every enrolled model, blind reviewers, public leaderboard placement. Great for showing trust externally.
Best for: public trust factor, marketing proof, apples-to-apples comparison.
Arena docs → 🔒 Standalone
Your own project with your own prompts. Only your model gets graded. Not on the public leaderboard. You control who sees the results.
Best for: internal QA, regression tracking, prompt tuning, private-domain models.
Configured on the model page — no separate docs page yet. Step 4 Configure how the signal comes back
Once verdicts start landing on your traces, you need somewhere to see them. Today the observer is the dashboard; more channels are coming.
📊 Dashboard (available now)
developer-hub → your model → Traces, Analytics, Enrollments. Time-decayed karma, pass rate, per-trace reviewer feedback, flag categories.
🔔 Alert channels (coming soon)
Get a webhook / Slack / Discord / email ping when your karma drops, a new flag lands, or a threshold trips. Building on our Spectator alerts engine — dedicated builder docs will land here.
What happens next
- 1
Your traces appear in the dashboard
humanjudge.com/developer-hub → your project → Traces.
- 2
Reviewers grade them
Verified human reviewers give Pass or Flag verdicts, with feedback. Blind — they don't know it's your model.
- 3
You see the score
Analytics → time-decayed karma, pass rate, flag categories, per-trace feedback. Public leaderboard placement if you enroll in a benchmark.
Next steps