Content campaign
Skill himanisharrma/finverge-sales-skills/plugins/finverge-sales-skills/skills/content-campaign
FinVerge Sales Skills — Claude Code plugin that automates sales/marketing collateral (proposals, product decks, content campaigns) with a dual public/internal knowledge-base architecture
npx -y skills add himanisharrma/finverge-sales-skills --skill content-campaignAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate and audit LinkedIn/Twitter posts for the FinVerge 3.0 content-led revenue campaign (April 20 – June 30, 2026). Use whenever Himani or any content team member wants to draft a post, audit a draft, or prepare a week's content batch. Triggers on phrases like "draft this week's posts", "audit this post", "generate a LinkedIn post for the NACH owner on Onboarding", "prep the Friday batch", "score this draft against the filter", "the sales head needs a deal story", "give me the brief for W3 Monday", "write the CEO vision post for launch week", and similar. Works with the Master Calendar XLSX (52 posts across 10 weeks), the 4-criteria content filter, and the plugin-wide product KBs (PG/NACH/Collect/Orchestrate). Outputs post drafts (Markdown / plain text) + audit reports (JSON + human-readable summary).
SKILL.md
9.0 KB, as published. Nobody here has run it
Content Campaign Skill — FinVerge 3.0
Two workflows in one skill:
- Post generator — assembles the context brief for a scheduled post so Claude can write it in FinVerge brand voice.
- Filter audit — scores a draft against the 4-criteria gate before it's approved for posting.
Both read from the Master Calendar XLSX at assets/campaign_ops.xlsx and the plugin-wide product KBs via kb_loader.load_public().
When to use
Triggering phrases (non-exhaustive):
- "Draft next week's posts" / "Prep Week 3 batch"
- "Audit this post" / "Score this draft"
- "Give me the brief for W3 Monday" / "Prep the NACH owner's NACH post"
- "Write the CEO vision post for the launch"
- "the sales head needs a deal story"
- "Is this post ready to publish?"
Do NOT use this skill for:
- Bank or enterprise proposal decks (use
bank-proposal-generator/enterprise-proposal-generator) - Product demo collateral (use the per-product skills —
pg-product,nach-product, etc.)
Inputs
For post-generator, one of:
- Week + day — e.g.,
--week 3 --day "Mon May 4"→ picks the calendar row - Week + owner — e.g.,
--week 3 --owner the NACH owner - Row index — direct row from Master Calendar
For filter-audit:
- A draft post text file (Markdown or plain text)
- Or piped stdin
The 4-criteria filter (from the Locked Strategy)
Every post must pass all 4. If it fails any, it's rejected and rewritten.
- Creates Curiosity — Does the first line make someone stop scrolling?
- Shows Real Problem — Is there a genuine pain point a merchant/enterprise faces?
- Simplifies Product — Does it make 3.0 easier to understand, not harder?
- Drives Action — Is there a clear next step — DM, comment, or question?
Workflow — Post generator
Step 1: Assemble the brief
cd skills/content-campaign/scripts
python3 prep_post.py --week 3 --owner the NACH owner
This writes a Markdown brief to assets/briefs/W3_anupam_<day>.md containing:
- The calendar row (week, day, owner, platform, content focus, theme)
- The owner's voice tag and natural topic areas
- Platform guide (word count, hashtags, tone)
- FinVerge brand voice guide
- The product KB excerpt (for owners who map to PG / NACH / Collect / Orchestrate)
- The 4 filter criteria
Step 2: Read the brief + write the post
Claude opens the brief (via the Read tool), writes a LinkedIn-ready draft following it, and saves to ~/Downloads/content-drafts/<week>/<owner>-<date>.md (or anywhere the user prefers).
The post should be plain LinkedIn-ready text (no markdown headings in the body), 150-300 words for LinkedIn, 2-3 hashtags at the end.
Step 3: Run the audit
python3 audit_post.py --post <path-to-draft.md> --platform LinkedIn
Gets a per-criterion pass/fail with confidence + rewrite suggestions. If the audit returns soft-fail or hard-fail, rewrite and re-audit.
Step 4: Present to Himani
Show the user:
- The draft
- The audit verdict (pass / soft-fail / hard-fail) with per-criterion feedback
- If fails: rewrite suggestions
Himani decides whether to approve or request another rewrite.
Workflow — Filter audit (standalone)
If Himani pastes a draft she wrote herself (or received from a teammate) and asks "is this good enough?":
python3 audit_post.py --post <path> --platform LinkedIn
# or pipe it:
cat draft.md | python3 audit_post.py --stdin --platform LinkedIn
Output: pass/fail summary + rewrite suggestions.
Audit scoring — what it catches
Deterministic structural checks (fast, no LLM needed):
- Weak openers — flags "In today's world...", "We're excited to share...", "I'm proud to announce..."
- Jargon density — flags "leverage", "synergy", "seamless", "cutting-edge", "best-in-class", "revolutionise"
- Internal jargon — flags "Pod 0", "Pod 1", "AOP", "GTM", "DELTA4" appearing in customer content (dead giveaway)
- Acronym soup — flags >3 uncommon acronyms without expansion
- CTA presence — flags missing or vague CTAs ("The future of payments is here" → fail)
- Problem framing — checks for tokens indicating a real pain is surfaced
- Word count — checks against platform targets (LinkedIn 150-300, Twitter 20-50)
The audit returns pass / soft-fail (3/4 criteria) / hard-fail (<3 criteria) + specific per-criterion feedback.
Owner → product KB mapping (config in campaign_meta.py)
| Owner | Product KB | Voice tag |
|---|---|---|
| the founder (CEO), the CBO (CBO), a product owner (CGO) | — | leadership vision/business/growth |
| PruthviRaj | — (product philosophy — all products) | product_builder |
| the NACH owner | nach | product_builder |
| the PG owner | pg | product_builder |
| the Collect owner | collect | product_builder |
| Chaitanya | — (FRM — no KB yet) | product_builder |
| the sales head | — (sales — pulls from all) | sales_convert |
| an owner / a team member / a team member | — | bts_execution / journey_growth / culture_pride |
| Chandrasekhar Sir / Swapnesh | — | alliance_credibility |
| Santanu / Tarun / ZMs / Siddharth (BD) | — | bd_market_signal |
Bold rows = owners whose posts automatically get real product content pulled from shared-kb/.
Output locations
| Output | Path |
|---|---|
| Post brief | skills/content-campaign/assets/briefs/<week>_<owner>_<day>.md |
| Post draft | ~/Downloads/content-drafts/ (Claude decides final filename) |
| Audit report | stdout, or --out path/to/audit.json |
Updating content
- Master Calendar (who posts what, when):
skills/content-campaign/assets/campaign_ops.xlsx- Updating this XLSX automatically flows through — prep_post.py re-reads every time.
- Voice guide / owner map:
skills/content-campaign/campaign_meta.py - Filter criteria:
skills/content-campaign/campaign_meta.py(keep in sync with the strategy doc)
Workflow — Friday batch (end-to-end week orchestrator)
This is Himani's weekly Friday loop. Two phases, one command each.
Phase 1 — Prep (Friday morning)
python3 scripts/friday_batch.py --week 3 prep
What it does:
- Reads every row for Week 3 from the Master Calendar
- Assembles a brief for each post (same content
prep_post.pywould produce) - Writes ONE consolidated file:
~/Downloads/content-drafts/W3/W3_briefs.md - Creates an empty
~/Downloads/content-drafts/W3/drafts/folder with an expected filename for each post
Himani (or Claude on her behalf) then writes a draft for each file in drafts/, following the matching brief. One file per post, plain LinkedIn-ready text.
Phase 2 — Review (Friday afternoon)
Once all drafts are written:
python3 scripts/friday_batch.py --week 3 review
What it does:
- Loads every draft in
drafts/ - Runs the 4-criteria auditor on each one
- Compiles
~/Downloads/content-drafts/W3/W3_Review.docxwith one section per post:- Metadata (day, owner, platform, content focus)
- Draft body
- Twitter variant if present
- 4-criteria audit table (pass / soft-fail / hard-fail + feedback)
- Rewrite suggestions if any criterion fails
- Action recommendation (approve / light-edit / rewrite)
- Prints a summary line:
"✓ Review compiled for W3: 6 posts (4 pass, 1 soft-fail, 1 hard-fail)"
Himani opens the DOCX, approves/edits, then schedules.
Validated on W1
The W1 run produced 6 drafts (the founder, the CBO, a product owner, the sales head, an owner, a team member); auditor correctly caught the weak an owner draft ("excited to share… incredible journey… cutting-edge… transformative… game-changing") as hard-fail and passed the others.
Coming in later iterations (not yet built)
anmol-deal-story— specialised generator for the sales head's deal-story format (he's the revenue engine)tracking-dashboard— monthly KPI rollup from Master Calendar Status column + metrics CSV- Per-owner voice refinement (v2) — when each owner provides 5-10 past posts, we can match their personal style more precisely
Shared code reused
shared/kb_loader.py— product KB accessshared/brand.py— design tokens (currently unused in text-only outputs, but available)shared/version_check.py— stale-version auto-notify