Intermediate

5 Skills Every Business Needs

What this gives you: Five ready-to-use skills you can copy-paste into your setup today: meeting prep that pulls context from your calendar and CRM, auto follow-ups from meeting transcripts, one-click invoicing, content writing in your voice, and security monitoring.

Paste this guide into Claude Code and it will walk you through every step interactively.

Once you understand how skills work, the question becomes: which ones are worth building first? These five cover the highest-leverage, most-repeated workflows in any service business. Between them they eliminate roughly 3-4 hours of manual work per day. Build them in this order - each one builds intuition you need for the next.

1. /meeting-prep

Pre-call prep is the skill with the fastest visible ROI. Without it, you spend 10-15 minutes before every call digging through your CRM, searching your inbox for the last email, trying to remember what you promised last time. With it, you type one command and get a structured brief in under 60 seconds.

What it does

Pulls from Google Calendar (time, link, attendees), Fireflies (previous transcripts, pain points, commitments), GoHighLevel (pipeline stage, deal value, conversation history), and optionally web search for new prospects. Outputs a structured briefing document you can read in 3 minutes flat.

When to use it

Invoke it 5-10 minutes before any call - discovery calls, follow-up calls, client check-ins, partnership conversations. It's especially valuable for follow-up calls where you need to remember exactly what was said and what you promised.

Full SKILL.md

--- name: meeting-prep description: > Pre-call briefing from Calendar, Fireflies transcripts, and GHL CRM. Use when user mentions an upcoming call, meeting, or client session. triggers: - "meeting prep" - "prep for my call" - "I have a call with" - "prepping for" --- # /meeting-prep Produce a pre-call brief. Work fast. Every line must be useful. ## Steps 1. Identify contact name/company. Ask if not provided. 2. Google Calendar MCP - find matching event, extract time + link 3. Fireflies MCP - search contact name, pull last 2-3 transcripts 4. GHL MCP - search contact, pull stage, value, last 5 messages 5. Web search if Fireflies returns nothing (new prospect) 6. Compile briefing document ## Output Format ``` # Pre-Call Brief: [Name] Date: [date] at [time] | Link: [url] Stage: [pipeline stage] | Value: [£ amount] ## Who They Are [2-3 sentences max] ## Where We Left Off - [bullet from last transcript] - [bullet from last transcript] ## Their Pain Points - [exact phrases they used] ## My Open Commitments ⚠️ - [what I promised - bold these] ## Questions to Ask 1. [targeted question] 2. [targeted question] 3. [targeted question] ## Suggested Close [single next step to propose] ``` ## Rules - Never invent data. If a source has nothing, write "No data." - Commitments from previous calls must be bolded and flagged ⚠️ - Bullets max 12 words each - Skip "Where We Left Off" for first meetings

Example output

# Pre-Call Brief: Tom Fielding / Fielding HVAC Date: Today at 3:00 PM | Link: meet.google.com/abc-def-ghi Stage: Proposal Sent | Value: £2,400/month ## Who They Are HVAC installation company, 6 engineers, South Manchester. Tom is the owner-operator. Been running for 11 years, mostly word of mouth. ## Where We Left Off - Concerned about AI calls sounding "robotic" with older customers - Asked for a demo with a real lead before committing - We quoted £2,400/month for inbound + lead reactivation combo ## My Open Commitments ⚠️ - Send demo recording by Tuesday ⚠️ - Provide sample call transcript from similar client ⚠️ ## Questions to Ask 1. Did you get a chance to listen to the demo I sent? 2. What's your current process when a lead calls after hours? 3. How many missed calls do you estimate per week?

2. /lead-follow-up

The follow-up email after a call is one of the highest-leverage touchpoints in a sales process. It confirms what was discussed, restates the value, and drives toward a next step. Most people write it from memory 2 hours after the call when the details are already fading. This skill writes it from the Fireflies transcript while you're still on the call.

What it does

Searches Fireflies for the most recent transcript matching the contact name. Extracts the key discussion points, their stated pain, the solution you proposed, and any agreed next steps. Then drafts a personalised, non-AI-sounding follow-up email in your voice - with a subject line, opening that references something specific they said, and a clear single CTA.

When to use it

Run it immediately after hanging up while the call is still recording/processing in Fireflies. Most calls are indexed within 5-10 minutes. If Fireflies hasn't indexed yet, run it again after 10 minutes.

SKILL.md template

--- name: lead-follow-up description: > Generate a personalised post-call follow-up email from the Fireflies transcript. Use after any sales call, discovery call, or client meeting. triggers: - "follow up" - "follow-up email" - "write a follow up" - "post-call email" --- # /lead-follow-up ## Steps 1. Ask for contact name if not provided 2. Search Fireflies MCP for most recent transcript matching the name 3. Extract from transcript: - Their main pain point (exact words where possible) - The solution/approach you described - Any pricing or timeline discussed - Agreed next steps 4. Draft email using the template below 5. Show draft and ask: "Any changes before I copy this?" ## Email Template ``` Subject: [Something specific from the call - not "Great speaking with you"] Hi [First name], Really enjoyed our conversation earlier. [One sentence referencing something specific they said - their situation, not generic praise.] As discussed, [brief recap of what you proposed and why it fits]. Next step: [the exact action agreed on call, with a date if possible]. I'll [your commitment]. Let me know if you have any questions before then. [Sign-off] ``` ## Rules - Subject line must reference something specific from the call - No "I hope this email finds you well" or similar filler - No em dashes. Use hyphens or commas. - No rhetorical questions - Keep email under 180 words - If no transcript found, say so and ask for call notes manually
Tip: Add your writing rules once in the SKILL.md, not in every session. "No em dashes, no rhetorical questions, keep under 180 words" as permanent rules means you never have to remind Claude again.

Want these skills installed and configured for your business?

Custom skill library, MCP integrations, and a dashboard - done for you in a week.

Book a Call

3. /create-invoice

Invoicing is one of those tasks that takes 15 minutes and feels important enough that you do it yourself, but is actually completely mechanical once you've done it twice. This skill pulls the client's details from your CRM, applies your standard pricing, generates a professional invoice, and either sends it or saves it as a PDF.

What it does

Looks up the client in GoHighLevel, extracts their company name, email, and contact details. Applies a pricing engine (setup fee + monthly retainer + any one-off line items you specify). Generates a PDF invoice using a template. Optionally sends via email or saves to a specified directory.

When to use it

End of month for recurring invoices, immediately after a project sign-off for setup fees, or whenever a client asks for an invoice. Can also be invoked mid-conversation: "Create an invoice for Tom for the £1,200 setup fee."

--- name: create-invoice description: > Generate a professional invoice from CRM data and pricing. Supports setup fees, monthly retainers, and custom line items. Saves as PDF. triggers: - "create invoice" - "generate invoice" - "invoice for" - "send an invoice" --- # /create-invoice ## Steps 1. Identify client. Ask for name if not provided. 2. GHL MCP - fetch contact details (name, company, email, address) 3. Ask for line items if not specified: - Setup fee (one-time) - Monthly retainer - Any additional line items 4. Calculate total + VAT (20% unless client says exempt) 5. Generate invoice HTML using the template in scripts/invoice.html 6. Convert to PDF: `~/.claude/skills/create-invoice/scripts/to-pdf.sh` 7. Save to ~/Documents/Invoices/[YYYY-MM]/[ClientName]-[InvoiceNum].pdf 8. Confirm save location, ask if they want it emailed ## Invoice Numbering Format: RJM-YYYY-NNN (e.g. RJM-2026-047) Read last invoice number from ~/.claude/skills/create-invoice/counter.txt Increment by 1 and update the file after each invoice ## Rules - Always show the full invoice summary before saving - Never send without explicit "yes, send it" confirmation - VAT number: include only if client is VAT registered (ask if unsure) - Payment terms: 14 days unless client specifies otherwise - Currency: GBP by default

4. /content-write

Short-form content for LinkedIn, TikTok, Instagram, and YouTube Shorts. The challenge with AI-written content isn't capability - Claude can write scripts all day. The challenge is voice-matching and pattern-avoidance. Left unconstrained, Claude writes content that reads like Claude. This skill constrains it hard: specific structure rules, a list of forbidden patterns, and a voice profile it must match.

What it does

Takes a topic, angle, or rough idea and produces a short-form script in your voice. Follows a hook-body-CTA structure. Enforces voice rules (no rhetorical questions, no staccato fragments, no em dashes, no filler phrases). Outputs speech-only text - no stage directions, no production notes.

When to use it

Daily content production. Give it a topic or a lesson from a recent client interaction and it turns it into a deployable script in 30 seconds. Can batch-produce 5-10 scripts at once if you give it a content theme.

--- name: content-write description: > Write short-form video scripts in the user's voice. Enforces style rules and avoids AI writing patterns. Outputs speech-only text. triggers: - "write a script" - "content script" - "short-form" - "write me a video" --- # /content-write ## Audience Agency owners, coaches, and consultants. They're busy, sceptical of hype, and have heard most AI pitches before. Speak to their outcome, not the tech. ## Script Structure Hook (0-3s): Bold statement or surprising fact. No question marks. Body (3-45s): 3-4 concrete points. Each one moves forward. CTA (45-60s): Single action. Clear. No "smash that like button." ## Forbidden Patterns - Rhetorical questions of any kind - "Not X. Y." staccato fragments - Em dashes (use hyphens or restructure) - "Imagine if..." or "What if I told you..." - "Game changer", "revolutionary", "unlock" - AI buzzword soup: "leverage", "synergy", "paradigm" - Stage directions: [cut to], [screen recording], [b-roll] - Filler openings: "So...", "Hey guys...", "In today's video..." ## Voice Profile Conversational but authoritative. Like explaining to a smart friend who knows business but not AI. Concrete examples over abstractions. Short sentences. Active voice. No hedging. ## Output Format Plain speech text only. One paragraph per beat. 60-90 words total. No formatting symbols, no stage directions, no timecodes. ## Rules - Read back the topic and angle before writing - Write 2 versions with different hooks, show both - Always end with a single clear action, not a question

Example output

Topic: Why most AI automations fail in the first 30 days Version 1: Your AI automation works perfectly in testing and breaks on day one in production. Here is why. Most people build automations around clean data and happy paths. Real businesses have inconsistent data, edge cases, and people who use the system in ways nobody planned for. The fix is not more testing. It is building fallbacks for every failure point before you go live. Catch the error, log it, notify a human. Then you learn fast and patch fast. That is how you get to 90 days without a failure. Version 2: The first 30 days of any AI automation are the most dangerous. The system is live, your team is watching, and every failure is visible. Most failures trace back to one mistake: assuming the data will be clean. It will not be. Phone numbers will be in three different formats. Names will have typos. Fields will be empty. Build for the messy data first. Validate inputs, add fallback branches, and log everything. Do that and your automation survives contact with real users.

5. /security-audit

Security is the skill most people skip until something goes wrong. By then, an API key is in a commit, a .env file is in a public repo, or a package.json has a typo that installed malware instead of the intended package. This skill runs proactively. Run it monthly, or any time you've added a new integration.

What it does

Scans your project directories for hardcoded secrets, checks all .gitignore files for missing entries, audits package.json for suspicious or misspelled package names, checks git history for committed credentials, and reviews your .env file usage patterns. Produces a report with pass/fail for each check and an action list for any failures.

When to use it

Monthly cadence at minimum. Also run it after adding any new API integration, after onboarding a new team member, and before making any repository public.

--- name: security-audit description: > Audit for leaked API keys, missing .gitignore entries, suspicious package names, and committed secrets. Run monthly or after new integrations. triggers: - "security audit" - "check for leaked keys" - "audit secrets" --- # /security-audit ## Scope Run from the project directory if one is specified. Otherwise audit: - All active project dirs in ~/Documents/RJ Media Agency/ - ~/.claude/ (skills, CLAUDE.md, memory files) - ~/.env and any project-level .env files (existence check only - never read contents) ## Checks ### 1. Hardcoded Secrets Scan Search all .js, .ts, .py, .sh, .md, .json files for patterns: - sk-[a-zA-Z0-9]{20,} (OpenAI/Anthropic keys) - AKIA[A-Z0-9]{16} (AWS access keys) - ghp_[a-zA-Z0-9]{36} (GitHub PATs) - xoxb-[a-zA-Z0-9-]+ (Slack tokens) - Any string matching: api_key, api-key, apikey, secret, password, token followed by = or : and a non-placeholder value Exclude: node_modules/, .git/, .env files, test fixtures ### 2. .gitignore Audit For each project with a git repo, check .gitignore contains: - .env - .env.local - .env.*.local - node_modules/ - *.pem - *.key Report any missing entries as FAIL ### 3. package.json Audit For each package.json found: - List all dependencies and devDependencies - Flag any package names that contain typos of popular packages (e.g. "expresss", "recat", "mongooose", "axois") - Flag any packages with very low download counts (proxy: unknown packages) - Flag packages with suspicious naming: anything with "stealer", "grabber", "exfil" in the name ### 4. Git History Check In each git repo: `git log --all --full-history -- "*.env" "*.key" "*.pem"` If any .env or key files appear in git history, flag as CRITICAL ### 5. .env File Pattern Check Confirm .env files exist where expected: - ~/.env (global secrets) - Project-level .env where integrations are used Do NOT read or display contents. Just confirm presence. ## Output Format ``` # Security Audit Report - [date] ## Summary PASSED: X checks FAILED: Y checks CRITICAL: Z issues ## Findings ### PASS - .gitignore coverage All 4 active projects have .env in .gitignore. ### FAIL - Hardcoded secret found File: /path/to/file.js, Line 34 Pattern matched: api_key = "sk-..." Action: Move to .env, reference as process.env.KEY_NAME ### CRITICAL - Secret in git history Repo: my-project File committed: .env (commit abc1234, 2026-01-15) Action: Rotate the key immediately. Use git-filter-repo to purge history. ## Action List 1. [highest priority action] 2. [second action] ``` ## Rules - NEVER display contents of .env files - NEVER display full secret values found in scans - show first 6 chars + *** - If CRITICAL issues found, say so immediately before running other checks - Always end with a numbered action list sorted by severity
Tip: The security audit skill is one you want to invoke at the start of new projects too, not just periodically. Run it before you first push to a remote repo and before you make any repo public. It takes 30 seconds and has caught real issues on real projects.
Next Guide
Connecting MCP Servers