# How to make a "which one are you?" personality quiz

Same scoring engine as a lead-qualification form — `outcomes` with points
and buckets — just pointed at personas instead of a qualified/not-qualified
split.

## Worked example: "Which productivity animal are you?"

```json
{
  "schema_version": 1,
  "kind": "quiz",
  "title": "Which productivity animal are you?",
  "sections": [ { "key": "main", "questions": [
    { "id": "morning", "type": "choice", "prompt": "Your ideal morning?",
      "options": [
        { "value": "early", "label": "Up before sunrise" },
        { "value": "slow", "label": "Slow coffee, no alarm" },
        { "value": "late", "label": "I peak at 11pm" }
      ] },
    { "id": "workstyle", "type": "choice", "prompt": "How do you tackle a big task?",
      "options": [
        { "value": "burst", "label": "One long, focused burst" },
        { "value": "steady", "label": "Steady, spread across the day" },
        { "value": "deadline", "label": "Right before it's due" }
      ] }
  ] } ],
  "outcomes": {
    "method": "points",
    "points": {
      "morning":   { "early": 5, "slow": 2, "late": 0 },
      "workstyle": { "burst": 5, "steady": 2, "deadline": 0 }
    },
    "buckets": [
      { "key": "owl",   "max": 3,  "title": "You're an Owl 🦉",
        "body": "Focused, late, and hard to interrupt." },
      { "key": "beaver","min": 4, "max": 7, "title": "You're a Beaver 🦫",
        "body": "Steady progress, built to last all day." },
      { "key": "fox",   "min": 8, "title": "You're a Fox 🦊",
        "body": "Early, sharp, and gone by lunch." }
    ]
  }
}
```

## What makes a good personality quiz

- **Use `choice`, not free text, for anything you're scoring.** You can't
  point-weight a paragraph.
- **3–7 questions is usually enough.** Long personality quizzes lose people
  before the result.
- **Open with a `statement` question**, not a real question — it collects
  nothing, just sets up the premise ("Answer honestly — no wrong answers").
- **Give every bucket a genuinely different `body`.** A result that reads
  the same regardless of the answers feels obviously fake.

## Ask an AI to build one for you

> "Build me a QuizGen personality quiz: 'What kind of traveler are you?'
> with 3 outcome types."

Paste that into Claude or ChatGPT with [quizgen.dev/llms.txt](/llms.txt) —
it'll write the scoring for you.

---

Full `outcomes` reference: [quizgen.dev/llms.txt](/llms.txt#scoring--outcomes).
