npx skills add ...
npx skills add charlie947/social-media-skills --skill post-scorer
Score a LinkedIn post using real performance data. Pulls the user's own post history via Apify (or uses cached data) to identify what actually performs, then scores the draft against those patterns. Use this skill whenever the user says "score my post", "review my post", "rate this post", "give me feedback", "how good is this post", or pastes a LinkedIn post and asks for critique. Separates historical comparisons from an explicitly labelled editorial-only fallback. Designed for live scoring at events and everyday post review.
npx skills add charlie947/social-media-skills --skill post-scorer
AskUserQuestion examples describe the questions, not a required API: use an available question tool within its limits, or ask in chat. Reuse answers and source material already supplied.about-me.md, voice.md and relevant brand files before personalised work. Confirm the intended author if files conflict or contain starter defaults. Ask for missing facts or run voice-builder; never inherit the maintainer's identity, accounts or private files.references/ relative to this skill folder. For an explicitly requested profile refresh, read and update the canonical about-me.md, voice.md or newsletter-voice.md in place, preserving unrelated user facts and rules. Consumers must reread those canonical files. Use a new filename only for new deliverables that would collide with unrelated existing files. Installation alone never starts an interview or writes files. Do not write persistent learnings unless requested.When this skill triggers, go straight to Step 1. Do not summarise. Do not explain the scoring method. Start immediately.
If the user already pasted a post in the same message, use it. Otherwise say:
Paste the LinkedIn post you want scored.
Wait for the post.
The scorer needs two things: the user's voice system and real performance data.
Read about-me.md and voice.md from the project if they exist. If missing, note it and score without voice matching.
Check for user-supplied exports or cached post data in the selected project. Verify the author, collection date and coverage before using it. Never search another user's folders or fall back to the maintainer's benchmarks.
If data is missing, offer:
For an Apify run, apimaestro/linkedin-profile-posts is the existing provider route. Use a small requested batch (up to 100 posts). Request post bodies and aggregate counts only. Never scrape comments or replies, including through deepScrape or numComments. If the actor cannot exclude comment bodies, use a different verified post-only route or request an export. Do not run a comments scrape then discard it afterwards.
Save the resulting permitted post data under outputs/post-scorer/ in the project with the author and collection date. If Apify is unavailable, preserve the draft and offer the export/editorial routes. Do not claim the history was fetched.
When performance data is available, run this analysis before scoring:
Record the source, date, sample size and patterns in this review. Do not write persistent memory unless requested. Unknown counts are missing, not zero; say when the sample is too small or selected to support a performance comparison.
Score across 5 criteria, each 1 to 10. Separate editorial judgement from measured historical comparisons. If neither a voice profile nor confirmed author samples exist, mark Voice match unavailable and report the total over 40; otherwise use 50. No numerical total implies predicted performance.
Compare the draft's opening line to the hook types in the top 10%.
If voice.md exists:
Compare to the user's top-performing posts:
Based on their data:
Output in a code block:
Cite actual evidence for historical comparisons. For editorial-only review, omit the top-performer comparison and give specific copy/structure fixes labelled editorial. Never fill the template with invented metrics. Check every required roster item or step against the exact draft before scoring.
After the scorecard:
Want me to rewrite the weakest section using patterns from your top posts, or ship it?
If rewrite requested, apply the fixes and output the revised post in a code block.