
Content Strategy
- 1.2k installs
- 23.3k repo stars
- Updated August 5, 2026
- anthropics/knowledge-work-plugins
SMB content strategy skill: sales data from QuickBooks/PayPal/Square to a prioritized 30-day content brief without asset generation.
About
MVP skill for SMB owners asking what to post this month: pulls 90-day sales from QuickBooks, PayPal, or Square, ranks top and slow movers by user-chosen metrics, and layers seasonality from user input or industry benchmarks. Outputs a 200-400 word strategic brief with push/hold/reposition sections and recommended offers, not calendars or creative assets. Includes QuickBooks industry pre-flight, connector-specific fetch notes, owner approval gate before feeding canva-creator, and structured JSON handoff for downstream tools.
- Pulls sales data from QuickBooks, PayPal, or Square connectors
- Ranks top performers and slow movers with seasonality weighting
- Produces 30-day push, hold, reposition, and offer recommendations
- Strategic output only; no calendar scheduling or asset generation
- Owner approval gate before downstream canva-creator integration
Content Strategy by the numbers
- 1,156 all-time installs (skills.sh)
- +81 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #74 of 853 Sales & Marketing skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
content-strategy capabilities & compatibility
- Capabilities
- pull sales transactions · rank product performance · layer seasonality · draft 30 day brief · gate owner approval
- Use cases
- marketing · planning · data analysis
What content-strategy says it does
The output is strategic only — no calendar scheduling, no creative assets.
npx skills add https://github.com/anthropics/knowledge-work-plugins --skill content-strategyAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1.2k |
|---|---|
| repo stars | ★ 23.3k |
| Last updated | August 5, 2026 |
| Repository | anthropics/knowledge-work-plugins ↗ |
What should I post this month based on what is actually selling in my business?
Analyze QuickBooks, PayPal, or Square sales data to produce a prioritized 30-day content brief of what to push, hold, or offer.
Who is it for?
SMB owners who want data-backed content priorities tied to real sales velocity and seasonality.
Skip if: Full social calendars, creative asset production, or businesses without sales connector data.
When should I use this skill?
User asks what to post, wants a content plan, asks what is selling, or what to promote this month.
What you get
An approved 30-day content brief ranking products to push, hold, or reposition with seasonal opportunities and offer ideas.
- content strategy document
- editorial calendar outline
- messaging pillar framework
By the numbers
- 516 installs on skills.sh
- Catalog rank 9331 on skills.sh
Files
Content Strategy
Status: MVP draft
Owner: JJ
Version: 0.2.0 · Phase MVP
Category: Marketing & Sales
Quick start
When an SMB owner asks "what should I post this month?" or "what's my content plan?", this skill:
1. Pulls sales data from QuickBooks or PayPal (transaction history, product/service revenue by date) 2. Identifies patterns — top-selling products, slow movers, seasonal trends 3. Layers in context — seasonality (user-provided or industry benchmarks), past performance 4. Produces a 30-day brief — ranked recommendations of what to push, what to hold, what offers to consider 5. Gets owner approval before the brief feeds into canva-creator for asset generation
The output is strategic only — no calendar scheduling, no creative assets.
---
Workflow
Step 1: Pre-flight check (QuickBooks only)
If using QuickBooks, verify the business profile is set up:
1. Call company-info to check if Industry is populated 2. If missing or "Unknown":
- Ask: "I need your business category to pull the right seasonality benchmarks. What industry are you in?" (e.g., retail, services, SaaS)
- Call
quickbooks-profile-info-updatewith the user's industry - Confirm: "Profile updated. Ready to pull your sales data."
3. If profile is set, proceed to Step 2
Note: PayPal and Square do not require profile setup.
Step 2: Clarify priorities & metrics
When triggered, ask the user:
- "How do you want me to measure 'top performers'?"
- By total revenue?
- By profit margin?
- By sales velocity (how fast they're selling)?
- Combination of the above?
- "Do you have seasonality patterns in mind?"
- If yes: "Tell me about them" (capture user's known seasonality)
- If no: "I'll use industry benchmarks for your category"
Step 3: Pull and analyze sales data
Fetch data from the authenticated connector (QuickBooks, PayPal, or Square, user's choice):
- Date range: Last 90 days (or full history if <90 days available)
- Extract: Product/service name, date sold, revenue, quantity
Connector-specific notes:
- QuickBooks: Fetch invoice line items via
profit-loss-quickbooks-account(pre-flight sets industry context) - PayPal: Fetch merchant transactions via
list_transactions. Rate-limiting: If you hit rate limits, pause 30 seconds and retry once. If still blocked, gracefully offer: "PayPal is rate-limited. Would you like to switch to QuickBooks or Square instead, or I can continue with historical data I already pulled?" - Square: Requires location ID first. Call
make_api_request(service="locations", method="list")to discover available locations, then fetch orders for each location. Future enhancement: Square integration is stubbed; full path documented inreference/square-integration.md.
Fallback: If <3 months of data, use industry seasonality benchmarks for the SMB's category (e.g., retail, services, e-commerce)
Identify:
- Top 3–5 performers (by user's chosen metric)
- Bottom 3–5 slow movers (consider holding or repositioning)
- Trending up (gaining momentum in last 30 days)
- Trending down (losing momentum)
Step 4: Layer in seasonality
- User-provided: If they shared seasonal patterns, weight recommendations against them
- Industry benchmarks: For categories without strong user data (e.g., "Q1 is strong for tax services")
- Timing: Flag products that should ramp up/down in the next 30 days based on seasonal patterns
Step 5: Build the 30-day brief
Structure:
- Executive summary (1–2 sentences: "Your best sellers are X and Y. Seasonal shift to Z is starting.")
- Push hard (Top 2–3 products + recommended content angle, e.g., "Case study on ROI", "How-to video")
- Hold steady (Middle performers; maintain visibility but no heavy lift)
- Reposition or pause (Slow movers; consider discounting, bundling, or pausing)
- Seasonal opportunities (What's coming next month that you should position for now)
- Recommended offers (Bundle, discount, or free-trial strategy based on data)
Example length: 200–400 words (brief and actionable, not essay-length).
Step 6: Owner approval & iteration
Present the brief to the owner. Ask:
- "Does this match your gut?"
- "Anything to adjust?"
- "Ready to feed this to canva-creator for asset generation?"
Iterate if needed; once approved, return the final brief as structured JSON (ready for downstream tools).
---
Gotchas & edge cases
See `reference/gotchas.md` for common pitfalls.
---
Examples
See `reference/examples/` for worked examples (SaaS, retail, services).
Example: Retail boutique — 18 months of data
Business: Vintage clothing boutique Trigger: "What should I push this month?" Data source: QuickBooks (18 months) User's metric: Revenue User's seasonality: "We peak April–May and November–December. Dead in July–August."
---
Input data summary
- Total revenue (18 months): $67,500
- Top product category: Vintage leather jackets ($18,200 / 27% of revenue)
- Second: 90s band tees ($12,400 / 18%)
- Third: High-waisted denim ($9,800 / 14%)
- Slowest: Vintage hats ($2,100 / 3%)
Trending up: Band tees (growing 12% month-over-month for 3 months) Trending down: Vintage accessories (declining 8% month-over-month)
---
The brief (ready for owner approval)
Executive Summary
Your bestseller is vintage leather jackets — they consistently drive 27% of revenue. Band tees are surging and should be featured. April peak season is starting; push jackets and tees hard. July slowdown is coming; plan summer clearance strategy for slower items.
Push hard (next 30 days)
1. Vintage leather jackets
- What to say: "Built to last. Investment pieces with character." (customer testimonials about durability)
- Recommended angle: Behind-the-scenes sourcing story, care/styling tips
- Timeline: Start mid-April for May peak
2. 90s band tees
- What to say: "Nostalgia + authenticity. No reproductions, all vintage." (emphasize rarity)
- Recommended angle: "Which era are you? 1990s vs 2000s collector's guide"
- Timeline: Capitalize on momentum now; feature weekly
Hold steady
- High-waisted denim — solid performer, 14% of revenue. Maintain weekly rotation in feed; don't over-index.
Reposition / pause
- Vintage hats — only 3% of revenue. Options:
- Bundle with leather jackets ("Complete the look")
- Offer 20% off to test demand
- Or pause until holiday season (Christmas styling posts)
- Vintage accessories — declining. Similar options: bundle or pause until Q4.
Seasonal opportunity
- July–August slowdown: Plan clearance content for May/June. "Summer refresh" angle for lighter pieces. (Consider a flash sale in early July to drive traffic during slow season.)
- November–December: Position leather jackets as holiday gifts (luxury, timeless); feature gift guides in October.
Recommended offers
1. Bundle: Jacket + tee + belt = styled outfit at 5–10% bundle discount 2. Flash sale: Mid-July, 15% off slower items to build July traffic 3. Free perks: First buyer gets free styling guide or cleaning cloth
---
Next steps
- Owner approval: "Does this feel right? Anything to adjust?"
- Feed to canva-creator: Once approved, pass this brief to
canva-creatorto generate social posts, emails, and graphics for the next 30 days.
Gotchas
Gotcha: Confusing correlation with causation
Sales data shows a product peaked in March. That doesn't mean March marketing caused it — it might be seasonal demand.
Why it matters: If you push hard on a slow-moving product just because it sold well once, you waste creative energy on something that doesn't actually resonate.
✗ Bad
"Widgets sold 10 units in March. Push widgets hard in May because March worked."
✓ Good
"Widgets sell well in March. Check if that's seasonal demand (tax-season gifting?) or a one-off spike. If seasonal, position for March next year. If one-off, don't over-index on it."
---
Gotcha: Ignoring low-velocity, high-margin products
Revenue is tempting. A low-volume, high-margin service (like consulting) might generate less total revenue than a cheap commodity product, but it's far more profitable.
Why it matters: If you obsess over volume winners and ignore margin leaders, you prioritize busy-work over profit.
✗ Bad
"Service packages sold $500 total, but widget bundles sold $2000. Push widgets."
✓ Good
"Ask: Which brings in the most profit per unit? Service packages might be 70% margin × $500 = $350 profit. Widget bundles might be 20% margin × $2000 = $400 profit. Different story now."
---
Gotcha: Seasonal benchmarks that don't fit your niche
"Retail peaks in November" is true for many, but not all. A tax prep service peaks in March; a swimming pool company peaks in May.
Why it matters: Generic benchmarks steer you wrong. Always ask the user: "Does this seasonality match your reality?"
✗ Bad
"Industry benchmarks say Q4 is peak retail. You're a pool company. Push hard in Q4 anyway."
✓ Good
"Pool companies peak May–August. Q4 benchmarks don't apply. Confirm with user: 'Do your sales match May–August peak?'"
---
Gotcha: Missing the composite picture
"What's selling" can mean by revenue, margin, velocity, customer lifetime value, or retention. Different metrics tell different stories.
Why it matters: Pick the wrong metric and you prioritize products that look good once but don't deliver repeat customers.
✗ Bad
Assume "top seller" = highest revenue. Rank by revenue only.
✓ Good
"How do you measure success? Revenue? Profit? Customer lifetime value? Repeat purchases?" Then rank by their chosen metric — or combine multiple metrics for balance.
---
Gotcha: Not accounting for inventory constraints
A product might be flying off the shelves, but if inventory is low, pushing hard could create stockouts and frustration.
Why it matters: You want to drive sales, not broken customer experiences.
✗ Bad
"Widget sales are strong. Push widgets harder."
✓ Good
"Widget sales are strong, but inventory is down to 5 units. Flag: 'Before pushing, confirm inventory. Consider promoting a similar alternative or pausing until restock.'"
---
Gotcha: QuickBooks profile not set up before first use
New QuickBooks users often skip the business profile setup (industry, business name). When you try to pull P&L data, the connector returns profile_info_required error.
Why it matters: A dead-end error frustrates the user. Pre-flight validation prevents wasted time.
✗ Bad
User: "What should I post?" Skill: [calls profit-loss-quickbooks-account] → Error: "Profile required" User: [confused, doesn't know what to do next]
✓ Good
User: "What should I post?" Skill: [calls company-info] → Industry = "Unknown" Skill: "I need your industry to pull the right benchmarks. What industry are you in?" User: [provides industry] Skill: [calls quickbooks-profile-info-update] → Profile updated Skill: [now calls profit-loss-quickbooks-account successfully]
---
Gotcha: PayPal rate-limiting on repeated calls
If you call list_transactions multiple times in rapid succession (e.g., looping through date ranges), PayPal may rate-limit and return 429 errors.
Why it matters: Without retry logic, the skill fails mid-analysis when it should gracefully degrade.
✗ Bad
Call list_transactions → 429 error → Skill crashes
✓ Good
Call list_transactions → 429 error → Wait 30 seconds → Retry → If still blocked, offer fallback: "PayPal is temporarily rate-limited. Would you like to switch to QuickBooks/Square, or continue with partial data?"
Square integration (future enhancement)
Square is listed as an optional connector for content-strategy, but the full integration path is not yet implemented. This document outlines what's needed.
Current state
- Square is named in
reference/connectorsbut not fully wired into the workflow - QuickBooks and PayPal are the primary, tested paths
What needs to happen
1. Location ID discovery
Square organizations can have multiple locations. Before pulling orders, we need to:
1. Call make_api_request with service="locations" and method="list" to discover available locations 2. Ask user: "Which location(s) should I analyze?" (or default to primary) 3. Fetch location ID(s) for subsequent calls
2. Order fetching
For each location ID:
Call list_orders with:
- location_id: <from step 1>
- begin_time: <90 days ago, ISO 8601>
- end_time: <now, ISO 8601>
- sort_order: "DESC"Extract:
- Order date
- Line items (product name, quantity, price)
- Total revenue per order
3. Categorization
Square orders may not have explicit "product" or "service" taxonomy — items live in catalog. Correlate line items to catalog entries to extract product names and categories.
Why it's stubbed
1. No test account — would need a Square merchant account to validate end-to-end 2. Catalog complexity — Square's catalog model is more flexible than QuickBooks and adds surface area for errors 3. Location multiplicity — QuickBooks and PayPal have simpler single-account models; Square requires user to pick a location
How to implement
1. Obtain a Square sandbox/test account 2. Write scenarios for single-location and multi-location merchants 3. Add reference/square-orders-example.md with worked example 4. Update SKILL.md workflow to include Square as co-equal path (not just "also supported") 5. Run through scenarios with a Square user before shipping
Time estimate
~4 hours for discovery + implementation + testing, assuming a test account is available.
Related skills
How it compares
Pick content-strategy for editorial and messaging planning; use SEO audit skills when you need technical site health checks rather than campaign narrative design.
FAQ
Which sales sources are supported?
QuickBooks (invoice line items), PayPal (list_transactions), and Square (orders by location). CSV fallback uses industry benchmarks when history is thin.
Does this skill create social posts or images?
No. Output is strategic only: a brief with push/hold/reposition guidance, ready to feed canva-creator after owner approval.
How are top performers measured?
Ask the owner to choose revenue, profit margin, sales velocity, or a combination before analysis.