Hook & Virality Scorer - Rank Titles Before Posting
Pricing
from $3.00 / 1,000 hook scoreds
Hook & Virality Scorer - Rank Titles Before Posting
Score any title, hook or script before you post it. Each one gets a 0-100 virality score and an A-F grade. You also get a six-part breakdown, the words that scored, and suggested rewrites. No AI key needed. $3.00 per 1,000 hooks ($0.003 each), flat rate with no volume tiers.
Pricing
from $3.00 / 1,000 hook scoreds
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
7 days ago
Last modified
Categories
Share
Hook & Virality Scorer: rank your title variants 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 scored |
| 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, flat on every plan |
🔍 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 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. 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 | What it is |
|---|---|
score | 0 to 100. 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 | Points from each of the six dimensions. A zero tells you which lever has not been pulled at all. |
signals | What it actually matched: the word count, whether there is a number, whether it is a question, whether it addresses the reader, and the specific power, curiosity, emotion and filler words found. Empty arrays mean it found none. |
suggestions | Concrete rewrite tips for whatever scored low. It tells you what is missing. It does not write the new title for you. |
rank | 1 is the best-scoring text in the batch. Absent when ranking is off. |
🧾 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 in the example 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.
▶️ How to run it
- 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?
$3.00 per 1,000 hooks, which is $0.003 each. Flat on every Apify plan, no volume tiers.
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 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.
🚧 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.
🧭 Which creator tool do you need?
| If you want | Use |
|---|---|
| To score and rank titles before posting | This one |
| 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 that tend to travel. 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 the score change between runs? No. Same text, same score, every time.
Can I score a whole script? Yes. Set type to script, and note that length scores best between
20 and 250 words.
Does it work in French or Spanish? Not usefully. The word lists are English.
🆘 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.


