LIVE HackNight #5: Jev-a-thon Tue 10 Nov 2026 · 17:30 · Itnig Event page ↗

/ jev lab

Watch Jev make a call.

Jev is TypeSafe's decision model. Instead of generating text, it answers typed questions about whatever you give it: pick one of these labels, rate this on a rubric, yes or no. Every answer comes back with calibrated probabilities. This is exactly how projects on the wall get their category and jury score.

Try:

Answers appear here

Four questions in two parallel requests: a category choice, two yes/no checks and a scope score.

The code behind it

Two small systemOne calls in parallel through Netlify AI Gateway. No API key in the code, no prompt parsing, no JSON repair.

import { choice, noul, score, TypeSafeClient } from "@typesafe-ai/sdk";

const typesafe = new TypeSafeClient(); // keys injected by Netlify AI Gateway
const state = { project_name, pitch };

// Two small requests in parallel: one picks the category, one asks the rest.
const [sorted, checks] = await Promise.all([
  typesafe.systemOne({
    model: "jev-latest",
    state,
    questions: {
      category: choice("Which area fits this project best?", {
        moderation: "Trust and safety",
        lead_scoring: "Sales and growth",
        health: "Health and wellbeing",
        playful: "Games and fun",
        // …
        other: null,
      }),
    },
  }),
  typesafe.systemOne({
    model: "jev-latest",
    state,
    questions: {
      decisionPowered: noul("Does this app use AI to make a decision?"),
      needsHuman: noul("Would a human need to review its decisions?"),
      scope: score("How big is this idea for a four-hour hack night?", [
        "Tiny, a toy demo", "Focused, one workflow", "Ambitious, many parts", "Moonshot, weeks of work",
      ]),
    },
  }),
]);

sorted.answers.category.choice;        // "health"
sorted.answers.category.probabilities; // { health: 0.81, playful: 0.09, … }
checks.answers.decisionPowered.noul;   // 0.94