Hook & Virality Scorer - Rank Titles Before Posting
Pricing
from $2.85 / 1,000 hooks
Hook & Virality Scorer - Rank Titles Before Posting
Score video titles, hooks or scripts before you post. Each gets a 0-100 score, an A to F grade, a six-part breakdown, the exact words it matched and tips for what scored low, and a batch comes back ranked. Word rules, not AI. $3.00 per 1,000 hooks ($0.003 each).
Pricing
from $2.85 / 1,000 hooks
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Share
Score and rank your video titles and hooks before you post: send it the five titles you are arguing about and get each one back with a 0-100 score, an A to F grade, a six-part breakdown of where the points came from, the exact words it matched, and concrete suggestions for the parts that scored low. Send a batch and it ranks them best first.
It is a rules engine, not a model. It counts curiosity phrases, emotion words, power words, numbers, questions and "you" or "I" framing, in English. It will not tell you whether your idea is any good, and a high score is not a forecast of views.
| Input | Titles, hooks or scripts, as text |
| Output | One row per text: score, grade, rank, a six-part breakdown, the words it matched and tips |
| Ceiling | No cap on how many texts you send in one run |
| Account needed | None, and no AI key |
| Price | $3.00 per 1,000 hooks on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 1,650 |
🔍 What Hook & Virality Scorer does
The same text always gets the same score. There is no model call, nothing random and nothing that drifts between runs, which is the point: you can rewrite a title, score it again, and the difference in the number is a real difference in the text rather than a different mood on a different day.
Six dimensions make up the score: curiosity, emotion, power words, specificity, relatability and
length. breakdown shows what each contributed and signals shows exactly which words and patterns
it matched, so a score you disagree with is always traceable to something you can point at.
Length is scored differently for a title and for a script. In auto, anything up to 18 words is
treated as a title, and titles do best between about four and eleven words. Scripts do best between
20 and 250 words. Set type yourself if auto guesses wrong for your format.
📋 What data you get from each title or hook
| What you get | Field |
|---|---|
| The 0 to 100 score and its letter grade | score, grade |
| Its place in the batch, 1 being the best | rank |
| Points from each of the six dimensions | breakdown |
| What it matched: word count, number, question, "you", first person, and the power, curiosity, emotion and filler words found | signals |
| Rewrite tips for whatever scored low | suggestions |
| The text you sent, trimmed | text |
▶️ How to score titles and hooks before you post
- Open Hook & Virality Scorer and click Try for free.
- Replace the examples in Texts / variants with your own, one per entry.
- Leave Type on auto unless you are scoring a long script.
- Click Start.
- Read the ranked rows, or download the dataset as JSON, CSV or Excel.
💰 How much does it cost to score titles and hooks?
$3.00 per 1,000 hooks, which is $0.003 each on the Free plan. Paid plans pay a little less: $2.95 on Starter, $2.90 on Scale and $2.85 on Business. On the free plan, the $5 Apify gives you each month covers about 1,650 hooks.
You pay per text scored. Twenty title variants in one run is six cents. The same text sent twice is scored twice and counted twice, so strip duplicates before a large batch.
📥 What you give it
{"texts": ["I tried the viral 5am routine for 30 days","You won't believe what happened when I confronted my MIL","My morning routine"],"type": "auto","rankResults": true}
| Field | Default | What it is |
|---|---|---|
texts | none | The titles, hooks or scripts to score. Plain strings, or objects with a title, hook, text or scriptText key, read in that order. The box starts with three examples in it, which are suggestions and not defaults. |
text | none | One string, as an alternative to the array. |
type | auto | auto, title or script. This only changes how length is scored. |
rankResults | true | Sort the output best first and add a rank. Turn it off and rows come back in the order you sent them, with no rank field. |
At least one of text or texts has to resolve to a non-empty string. With neither, the run fails
rather than returning an empty dataset.
📤 What you get back
A real row:
{"rank": 1,"text": "I tried the viral 5am routine for 30 days","score": 36,"grade": "D","breakdown": {"curiosity": 0,"emotion": 0,"powerWords": 0,"specificity": 12,"relatability": 4,"length": 8},"signals": {"wordCount": 9,"isTitle": true,"hasNumber": true,"isQuestion": false,"addressesYou": false,"firstPersonStory": true,"powerWords": [],"curiosityPhrases": [],"emotionWords": [],"fillerWords": []},"suggestions": ["Open a curiosity gap...","Add an emotional or high-stakes word (shocking, heartbreaking, insane)."]}
The first suggestion is cut short here; the real one carries a full rewrite tip.
| Field | How to read it |
|---|---|
score | Useful for ranking your own variants against each other. |
grade | The score in bands, so you can gate on a letter instead of arguing about two points. |
breakdown | A zero tells you which lever has not been pulled at all. |
signals | Empty arrays mean it found none of that kind of word. |
suggestions | It tells you what is missing. It does not write the new title for you. |
🧾 Reading the output
Every row is a scored text. There are no sample rows and no diagnostic rows in this one, so the dataset is exactly as long as the list you sent.
grade | score |
|---|---|
| A | 80 and above |
| B | 65 to 79 |
| C | 50 to 64 |
| D | 35 to 49 |
| F | below 35 |
The row above scores 36 with a D, and breakdown says why: full marks on specificity because it
carries a number and enough words, nothing at all on curiosity, emotion or power words. That is a
title stating a fact rather than opening a loop, which is exactly what the two suggestions are
pointing at.
Read breakdown and signals together. A dimension at zero with an empty array beside it in
signals means it genuinely matched nothing, not that it scored badly.
💡 What people use it for
- Settling the five-title argument in thirty seconds, with a number and a reason instead of an opinion.
- Scoring a back catalogue of your own published titles to see which hooks actually carried the good posts.
- A pre-publish gate: anything below a C goes back for a rewrite.
- Measuring a rewrite. Score the old title, score the new one, and the gap is real because the scoring does not move.
- Checking the first twenty words of a script, which is the part people decide on.
From a story to a cover with the best title on it, in three runs:
- Rewrite the story with Story to Script Rewriter.
- Put its rows into Texts / variants here. It scores the
titleon each row. - Put the top-ranked title into Title / headline on AI Thumbnail Generator.
🚧 What it does not do
- No AI and no model call. Word lists and patterns, nothing more. It cannot judge whether your idea is interesting, only whether the wording carries the signals it looks for.
- English only. The word lists are English, so a title in another language scores near zero for reasons that have nothing to do with the title.
- Not a prediction. It ranks your variants against each other. It does not forecast views, and nothing here has been checked against real performance data.
- No platform context. A hook for TikTok and a hook for a newsletter are scored the same way.
- Three or more capitals in a row read as shouting. Acronyms like AITA, MIL or NBA cost points and can trigger a "reduce ALL-CAPS" suggestion, which is worth knowing before you take it.
- It rewards the usual viral vocabulary, so it will happily mark a clickbait title above a careful one. Use it as a first pass, not as an editor.
- No rewriting.
suggestionsnames what is missing. Writing the better line is still your job. - Every text you send is scored, duplicates included.
- It is not an official tool of any platform or company named on this page. Dami's Studio is independent and is not affiliated with or endorsed by any of them.
🧭 Which creator tool do you need?
| If you want | Use |
|---|---|
| To score and rank titles before posting | This one |
| Titles and hooks written for you from a story | Story to Script Rewriter |
| A thumbnail with the winning hook burned on | AI Thumbnail Generator |
| A long video cut into ranked short clips | AI Viral Clip Cutter |
| A story turned into a finished faceless short | AI Faceless Video Generator |
| A video's subtitles as plain text | YouTube Transcript Scraper |
| What people are actually searching for | Google Trends Scraper |
❓ Questions people ask
Do I need an OpenAI key or any other AI key?
No. There is no model behind this, so there is nothing to connect and no second bill.
Will a high score make my video go viral?
No, and nobody should sell you that. It tells you which of your own drafts carries more of the signals it looks for. The idea underneath still has to be worth watching.
Why did my title score badly?
Read breakdown for the dimension at zero and signals for what it matched. It is usually
curiosity: a title that states the outcome leaves nothing to open.
Does it work in French or Spanish?
Not usefully. The word lists are English.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab has ready-made
code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect
https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/hook-virality-scorer. Either way the
run happens on your Apify account at the same price.
🆘 If something breaks
Open the Issues tab on the actor page. Send the text you scored and the run ID. A score you think
is wrong is worth reporting too, with the breakdown and signals from that row.


