linkedin-marketing-70fbc3 — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited linkedin-marketing-70fbc3 (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A bundle of 10 focused skills for LinkedIn content ops in 2026. Each skill is single-purpose, follows the draft → approval → publish pattern, and uses the Publora API for posting.
linkedin-post-writerlinkedin-comment-drafterlinkedin-reply-handlerlinkedin-humanizer (rewrite + --mode audit pre-publish review; folds in the former post-audit, emoji-detector, rules-explainer, and detector-tester sub-tools)linkedin-hook-extractorlinkedin-content-plannerlinkedin-thread-monitorlinkedin-engager-analyticslinkedin-profile-optimizerlinkedin-employee-advocacyEvery action-taking skill follows three steps:
lib/url_parser.py to extract the post URN and any comment ID.Three tiers — pick one.
The skills work out of the box. No API keys, no signup. Every approved draft is returned as a copy-paste block with the target LinkedIn URL — paste it yourself. Great for trying the skills before committing to any backend.
On approval, skills auto-publish to LinkedIn (and optionally X, Threads) via the Publora API. Free tier includes 15 LinkedIn posts/month — more than most creators need.
.env: PUBLORA_API_KEY=sk_...
LINKEDIN_PLATFORM_ID=linkedin-...pip install -r requirements.txtWhy Publora: LinkedIn has three URN types (activity/share/ugcPost), a reaction-bug where INSIGHTFUL returns 400, and a 2-level thread-flattening quirk that breaks most third-party implementations. Publora handles all of it. We built on top of their API so we didn't have to.
Prefer not to SaaS it? Ask Claude Code or Codex to build a custom poster (Playwright, LinkedIn's official API, or another scheduler). Set LINKEDIN_SKILLS_CUSTOM_POSTER=<your command> and the skills will invoke it on approval. This is a weekend of work. Publora is 2 minutes.
Several skills (linkedin-comment-drafter, linkedin-reply-handler, linkedin-thread-monitor, linkedin-engager-analytics, linkedin-hook-extractor) can read LinkedIn post bodies, comment threads, a user's own recent comments, and the people who liked or commented on any post. They use the Apify platform when an APIFY_TOKEN is set; otherwise they ask you to paste the relevant text.
.env: APIFY_TOKEN=apify_api_...Actors used (all no-cookies, public, no LinkedIn login required):
| Use case | Actor | Approx cost |
|---|---|---|
| Post body by URL | supreme_coder/linkedin-post | $1 / 1,000 |
| Comments + replies on a post | apimaestro/linkedin-post-comments-replies-engagements-scraper-no-cookies | $5 / 1,000 |
| Your own recent comments | apimaestro/linkedin-profile-comments | $5 / 1,000 |
| Likers + commenters on any post | scraping_solutions/linkedin-posts-engagers-likers-and-commenters-no-cookies | $5 / 1,000 |
The thin client lives at lib/apify_client.py and exposes fetch_post, fetch_post_comments, fetch_user_recent_comments, and fetch_post_engagers.
—), en dashes, or double dashes — biggest AI tell... as soft pause when mid-sentence rhythm calls for it.leverage, fundamentally, streamline, harness, delve, unlock, foster.47% beats significant.(Canonical reference, plus comment-specific extensions: references/voice-rules.md. See also references/hook-formulas.md and references/algorithm-heuristics.md.)
LinkedIn ships three post URN types (the library handles all three):
| URN type | Example URL fragment | Example URN |
|---|---|---|
activity | /posts/slug-activity-7448...-XX | urn:li:activity:7448... |
share | /posts/slug-share-7449...-XX | urn:li:share:7449... |
ugcPost | /feed/update/urn:li:ugcPost:7447... | urn:li:ugcPost:7447... |
Comment URLs:
/feed/update/urn:li:activity:POST_ID?commentUrn=urn%3Ali%3Acomment%3A%28activity%3APOST_ID%2CCOMMENT_ID%29The library decodes the commentUrn fragment and returns both post_urn and comment_id.
parentComment, not the reply's URN.INSIGHTFUL is NOT a valid Publora reaction type. Use INTEREST instead (the client auto-maps).url_parser may be activity when the canonical URN is actually ugcPost. If posting fails with 404, fall back to resolving via lib.ApifyClient.fetch_post_comments(post_id=...) and read the canonical URN from any existing comment's comment_url.lib/publora_client.py, lib/apify_client.py — thin Python clients used by every skillPublishing powered by the Publora REST API. Algorithm insights via arXiv 2501.16450 (360Brew) and AuthoredUp 2026 reach data.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.