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:
- Pulls sales data from QuickBooks or PayPal (transaction history, product/service revenue by date)
- Identifies patterns — top-selling products, slow movers, seasonal trends
- Layers in context — seasonality (user-provided or industry benchmarks), past performance
- Produces a 30-day brief — ranked recommendations of what to push, what to hold, what offers to consider
- 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:
- Call
company-info to check if Industry is populated
- 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-update with the user's industry
- Confirm: "Profile updated. Ready to pull your sales data."
- 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:
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 in reference/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).
1---
2name: content-strategy
3description: >
4 Analyzes sales data from PayPal and QuickBooks to find top performers and
5 slow movers, layers in seasonality, and produces a prioritized 30-day
6 content brief: what to push, what offers to run, what to hold. Strategic
7 output only — no calendars or assets. Use when the user asks what to post,
8 wants a content plan, asks what's selling, or what to promote this month.
9---
10
11# Content Strategy
12
13> **Status:** MVP draft
14> **Owner:** JJ
15> **Version:** 0.2.0 · Phase MVP
16> **Category:** Marketing & Sales
17
18## Quick start
19
20When an SMB owner asks "what should I post this month?" or "what's my content plan?", this skill:
21
221. **Pulls sales data** from QuickBooks or PayPal (transaction history, product/service revenue by date)
232. **Identifies patterns** — top-selling products, slow movers, seasonal trends
243. **Layers in context** — seasonality (user-provided or industry benchmarks), past performance
254. **Produces a 30-day brief** — ranked recommendations of what to push, what to hold, what offers to consider
265. **Gets owner approval** before the brief feeds into `canva-creator` for asset generation
27
28The output is strategic only — no calendar scheduling, no creative assets.
29
30---
31
32## Workflow
33
34### Step 1: Pre-flight check (QuickBooks only)
35
36If using QuickBooks, verify the business profile is set up:
37
381. Call `company-info` to check if `Industry` is populated
392. If missing or "Unknown":
40 - Ask: "I need your business category to pull the right seasonality benchmarks. What industry are you in?" (e.g., retail, services, SaaS)
41 - Call `quickbooks-profile-info-update` with the user's industry
42 - Confirm: "Profile updated. Ready to pull your sales data."
433. If profile is set, proceed to Step 2
44
45**Note:** PayPal and Square do not require profile setup.
46
47### Step 2: Clarify priorities & metrics
48
49When triggered, ask the user:
50
51- **"How do you want me to measure 'top performers'?"**
52 - By total revenue?
53 - By profit margin?
54 - By sales velocity (how fast they're selling)?
55 - Combination of the above?
56
57- **"Do you have seasonality patterns in mind?"**
58 - If yes: "Tell me about them" (capture user's known seasonality)
59 - If no: "I'll use industry benchmarks for your category"
60
61### Step 3: Pull and analyze sales data
62
63Fetch data from the authenticated connector (QuickBooks, PayPal, or Square, user's choice):
64
65- **Date range:** Last 90 days (or full history if <90 days available)
66- **Extract:** Product/service name, date sold, revenue, quantity
67
68**Connector-specific notes:**
69
70- **QuickBooks:** Fetch invoice line items via `profit-loss-quickbooks-account` (pre-flight sets industry context)
71- **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?"
72- **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 in `reference/square-integration.md`.
73
74**Fallback:** If <3 months of data, use industry seasonality benchmarks for the SMB's category (e.g., retail, services, e-commerce)
75
76Identify:
77- **Top 3–5 performers** (by user's chosen metric)
78- **Bottom 3–5 slow movers** (consider holding or repositioning)
79- **Trending up** (gaining momentum in last 30 days)
80- **Trending down** (losing momentum)
81
82### Step 4: Layer in seasonality
83
84- **User-provided:** If they shared seasonal patterns, weight recommendations against them
85- **Industry benchmarks:** For categories without strong user data (e.g., "Q1 is strong for tax services")
86- **Timing:** Flag products that should ramp up/down in the next 30 days based on seasonal patterns
87
88### Step 5: Build the 30-day brief
89
90Structure:
91- **Executive summary** (1–2 sentences: "Your best sellers are X and Y. Seasonal shift to Z is starting.")
92- **Push hard** (Top 2–3 products + recommended content angle, e.g., "Case study on ROI", "How-to video")
93- **Hold steady** (Middle performers; maintain visibility but no heavy lift)
94- **Reposition or pause** (Slow movers; consider discounting, bundling, or pausing)
95- **Seasonal opportunities** (What's coming next month that you should position for now)
96- **Recommended offers** (Bundle, discount, or free-trial strategy based on data)
97
98Example length: **200–400 words** (brief and actionable, not essay-length).
99
100### Step 6: Owner approval & iteration
101
102Present the brief to the owner. Ask:
103- "Does this match your gut?"
104- "Anything to adjust?"
105- "Ready to feed this to canva-creator for asset generation?"
106
107Iterate if needed; once approved, return the final brief as structured JSON (ready for downstream tools).
108
109---
110
111## Gotchas & edge cases
112
113See [`reference/gotchas.md`](reference/gotchas.md) for common pitfalls.
114
115---
116
117## Examples
118
119See [`reference/examples/`](reference/examples/) for worked examples (SaaS, retail, services).