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
Scores a hook 0-100 against proven viral patterns. Returns 3 rewrites at higher scores + 6-signal evidence array + would_fail_because counterfactual.
Adversarial second-pass scoring on the whole script. Returns optimistic_score AND virality_score with a calibration_gap (the disagreement). The gap IS the value — every other tool ships the optimistic number alone.
Steps
- 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
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
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
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
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.
