Gary Vaynerchuk's jab-jab-jab-right-hook framework applied to a personal portfolio rotation on X and LinkedIn. Jabs = build-in-public + educational (value). Hooks = promo (the ask). Each property in the user's configured portfolio (see `~/.config/makerskills/jab-hook/properties.yaml`) gets a hook at least once every ~3 weeks; jabs fill the rest. Drafts go into the user's Typefully workspace via MCP. Modes — plan (7-day plan), pick-next (single post), audit (coverage report), draft (specific post). Triggers on "/jab-hook," "what should I post," "plan my socials," "next promo," "next jab," "next hook," "social rotation," "promote [property]," "BIP post," "audit my socials," "what haven't I posted about.
npx skills add https://github.com/coreyhaines31/makerskills --skill jab-hook
Gary Vaynerchuk's framework applied to your configured portfolio: keep the feed mostly *jabs* (value — BIP + educational) so the *hooks* (promo) earn attention when they land. Drafts to your personal Typefully workspace.
One-time setup: see references/properties.md and references/typefully-config.md to configure your real portfolio + workspace. Personal config lives in ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/jab-hook/.
~/.config/makerskills/jab-hook/properties.yaml): one per property you want to promote on rotationDetect from the trigger:
| User says | Mode |
|---|---|
| "plan my socials," "next week's posts" | plan |
| "what should I post," "next promo," "pick next" | pick-next |
| "audit my socials," "what's overdue," "what haven't I posted about" | audit |
| "draft a promo for X," "BIP post about Y," "educational about Z" | draft |
If ambiguous, confirm.
references/properties.md — the 6 rotation slots and angle ideasreferences/voice.md — the user's voice rules per platformreferences/content-types.md — templates for promo / BIP / educationalmcp__typefully__typefully_list_social_sets and ask which social set is your personal (X + LinkedIn). Save the ID to ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/jab-hook/typefully.yaml for future runs (schema in references/typefully-config.example.yaml — never save it inside the skill folder; upgrades wipe it).mcp__typefully__typefully_list_drafts filtered to the last 30 daysDay | Type | Property/Topic | Hook | Draft summaryFollow references/voice.md and references/content-types.md. Default: single post, one per platform (X version + LinkedIn version). Thread only if the second post earns its place.
Link placement (load-bearing): never put a URL in the body. Default is no link at all — let curiosity drive the click. When a link is needed, draft it as a first comment for LinkedIn (Typefully supports auto-comment) or a reply for X. The body always stands alone.
For promo and educational posts, optionally scan inspiration accounts (references/inspiration.md) before drafting:
${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/jab-hook/patterns.local.md (create if missing) so they accumulate — references/patterns.md documents the starter patterns and stays read-onlySkip inspiration scan when the user says "just draft it" or when iterating on an existing post.
Ask: *"Push to Typefully now? (X + LinkedIn, your personal workspace)"*
If yes:
${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/jab-hook/typefully.yaml (setup notes in references/typefully-config.md)mcp__typefully__typefully_create_draft once for X, once for LinkedIn (or once with both platforms if the social set spans both)paste — clean output for pasting into Typefully / LinkedIn / X manually if the MCP path doesn't fitsocial-fetch — pull inspiration-account posts for structural analysis (replaces inline agent-browser)second-brain — the Content Ideas wiki page hoppers hooks, frameworks, stories; /jab-hook drafts pull candidates from theredeep-research — when a promo needs a stat or citation the draft doesn't have yetmarketingskills:social — generic social frameworks, useful when teaching strategy vs shipping your own postsmarketingskills:copywriting — for hook / headline ideation when stuck~/.claude/memory/feedback_social_link_placement.md. Body posts with inline URLs get algorithm-suppressed on both platforms.${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/jab-hook/voice.local.md.~/.claude/memory/feedback_promo_voice.md (if present) — conviction-coded CTAs + reader-perspective framing~/.claude/memory/feedback_social_cadence.md (if present) — cadence cap (e.g., 2 posts/day per platform)Automatically organizes invoices and receipts for tax preparation by reading messy files, extracting key information, renaming them consistently, and sorting them into logical folders. Turns hours of manual bookkeeping into minutes of automated organization.
Expert guidance for systematic backtesting of trading strategies. Use when developing, testing, stress-testing, or validating quantitative trading strategies. Covers "beating ideas to death" methodology, parameter robustness testing, slippage modeling, bias prevention, and interpreting backtest results. Applicable when user asks about backtesting, strategy validation, robustness testing, avoiding overfitting, or systematic trading development.
This skill calculates key financial ratios and metrics from financial statement data for investment analysis
This skill provides an advanced financial modeling suite with DCF analysis, sensitivity testing, Monte Carlo simulations, and scenario planning for investment decisions
This skill retrieves upcoming earnings announcements for US stocks using the Financial Modeling Prep (FMP) API. Use this when the user requests earnings calendar data, wants to know which companies are reporting earnings in the upcoming week, or needs a weekly earnings review. The skill focuses on mid-cap and above companies (over $2B market cap) that have significant market impact, organizing the data by date and timing in a clean markdown table format. Supports multiple environments (CLI, Desktop, Web) with flexible API key management.
Crypto wallet operations via the awal CLI — sign in, check balances, send USDC/ETH/POL/SOL, trade tokens, fund the wallet, and use the x402 payment protocol to discover paid services, pay for API calls, monetize an API, or query onchain data. Use whenever the user mentions signing in, login, authentication, wallet status, balance, address, sending money, paying someone, transferring tokens, ENS names, swapping/trading/converting tokens, funding/topping up/onramp, USDC, ETH, POL, SOL, the x402 bazaar, paid APIs, monetizing an endpoint, or querying onchain data on Base.
Access real-time and historical stock market data, forex rates, cryptocurrency prices, commodities, economic indicators, and 50+ technical indicators via the Alpha Vantage API. Use when fetching stock prices (OHLCV), company fundamentals (income statement, balance sheet, cash flow), earnings, options data, market news/sentiment, insider transactions, GDP, CPI, treasury yields, gold/silver/oil prices, Bitcoin/crypto prices, forex exchange rates, or calculating technical indicators (SMA, EMA, MACD, RSI, Bollinger Bands). Requires a free API key from alphavantage.co.
Braintree Automation: manage payment processing via Stripe-compatible tools for customers, subscriptions, payment methods, and transactions
Take coreyhaines31/jab-hook from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.