Training
AI Tool Setup
SOP: AI Tool Setup Guide
Section titled “SOP: AI Tool Setup Guide”Last Updated: 2026-03-26 Version: 1.0
Purpose
Section titled “Purpose”One-time setup guide for Claude Code, Cloudflare Workers, API tokens, and per-client Claude projects. Complete this during your first week. These tools are your daily drivers for content creation, data analysis, and technical implementation.
Estimated Time: 2-3 hours Prerequisites: Completion of 11-seo-foundation-training.md
Section 1: Claude Code Setup
Section titled “Section 1: Claude Code Setup”Claude Code is your AI command center. Generates content, analyzes data, creates schemas. Used daily.
Step 1.1: Install Claude Code via npm
Section titled “Step 1.1: Install Claude Code via npm”Open terminal and install:
npm install -g @anthropic-ai/claude-codeTroubleshooting:
- “command not found: npm” → Install Node.js first: https://nodejs.org/ (LTS recommended)
- Permission errors → Try:
sudo npm install -g @anthropic-ai/claude-code - Verify:
claude-code --version
Step 1.2: Get Your Anthropic API Key
Section titled “Step 1.2: Get Your Anthropic API Key”- Go to https://console.anthropic.com/
- Sign up or log in with work email
- Go to Settings > API Keys
- Click Create New API Key
- Copy the key (you won’t see it again)
- Store securely (next step)
Security Note: This key is sensitive. Never share it, never commit to git, never post in Slack.
Step 1.3: Set Your API Key in Shell Profile
Section titled “Step 1.3: Set Your API Key in Shell Profile”For Mac/Linux (zsh or bash):
nano ~/.zshrc # or ~/.bashrc
# Add this line at the end:export ANTHROPIC_API_KEY="sk-ant-xxxxxxxxxxxxx"
# Save (Ctrl+O, Enter, Ctrl+X)
# Reload:source ~/.zshrc # or ~/.bashrcFor Windows (PowerShell):
[System.Environment]::SetEnvironmentVariable('ANTHROPIC_API_KEY', 'sk-ant-xxxxxxxxxxxxx', 'User')Verify:
echo $ANTHROPIC_API_KEYShould return your key (truncated). If blank, setup failed.
Step 1.4: Create Local Directory Structure
Section titled “Step 1.4: Create Local Directory Structure”mkdir -p ~/tekton-growth/clientsmkdir -p ~/tekton-growth/templatesmkdir -p ~/tekton-growth/scriptsmkdir -p ~/tekton-growth/outputStep 1.5: Test Your Setup
Section titled “Step 1.5: Test Your Setup”claude-code "Write a 100-word blog post about local SEO for a plumbing business in Austin, TX. Include keywords 'emergency plumber austin' and 'plumbing repair near me'."Expected output: A blog post draft in your terminal
If it fails:
- Check API key:
echo $ANTHROPIC_API_KEY - Check internet connection
- Verify API credits (console.anthropic.com)
- Slack #tech-support if stuck
Section 2: Per-Client Claude Projects
Section titled “Section 2: Per-Client Claude Projects”Each client gets their own Claude project on Claude.ai. Keeps context separated, enables faster, accurate prompting.
Step 2.1: Create a New Claude Project
Section titled “Step 2.1: Create a New Claude Project”- Go to https://claude.ai/
- Click Projects (left sidebar)
- Click Create New Project
- Name it:
[Client Name] - [Year](e.g., “Austin Plumbing Co - 2026”) - Click Create
Step 2.2: Upload Project Instructions
Section titled “Step 2.2: Upload Project Instructions”Customize and upload this template to each project:
Template: Client Project Instructions
You are an SEO specialist working on [CLIENT NAME]'s local SEO campaign.
---BUSINESS PROFILEBusiness Name: [Full legal name]Website: [URL]Service Areas: [Cities/regions served]Primary Service: [Main offering]Years in Business: [X]Unique Value Prop: [What sets them apart]
---AUDIENCE AVATARPrimary Customer: [Name, age, pain point, intent]Search Intent: [What are they looking for]Decision Drivers: [Cost, speed, reputation, expertise, location]
---TARGET KEYWORDS (Priority Order)1. [Keyword 1] – Volume [X], Difficulty [X/10]2. [Keyword 2] – Volume [X], Difficulty [X/10][Up to 15 total]
---BRAND VOICETone: [Professional, casual, expert, friendly]Language Style: [Simple explanations, technical, storytelling]Example content: [URL of best existing page]
---WEBSITE PLATFORMPlatform: [WordPress, Squarespace, GHL, other]Host/Performance: [Strengths and constraints]Editing Access: [Who can edit, any limitations]
---CONTENT GUIDELINESContent types: [Blogs, service pages, FAQs, GBP posts, etc.]Publishing cadence: [X posts per month]Content length: [500w, 1500w, 3000w]
---TECHNICAL DETAILSGBP Status: [Verified? Categories optimized? Review count]Mobile: [Good, needs work, terrible]Site speed: [Good, acceptable, needs work]Current schema: [What's already implemented]Analytics: [GA4 set up? GHL connected]
---COMPETITOR INTELTop 3 competitors: [Names and domains]Competitor advantage: [What they're doing better]Opportunity gaps: [What they're missing]
---PREVIOUS WORKBest performing content: [URL and why]Worst performing content: [URL and what failed]Already tried: [Campaigns, keywords, tactics]
---END INSTRUCTIONS
You have all context needed to create SEO content and strategy for this client.When I ask to "generate a blog post" or "analyze data," apply all context above.Always confirm details match before finalizing output.Step 2.3: Upload Supporting Documents
Section titled “Step 2.3: Upload Supporting Documents”For each project, upload (if available):
- Brand Guidelines PDF (logo, colors, fonts, tone)
- Keyword Research spreadsheet (list with volume, difficulty, intent)
- Competitor Analysis (top 3 competitors’ backlinks, content profile)
- Audience Avatar Document (detailed customer persona)
- Content Audit (best and worst performing pages)
- GBP Audit (current state, categories, photos count)
How to upload:
- Open the project
- Click Upload (in chat interface)
- Select file (PDF, .xlsx, .txt, .md supported)
- Reference in prompts
Step 2.4: Test the Project
Section titled “Step 2.4: Test the Project”Send a test prompt:
Based on my business profile and audience, write 3 blog post topic ideas that would resonate with my primary customer avatar. Rank by search volume and difficulty. Explain why each would work.Expected output: 3 custom topic ideas tailored to their business
If it’s generic: Update project instructions and try again
Section 3: Cloudflare Workers Setup
Section titled “Section 3: Cloudflare Workers Setup”Cloudflare Workers is where we inject schema, handle redirects, and optimize performance without touching client site code.
Step 3.1: Access Tekton Growth Cloudflare Account
Section titled “Step 3.1: Access Tekton Growth Cloudflare Account”- Manager sends you account access link (email or 1Password)
- Accept invitation, set your password
- Log in to https://dash.cloudflare.com/
- You should see “Tekton Growth” account in top-left dropdown
- Ask manager for “Editor” access for your first month
Step 3.2: Install Wrangler CLI
Section titled “Step 3.2: Install Wrangler CLI”npm install -g wranglerVerify:
wrangler --versionStep 3.3: Authenticate Wrangler
Section titled “Step 3.3: Authenticate Wrangler”wrangler loginThis opens a browser. Click “Authorize Wrangler.” You’ll see confirmation in terminal.
Step 3.4: Standard Project Structure
Section titled “Step 3.4: Standard Project Structure”mkdir ~/tekton-growth/workers/schema-injectorcd ~/tekton-growth/workers/schema-injectorStep 3.5: Create a Schema Injector Worker
Section titled “Step 3.5: Create a Schema Injector Worker”Use Claude Code to generate production-ready Workers:
claude-code "Create a Cloudflare Worker that injects LocalBusiness schema for [CLIENT NAME].The business is: [NAME], located at [ADDRESS], phone [PHONE], website [URL].Include FAQSchema for these FAQs: [FAQ list].Output the complete src/index.js file ready to deploy."Copy output into src/index.js.
Step 3.6: Configure wrangler.toml
Section titled “Step 3.6: Configure wrangler.toml”Edit wrangler.toml:
name = "schema-injector-client-name"main = "src/index.js"compatibility_date = "2026-03-01"
[env.staging]routes = [ { pattern = "staging.clientdomain.com/*", zone_name = "clientdomain.com" }]
[env.production]routes = [ { pattern = "clientdomain.com/*", zone_name = "clientdomain.com" }, { pattern = "www.clientdomain.com/*", zone_name = "clientdomain.com" }]Step 3.7: Test Locally
Section titled “Step 3.7: Test Locally”wrangler devUsually http://localhost:8787. Visit to see Worker in action.
Expected output: Client’s website with schema injected
Debugging:
- Check browser console (F12) for errors
- Check terminal for Worker errors
- Verify schema in HTML source (Ctrl+U, search
ld+json)
Step 3.8: Deploy to Staging
Section titled “Step 3.8: Deploy to Staging”wrangler deploy --env stagingTest on the staging URL.
Step 3.9: Deploy to Production
Section titled “Step 3.9: Deploy to Production”After staging verification:
wrangler deploy --env productionStep 3.10: Post-Deployment Verification
Section titled “Step 3.10: Post-Deployment Verification”- Visit client’s live site
- View page source (Ctrl+U)
- Search for
ld+json - Confirm schema appears with correct data
- Test in Google Rich Results: https://search.google.com/test/rich-results
Section 4: Security & Best Practices
Section titled “Section 4: Security & Best Practices”API Key Security
Section titled “API Key Security”DO:
- Store in environment variables (never in code)
- Use 1Password for backup storage
- Rotate keys quarterly
- Use separate keys for dev/prod if possible
DON’T:
- Commit API keys to git (even private repos)
- Share keys in Slack, email, or chat
- Use one key for multiple team members
- Leave keys in terminal history
If Exposed:
- Immediately regenerate key in Anthropic Console
- Tell your manager
- Check API usage for suspicious activity
- Update all saved keys
Client Data Security
Section titled “Client Data Security”DO:
- Use per-client Claude projects (data separated)
- Reference client data by context, not by pasting sensitive info
- Delete local files after completing projects
- Use 1Password for client credentials
DON’T:
- Paste client passwords, API keys, credentials into Claude
- Include PII (names, addresses) except when necessary
- Create public Claude projects
- Share client project links
Section 5: Daily Workflow Cheat Sheet
Section titled “Section 5: Daily Workflow Cheat Sheet”| Task | Tool | Command/Location |
|---|---|---|
| Generate blog post | Claude Code | Use Prompt from 13-ai-prompt-library.md |
| Create service page | Claude Code | Use Prompt 3.1 from library |
| Write meta descriptions | Claude Code | Use batch Prompt 6.1 |
| Analyze keywords | Claude Code | Upload CSV, ask for gaps |
| Generate schema | Claude Code | Use Prompt 9.1 or 9.2 |
| Create GBP posts | Claude.ai project | Use Prompt 2.1 in client project |
| Inject schema live | Cloudflare Worker | Deploy from ~/tekton-growth/workers/ |
| Test schema | Browser | Visit site, Ctrl+U, search ld+json |
| Verify with Google | Google Rich Results | https://search.google.com/test/rich-results |
| Store outputs | Local folder | ~/tekton-growth/output/[client-name]/ |
Troubleshooting
Section titled “Troubleshooting”Claude Code won’t run
- Check Node.js:
node --version - Reinstall:
npm install -g @anthropic-ai/claude-code - Check PATH:
echo $PATH
API Key not found
- Verify export:
echo $ANTHROPIC_API_KEY - Reload shell:
source ~/.zshrc - Regenerate key if lost
Wrangler deploy fails
- Re-authenticate:
wrangler logoutthenwrangler login - Verify “Editor” access
- Check internet
Worker not injecting schema
- Verify deployed: Check Cloudflare dashboard Workers tab
- Verify route matches domain: Check wrangler.toml
- Clear cache: Ctrl+Shift+Delete then Ctrl+Shift+R
- Check Worker logs in dashboard
Related SOPs
Section titled “Related SOPs”- 11-seo-foundation-training.md — Complete before this
- 13-ai-prompt-library.md — Prompts to use with these tools
- 01-role-seo-specialist.md — SEO Specialist responsibilities
Version Control:
- v1.0 (2026-03-26): Rewritten with seo-ops-skills project reference, updated skill list, Cloudflare Workers schema injection, per-client Claude project setup
- v1.1 (TBD): [Updates as process refined]