SCORING
METHOD.
Every job on this site is scored by an LLM against a fixed rubric. The score you see in the badge is 0–5 × 20, so 100 means a perfect rubric match — not a percentile. The system is built on documented LLM-as-judge research, not vibes.
Why an LLM, not just keywords
A regex scorer can match claude code in the description and add points. It cannot read the next paragraph that says "Must be willing to relocate to Bengaluru, India — onsite only." An LLM reads both signals together and resolves the contradiction.
We run heuristic + LLM in series: the heuristic pre-filters obvious junk in milliseconds, the LLM grades what survives. On 537 vibe-qualified roles, the two scorers disagree by an average of 27 points — and almost every disagreement is the LLM correctly rejecting a body-shop / onsite-only / non-dev role the heuristic over-rated.
The 0–5 rubric
Fully remote AND (AI/ML/LLM role OR explicit AI-coding tool stack: Claude Code, Codex, Cursor, Copilot, Windsurf, Aider, Continue, Tabnine, agentic-coding) AND small / mid startup or scale-up.
Fully remote AND solid software-engineering role with some AI exposure (LLM features, ML platform, RAG, etc.). Or an AI-aligned role that is hybrid (any country) and lets the candidate keep their current location.
Generic dev role with weak AI angle, hybrid or unclear remote mode, or large-corp / consulting where AI exposure is incidental.
Onsite-required (any country, no remote option) OR mostly the wrong domain with only token AI mention. Capped at this band regardless of how good the AI alignment is.
Sales / HR / finance / legal / marketing / pure-design / QA-only / project-management roles.
Anti-AI domain or hard non-tech (retail floor, manual labour, etc.). Hard exclusion.
Each band atomically encodes remote-mode AND AI alignment AND domain. There are no separate bonuses to add on top — the model never has to reconcile a +15 modifier against a band ceiling.
Anchor examples
Four calibration examples ship inside the prompt itself. They lock the scale and give the model explicit permission to use the extremes — without them, small open-source LLMs cluster everything between 3 and 4.
- 5Senior ML Engineer, agentic coding tools, fully remote, Series A
- 2Backend Python eng at retail fintech, hybrid Stockholm, no AI
- 1Sales Development Rep — SaaS, remote
- 0Retail floor manager, Lidl Sweden, onsite
Signals before score
The model is required to commit to the load-bearing facts before picking a number. The output schema is:
{
"signals": "fully remote, agentic AI startup, Cursor/Claude stack",
"score": 5,
"reason": "Strong agentic-coding role at a small remote-first startup."
}The signals field forces a structured single-sentence chain-of-thought: remote-mode → AI alignment → domain → size. The model can't reach the score field without naming those four facts first. This is the highest-leverage cheap CoT documented for grading tasks.
Engineering decisions, cited
Every design choice in the prompt is anchored to a documented source. No vibes, no folklore.
- Grading Scale Impact on LLM-as-a-Judge (arxiv 2601.03444) ↗
Empirical evidence that 0–5 yields the strongest human-LLM alignment; 0–100 is hallucinated precision on small open-source models.
- Why LLM-as-a-Judge Fails — Galileo ↗
Documents how additive bonuses stacked on top of rubric bands create silent contradictions the model can't reconcile.
- LLM-as-a-Judge Done Right — Kinde ↗
Anchor examples lock the scale and give the grader psychological permission to use the extreme ends — the #1 calibration fix.
- Evaluating LLM Evaluators — Eugene Yan ↗
Survey showing that asking the model for a structured reasoning field before the score improves accuracy on judgment tasks.
- Anthropic Prompt Library — Grading Guru ↗
Canonical Anthropic reference for rubric-anchored graders that evaluate criterion-by-criterion before the final score.
Try it
Every score_reason served by the API is the model's literal output — signals joined with the one-sentence verdict. Open any job on this site and the badge tooltip shows the same JSON the LLM produced.