Build guide

Build an AI content quality gate

AI-generated TikTok scripts have a slop problem: the model self-grades them as 90/100 even when they're generic. This guide chains two Hooklayer tools — score_hook on the opener, predict_virality on the full script — so an adversarial scorer rejects the slop before it ships. Calibration anchors enforce score discrimination so the gate is real, not theater.

Who this is for: Agencies, content founders, and indie devs running AI-generated TikTok / Reels / Shorts scripts at volume. The quality control layer your workflow is missing.

Tools used in this chain

Steps

  1. 1

    Generate the script with your model of choice

    Use Claude, GPT, or your in-house model. Output should include a hook (first 3-5 seconds) and a full script (30-90 seconds of beat-by-beat text).

  2. 2

    Gate 1 — score the hook

    Call score_hook on the opener. If score < 70, take rewrites[0] (the highest-scoring rewrite the tool returned) and replace your hook. Loop until you're at 70+. Each call costs 1 credit and runs through a 24-hour determinism cache so the same input returns the same score.

    curl -X POST https://hooklayer.dev/v1/hook/score \
      -H "Authorization: Bearer hl_live_..." \
      -H "Content-Type: application/json" \
      -d '{"text":"3 things every Gen Z investor needs to know","platform":"tiktok","niche":"Finance"}'
  3. 3

    Gate 2 — adversarial check on the full script

    Once the hook is 70+, call predict_virality on the whole script. The response returns optimistic_score (what a self-grading model would say) AND virality_score (the adversarial number). The calibration_gap is the disagreement. A 24-point gap means the adversarial scorer caught real flaws; a 0-point gap means the check is rubber-stamping and you should investigate.

  4. 4

    Auto-reject below threshold, auto-rewrite when safe

    Hard rule: if virality_score < 65 OR recommendation.verdict === 'NO-GO', reject and regenerate. If verdict === 'REWORK', the response includes attack_vectors[] each tagged status: present | mitigated. Hand the present-vectors back to your generator with the mitigation hints and re-run gate 1.

  5. 5

    Surface the audit to whoever ships

    Every score response carries a signals[] array with cited evidence quoting the actual script text. The would_fail_because field is the one-sentence counterfactual. Surface both to the editor before publish — these aren't black-box scores, they're an auditable rubric.

Why this approach

  • Most AI content tools self-grade. The model that wrote the script grades it 88/100 and you ship it. Hooklayer ships the adversarial number alongside the optimistic one — you can see the gap, which is the actual signal.
  • Calibration anchors at 10/30/50/70/85/95 force the model to name the closest anchor in the `why` field. So an 82 comes with 'closer to the 85 anchor — has the contrast but missing one concrete number.' You can debate the score.
  • Signal evidence quotes verbatim from the script. If specificity scores 2/10, the evidence string names the vague phrase. You don't have to guess what to fix.

Get started in 60 seconds

50 free lifetime credits. No credit card. Mint a key, add it to Claude Desktop, run the steps above.

Related

Other build guides