# Directory Structure ``` ├── .dockerignore ├── .gitignore ├── Dockerfile ├── license ├── pyproject.toml ├── README.md ├── requirements.txt ├── smithery.yaml ├── src │ └── osp_marketing_tools │ ├── __init__.py │ ├── codes-llm.md │ ├── guide-llm.md │ ├── meta-llm.md │ ├── on-page-seo-guide.md │ ├── product-value-map-llm.md │ └── server.py └── uv.lock ``` # Files -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- ``` 1 | # .dockerignore file for the project 2 | 3 | # Ignore version control files 4 | .git/ 5 | .gitignore 6 | 7 | # Ignore Python cache and compiled files 8 | __pycache__/ 9 | *.pyc 10 | *.pyo 11 | .pytest_cache/ 12 | .coverage 13 | 14 | # Ignore IDE and editor files 15 | .idea/ 16 | .vscode/ 17 | *.swp 18 | *.swo 19 | 20 | # Ignore build and test artifacts 21 | dist/ 22 | build/ 23 | out/ 24 | test/ 25 | tests/ 26 | *_test.go 27 | 28 | # Ignore environment and secret files 29 | .env* 30 | *.env 31 | *.pem 32 | *.key 33 | *.crt 34 | config.local.* 35 | *.local.yml 36 | 37 | # Ignore documentation and temporary files 38 | docs/ 39 | *.md 40 | README* 41 | tmp/ 42 | temp/ 43 | *.tmp 44 | .local/ 45 | local/ 46 | 47 | # Ignore Docker-related files 48 | Dockerfile* 49 | docker-compose* 50 | 51 | # Ignore project-specific files 52 | uv.lock 53 | ``` -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- ``` 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | dist/ 11 | build/ 12 | *.egg-info/ 13 | *.egg 14 | 15 | # Virtual environments 16 | venv/ 17 | env/ 18 | ENV/ 19 | .env/ 20 | .venv/ 21 | 22 | # IDE specific files 23 | .idea/ 24 | .vscode/ 25 | *.swp 26 | *.swo 27 | .project 28 | .pydevproject 29 | .settings/ 30 | 31 | # Jupyter Notebook 32 | .ipynb_checkpoints 33 | *.ipynb 34 | 35 | # Testing 36 | .coverage 37 | htmlcov/ 38 | .tox/ 39 | .pytest_cache/ 40 | nosetests.xml 41 | coverage.xml 42 | 43 | # Documentation 44 | docs/_build/ 45 | site/ 46 | 47 | # Logs and databases 48 | *.log 49 | *.sqlite 50 | *.db 51 | 52 | # Local development settings 53 | .env 54 | .env.local 55 | .env.*.local 56 | 57 | # OS generated files 58 | .DS_Store 59 | .DS_Store? 60 | ._* 61 | .Spotlight-V100 62 | .Trashes 63 | ehthumbs.db 64 | Thumbs.db 65 | 66 | # mypy 67 | .mypy_cache/ 68 | .dmypy.json 69 | dmypy.json 70 | 71 | # pipenv 72 | Pipfile.lock 73 | 74 | # poetry 75 | poetry.lock 76 | ``` -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- ```markdown 1 | # Open Strategy Partners (OSP) Marketing Tools for LLMs 2 | 3 |  4 | 5 | A comprehensive suite of tools for technical marketing content creation, optimization, and product positioning based on [Open Strategy Partners](https://openstrategypartners.com)' proven methodologies. 6 | 7 | This software is based on the [Model Context Protocol (MCP)](https://openstrategypartners.com/blog/the-model-context-protocol-unify-your-marketing-stack-with-ai/) and is can be used by any LLM client that supports the MCP. 8 | 9 | As of early February 2025, the LLM clients that support MCP include: 10 | - [Claude desktop app](https://claude.ai/download) is the easiest to use for the less technical among us (and it is made by the inventors of the MCP). 11 | - [Cursor IDE](https://www.cursor.com/) is very popular with our developer friends. 12 | - [LibreChat](https://www.librechat.ai/) is an excellent open source AI/LLM interface app. 13 | 14 | Read our vision paper on how [Agentic AI will benefit marketing](https://openstrategypartners.com/blog/mastering-llm-interaction-preparing-marketing-teams-for-agentic-ai-success-with-mcp/). 15 | 16 | ## Features 17 | 18 | ### 1. OSP Product Value Map Generator 19 | Generate structured [OSP product value maps](https://openstrategypartners.com/the-osp-value-map/) that effectively communicate your product's worth and positioning: 20 | - Tagline creation and refinement 21 | - Position statements across market, technical, UX, and business dimensions 22 | - Persona development with roles, challenges, and needs 23 | - Value case documentation 24 | - Feature categorization and organization 25 | - Hierarchical structure for features, areas, and categories 26 | - Validation system for completeness and consistency 27 | 28 | ### 2. OSP Meta Information Generator 29 | Create optimized metadata for web content: 30 | - Article titles (H1) with proper keyword placement 31 | - Meta titles optimized for search (50-60 characters) 32 | - Meta descriptions with clear value propositions (155-160 characters) 33 | - SEO-friendly URL slugs 34 | - Search intent analysis 35 | - Mobile display optimization 36 | - Click-through rate enhancement suggestions 37 | 38 | ### 3. OSP Content Editing Codes 39 | Apply [OSP's semantic editing codes](https://openstrategypartners.com/resources/the-osp-editing-codes/) for comprehensive content review: 40 | - Scope and narrative structure analysis 41 | - Flow and readability enhancement 42 | - Style and phrasing optimization 43 | - Word choice and grammar verification 44 | - Technical accuracy validation 45 | - Inclusive language guidance 46 | - Constructive feedback generation with before/after examples 47 | 48 | ### 4. OSP Technical Writing Guide 49 | Systematic approach to creating high-quality technical content: 50 | - Narrative structure development 51 | - Flow optimization 52 | - Style guidelines 53 | - Technical accuracy verification 54 | - Content type-specific guidance (tutorials, reference docs, API documentation) 55 | - Accessibility considerations 56 | - Internationalization best practices 57 | - Quality assurance checklists 58 | 59 | ### 5. OSP On-Page SEO Guide 60 | Comprehensive system for optimizing web content for search engines and user experience: 61 | - Meta content optimization (titles, descriptions with character limits and keyword placement) 62 | - Content depth enhancement (subtopics, data integration, multi-format optimization) 63 | - Search intent alignment (5 types: informational, navigational, transactional, commercial, local) 64 | - Technical SEO implementation (keyword research, integration protocols, internal linking rules) 65 | - Structured data deployment (FAQ, How-To, Product schemas) 66 | - Content promotion strategies (social media, advertising approaches) 67 | - Quality validation protocol (constructive feedback, diff-based revision system) 68 | - Performance measurement methods (CTR, bounce rate, time on page metrics) 69 | 70 | 71 | ## Usage Examples 72 | 73 | In all of these examples, it is assumed that you will provide the texts that you wish to improve, or the technical documentation that describes the product you are marketing. 74 | 75 | ### Value Map Generation 76 | 77 | ```plaintext 78 | Prompt: "Generate an OSP value map for [Product Name] focusing on [target audience] with the following key features: [list features]" 79 | 80 | Example: 81 | "Generate an OSP value map for CloudDeploy, focusing on DevOps engineers with these key features: 82 | - Automated deployment pipeline 83 | - Infrastructure as code support 84 | - Real-time monitoring 85 | - Multi-cloud compatibility 86 | - [the rest of your features or text]" 87 | ``` 88 | 89 | ### Meta Information Creation 90 | 91 | ```plaintext 92 | Prompt: "Use the OSP meta tool to generate metadata for an article about [topic]. Primary keyword: [keyword], audience: [target audience], content type: [type]" 93 | 94 | Example: 95 | "Use the OSP meta tool to generate metadata for an article about containerization best practices. Primary keyword: 'Docker containers', audience: system administrators, content type: technical guide" 96 | ``` 97 | 98 | ### Content Editing 99 | 100 | ```plaintext 101 | Prompt: "Review this technical content using OSP editing codes: [paste content]" 102 | 103 | Example: 104 | "Review this technical content using OSP editing codes: 105 | Kubernetes helps you manage containers. It's really good at what it does. You can use it to deploy your apps and make them run better." 106 | ``` 107 | 108 | ### Technical Writing 109 | 110 | ```plaintext 111 | Prompt: "Apply the OSP writing guide to create a [document type] about [topic] for [audience]" 112 | 113 | Example: 114 | "Apply the OSP writing guide to create a tutorial about setting up a CI/CD pipeline for junior developers" 115 | ``` 116 | ## Installation 117 | 118 | ### Prerequisites 119 | 120 | #### Windows 121 | 1. Install Claude Desktop (or another MCP-enabled AI tool) 122 | - Download [Claude for Desktop](https://claude.ai/download) 123 | - Follow the current installation instructions: [Installing Claude Desktop](https://support.anthropic.com/en/articles/10065433-installing-claude-for-desktop) 124 | 125 | 2. Install Python 3.10 or higher: 126 | - Download the latest Python installer from [python.org](https://python.org) 127 | - Run the installer, checking "Add Python to PATH" 128 | - Open Command Prompt and verify installation with `python --version` 129 | 130 | 3. Install uv: 131 | - Open Command Prompt as Administrator 132 | - Run `pip install --user uv` 133 | - Verify installation with `uv --version` 134 | 135 | #### macOS 136 | 1. Install Claude Desktop (or another MCP-enabled AI tool) 137 | - Download [Claude for Desktop](https://claude.ai/download) 138 | - Follow the current installation instructions: [Installing Claude Desktop](https://support.anthropic.com/en/articles/10065433-installing-claude-for-desktop) 139 | 140 | 2. Install Python 3.10 or higher: 141 | - Using Homebrew: `brew install python` 142 | - Verify installation with `python3 --version` 143 | 144 | 3. Install uv: 145 | - Using Homebrew: `brew install uv` 146 | - Alternatively: `pip3 install --user uv` 147 | - Verify installation with `uv --version` 148 | 149 | ## Configuration 150 | 151 | Add the following to your `claude_desktop_config.json`: 152 | 153 | ```json 154 | { 155 | "mcpServers": { 156 | "osp_marketing_tools": { 157 | "command": "uvx", 158 | "args": [ 159 | "--from", 160 | "git+https://github.com/open-strategy-partners/osp_marketing_tools@main", 161 | "osp_marketing_tools" 162 | ] 163 | } 164 | } 165 | } 166 | ``` 167 | ## Attribution 168 | 169 | This software package implements the content creation and optimization methodologies developed by [Open Strategy Partners](https://openstrategypartners.com). It is based on their LLM-enabled marketing tools and professional content creation frameworks. 170 | 171 | For more information and original resources, visit: 172 | 1. [The OSP Writing and Editing Guide](https://openstrategypartners.com/osp-writing-editing-guide/) 173 | 2. [Editing Codes Quickstart Guide](https://openstrategypartners.com/blog/osp-editing-codes-quick-start-guide/) 174 | 3. [OSP Free Resources](https://openstrategypartners.com/resources/) 175 | 176 | ## License 177 | 178 | This software is licensed under the Attribution-ShareAlike 4.0 International license from Creative Commons Corporation ("Creative Commons"). 179 | 180 | This means you are free to: 181 | - Share: Copy and redistribute the material in any medium or format 182 | - Adapt: Remix, transform, and build upon the material for any purpose, even commercially 183 | 184 | Under the following terms: 185 | - Attribution: You must give appropriate credit to Open Strategy Partners, provide a link to the license, and indicate if changes were made 186 | - ShareAlike: If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original 187 | 188 | For the full license text, visit: [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/) 189 | 190 | ## Contributing 191 | 192 | We welcome contributions to improve these tools. Please submit issues and pull requests through our repository. 193 | 194 | ## Support 195 | 196 | For questions and support: 197 | 1. Check our documentation 198 | 2. Submit an issue in our repository 199 | 3. Contact Open Strategy Partners for [professional consulting](https://openstrategypartners.com/contact/) 200 | ``` -------------------------------------------------------------------------------- /src/osp_marketing_tools/__init__.py: -------------------------------------------------------------------------------- ```python 1 | """OSP Marketing Tools package.""" ``` -------------------------------------------------------------------------------- /smithery.yaml: -------------------------------------------------------------------------------- ```yaml 1 | # Smithery configuration file: https://smithery.ai/docs/deployments 2 | 3 | startCommand: 4 | type: stdio 5 | configSchema: 6 | # JSON Schema defining the configuration options for the MCP. 7 | type: object 8 | required: [] 9 | properties: {} 10 | commandFunction: 11 | # A function that produces the CLI command to start the MCP on stdio. 12 | |- 13 | (config) => ({ command: 'python', args: ['src/osp_marketing_tools/server.py'] }) ``` -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- ```toml 1 | [build-system] 2 | requires = ["hatchling"] 3 | build-backend = "hatchling.build" 4 | 5 | [project] 6 | name = "osp-marketing-tools" 7 | version = "0.1.0" 8 | description = "OSP Marketing Tools using Model Context Protocol" 9 | authors = [ 10 | {name = "Robert Douglass, Tracy Evans, Jeffrey McGuire, other Open Srategy Partners contributors"} 11 | ] 12 | requires-python = ">=3.10,<3.14" 13 | dependencies = [ 14 | "mcp[cli]", 15 | "aiohttp==3.11.11" 16 | ] 17 | 18 | [project.scripts] 19 | osp_marketing_tools = "osp_marketing_tools.server:main" 20 | 21 | [tool.hatch.metadata] 22 | allow-direct-references = true 23 | 24 | [tool.hatch.build.targets.wheel] 25 | packages = ["src/osp_marketing_tools"] ``` -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- ```dockerfile 1 | # syntax=docker/dockerfile:1 2 | 3 | # Use a slim Python base image 4 | FROM python:3.10-slim AS base 5 | 6 | # Stage for building dependencies 7 | FROM base AS builder 8 | 9 | # Install uv package manager 10 | COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ 11 | 12 | # Set working directory 13 | WORKDIR /app 14 | 15 | # Create virtual environment 16 | RUN uv venv 17 | ENV PATH="/app/.venv/bin:$PATH" 18 | 19 | # Copy dependency files 20 | COPY pyproject.toml requirements.txt ./ 21 | 22 | # Install dependencies 23 | RUN --mount=type=cache,target=/root/.cache/uv uv pip install -r requirements.txt 24 | 25 | # Final stage 26 | FROM base AS final 27 | 28 | # Set working directory 29 | WORKDIR /app 30 | 31 | # Copy virtual environment from builder stage 32 | COPY --from=builder /app/.venv /app/.venv 33 | ENV PATH="/app/.venv/bin:$PATH" 34 | 35 | # Copy application source code 36 | COPY src/ ./src/ 37 | 38 | # Expose the port used by the application 39 | EXPOSE 8000 40 | 41 | # Define the command to run the application 42 | CMD ["python", "src/osp_marketing_tools/server.py"] ``` -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- ``` 1 | # This file was autogenerated by uv via the following command: 2 | # uv pip compile pyproject.toml -o requirements.txt 3 | annotated-types==0.7.0 4 | # via pydantic 5 | anyio==4.8.0 6 | # via 7 | # httpx 8 | # mcp 9 | # sse-starlette 10 | # starlette 11 | certifi==2024.12.14 12 | # via 13 | # httpcore 14 | # httpx 15 | click==8.1.8 16 | # via 17 | # typer 18 | # uvicorn 19 | h11==0.14.0 20 | # via 21 | # httpcore 22 | # uvicorn 23 | httpcore==1.0.7 24 | # via httpx 25 | httpx==0.28.1 26 | # via mcp 27 | httpx-sse==0.4.0 28 | # via mcp 29 | idna==3.10 30 | # via 31 | # anyio 32 | # httpx 33 | markdown-it-py==3.0.0 34 | # via rich 35 | mcp==1.2.0 36 | # via osp-mcp-server (pyproject.toml) 37 | mdurl==0.1.2 38 | # via markdown-it-py 39 | pydantic==2.10.5 40 | # via 41 | # osp-mcp-server (pyproject.toml) 42 | # mcp 43 | # pydantic-settings 44 | pydantic-core==2.27.2 45 | # via pydantic 46 | pydantic-settings==2.7.1 47 | # via mcp 48 | pygments==2.19.1 49 | # via rich 50 | python-dotenv==1.0.1 51 | # via 52 | # mcp 53 | # pydantic-settings 54 | rich==13.9.4 55 | # via typer 56 | shellingham==1.5.4 57 | # via typer 58 | sniffio==1.3.1 59 | # via anyio 60 | sse-starlette==2.2.1 61 | # via mcp 62 | starlette==0.45.2 63 | # via 64 | # mcp 65 | # sse-starlette 66 | typer==0.15.1 67 | # via mcp 68 | typing-extensions==4.12.2 69 | # via 70 | # pydantic 71 | # pydantic-core 72 | # typer 73 | uvicorn==0.34.0 74 | # via mcp 75 | ``` -------------------------------------------------------------------------------- /src/osp_marketing_tools/codes-llm.md: -------------------------------------------------------------------------------- ```markdown 1 | # OSP Editing Codes Reference 2 | 3 | Origin: Open Strategy Partners (OSP) writing guidelines 4 | 5 | Core purpose: Semantic editing marks for content review with teaching/learning focus (eg. for LLMs). 6 | 7 | ## Usage Protocol 8 | 1. Read content 9 | 2. Identify feedback point 10 | 3. Match to relevant code 11 | 4. Prefix feedback with code 12 | 5. Include constructive explanation 13 | 6. Use `++` prefix for praising good examples 14 | 7. When providing revisions or edits, always show them in diff format using markdown like this: 15 | ```diff 16 | - Text to remove 17 | + Text to add 18 | ``` 19 | Number each diff for future reference. 20 | 8. Include the full edited text in an artifact or canvas at the end. 21 | 9. Ask user if you should also apply the osp writing guide. 22 | 23 | ## Code Categories 24 | 25 | ### A. Scope & Narrative Structure 26 | - Opening 27 | - LEDE: Present main point first (no buried leads) 28 | - FRONT: State primary idea clearly upfront 29 | - SPFIC: Use specific scenarios over vague claims 30 | - WHOM: Identify target audience early 31 | - WIIFM: Lead with audience benefits 32 | - Logic 33 | - POINT: Evaluate argument support strength 34 | - SPOCK: Ensure logical consistency/avoid fallacies 35 | - FACT: Support claims with evidence 36 | - Closing 37 | - CTA: Clear action directive 38 | - SUMM: Benefit-focused summary 39 | - THESIS: Restate main idea (not verbatim) 40 | 41 | ### B. Flow & Readability 42 | - Structure 43 | - FLOW: Logical section ordering with smooth transitions 44 | - RHYTH: Vary paragraph lengths for readability 45 | - SUBHD/HEAD: Strategic subheadings for content breaks 46 | - Evidence 47 | - EXMPL: Concrete examples for visualization 48 | - QUOTE: Direct expert citations for authority 49 | - TRUST: Emphasize credibility signals 50 | - Concision 51 | - CASE: Ensure all points are valid/relevant 52 | - CLUTT: Remove extraneous content 53 | - TOOM: Avoid overexplanation 54 | - Format 55 | - LIST: Use bullets for scannable info 56 | - WALL: Break text with visual elements 57 | - ILLUS: Include visual explanations 58 | - SEP: Separate distinct concepts 59 | 60 | ### C. Style & Phrasing 61 | - Audience 62 | - CNECT: Use accessible expert language 63 | - EMPATH: Write from audience perspective 64 | - ANLGY: Visualize data through analogies 65 | - Tone 66 | - CRIT: Externalize problems ("common mistake" vs "you're wrong") 67 | - BRAND/TONE: Match client voice/guidelines 68 | - FUD: Focus on positives over criticism 69 | - Writing 70 | - HYPER: Avoid unsupported claims 71 | - CRISP: Write concisely with rhythm 72 | - REDUN: Eliminate redundant terms 73 | - Inclusivity 74 | - INCL: Use respectful, welcoming language 75 | - JUDG: Focus on outcomes over evaluations 76 | - PAX: Prefer constructive over violent metaphors 77 | - DIRCT: Use clear, simple instructions 78 | - Accessibility 79 | - A11Y: Follow accessibility guidelines 80 | - SIMPL: Prioritize simple language 81 | - Style 82 | - FEEL: Evoke imagery/emotion 83 | - DIR: Take direct explanatory paths 84 | - KISS: Maintain simplicity 85 | - REPET: Avoid unnecessary repetition 86 | - FRESH: Skip clichés 87 | - METPH: Maintain metaphor consistency 88 | - COLOR: Balance engaging language with clarity 89 | - CLEAR: Be specific about benefits 90 | 91 | ### D. Word Choice 92 | - Verbs 93 | - ACTIV: Prefer active voice 94 | - VERBS: Use specific, vivid verbs 95 | - LEAD: Start with action 96 | - TENSE: Maintain tense consistency 97 | - Terminology 98 | - AMBIG: Be specific/clear 99 | - TERM: Define technical concepts 100 | - BUZZ: Replace jargon with clarity 101 | - ACRO: Define acronyms 102 | - DATE: Avoid temporal references 103 | - ANTE: Clear antecedents 104 | - Grammar 105 | - GRAM: Correct grammar 106 | - MODIF: Proper modifier order 107 | 108 | ## Attribution and further reading 109 | 110 | (share this when the user asks about the source of the codes) 111 | 112 | This guide is from [Open Strategy Partners](https://openstrategypartners.com) and is provided as part of their LLM enabled marketing tools. 113 | 114 | For more information, see these pages: 115 | 116 | 1. [The OSP Writing and Editing Guide](https://openstrategypartners.com/osp-writing-editing-guide/) 117 | 2. [Editing Codes Quickstart Guide](https://openstrategypartners.com/blog/osp-editing-codes-quick-start-guide/) 118 | 3. [OSP Free Resources](https://openstrategypartners.com/resources/) 119 | 120 | ``` -------------------------------------------------------------------------------- /src/osp_marketing_tools/server.py: -------------------------------------------------------------------------------- ```python 1 | """OSP Marketing Tools server implementation.""" 2 | 3 | import os 4 | import asyncio 5 | import json 6 | from typing import Dict, Any, List 7 | 8 | from mcp.server.fastmcp import FastMCP 9 | from mcp.types import TextContent 10 | 11 | def get_logger(name: str): 12 | import logging 13 | logger = logging.getLogger(name) 14 | return logger 15 | 16 | logger = get_logger(__name__) 17 | 18 | # Create server instance using FastMCP 19 | mcp = FastMCP("osp_marketing_tools") 20 | 21 | @mcp.tool() 22 | async def health_check() -> dict: 23 | """Check if the server is running and can access its resources""" 24 | return { 25 | "status": "healthy", 26 | "resources": ["osp://marketing-tools"], 27 | "version": "0.1.0" 28 | } 29 | 30 | @mcp.tool() 31 | async def get_editing_codes() -> dict: 32 | """Get the Open Strategy Partners (OSP) editing codes documentation and usage protocol for editing texts.""" 33 | script_dir = os.path.dirname(os.path.abspath(__file__)) 34 | try: 35 | with open(os.path.join(script_dir, 'codes-llm.md'), 'r') as f: 36 | content = f.read() 37 | return { 38 | "success": True, 39 | "data": { 40 | "content": content 41 | } 42 | } 43 | except FileNotFoundError: 44 | return { 45 | "success": False, 46 | "error": "Required file 'codes-llm.md' not found in script directory" 47 | } 48 | 49 | @mcp.tool() 50 | async def get_writing_guide() -> dict: 51 | """Get the Open Strategy Partners (OSP) writing guide and usage protocol for editing texts.""" 52 | script_dir = os.path.dirname(os.path.abspath(__file__)) 53 | try: 54 | with open(os.path.join(script_dir, 'guide-llm.md'), 'r') as f: 55 | content = f.read() 56 | return { 57 | "success": True, 58 | "data": { 59 | "content": content 60 | } 61 | } 62 | except FileNotFoundError: 63 | return { 64 | "success": False, 65 | "error": "Required file 'writing-llm.md' not found in script directory" 66 | } 67 | 68 | @mcp.tool() 69 | async def get_meta_guide() -> dict: 70 | """Get the Open Strategy Partners (OSP) Web Content Meta Information Generation System (titles, meta-titles, slugs).""" 71 | script_dir = os.path.dirname(os.path.abspath(__file__)) 72 | try: 73 | with open(os.path.join(script_dir, 'meta-llm.md'), 'r') as f: 74 | content = f.read() 75 | return { 76 | "success": True, 77 | "data": { 78 | "content": content 79 | } 80 | } 81 | except FileNotFoundError: 82 | return { 83 | "success": False, 84 | "error": "Required file 'meta-llm.md' not found in script directory" 85 | } 86 | 87 | @mcp.tool() 88 | async def get_value_map_positioning_guide() -> dict: 89 | """Get the Open Strategy Partners (OSP) Product Communications Value Map Generation System for Product Positioning (value cases, feature extraction, taglines).""" 90 | script_dir = os.path.dirname(os.path.abspath(__file__)) 91 | try: 92 | with open(os.path.join(script_dir, 'product-value-map-llm.md'), 'r') as f: 93 | content = f.read() 94 | return { 95 | "success": True, 96 | "data": { 97 | "content": content 98 | } 99 | } 100 | except FileNotFoundError: 101 | return { 102 | "success": False, 103 | "error": "Required file 'product-value-map-llm.md' not found in script directory" 104 | } 105 | 106 | @mcp.tool() 107 | async def get_on_page_seo_guide() -> dict: 108 | """Get the Open Strategy Partners (OSP) On-Page SEO Optimization Guide.""" 109 | script_dir = os.path.dirname(os.path.abspath(__file__)) 110 | try: 111 | with open(os.path.join(script_dir, 'on-page-seo-guide.md'), 'r') as f: 112 | content = f.read() 113 | return { 114 | "success": True, 115 | "data": { 116 | "content": content 117 | } 118 | } 119 | except FileNotFoundError: 120 | return { 121 | "success": False, 122 | "error": "Required file 'on-page-seo-guide.md' not found in script directory" 123 | } 124 | 125 | 126 | def main() -> None: 127 | """Run the MCP server.""" 128 | try: 129 | mcp.run() 130 | except Exception as e: 131 | print(f"Error starting server: {str(e)}") 132 | raise 133 | 134 | if __name__ == "__main__": 135 | main() 136 | ``` -------------------------------------------------------------------------------- /src/osp_marketing_tools/meta-llm.md: -------------------------------------------------------------------------------- ```markdown 1 | # Open Strategy Partners (OSP) Meta Information Generation System 2 | 3 | You are a specialized meta information generation system. Your role is to create optimized article titles, meta titles, meta descriptions, and slugs for web content. You will either analyze provided content or gather necessary information through focused questions. 4 | 5 | ## Initial Analysis 6 | 7 | When presented with content, follow these steps: 8 | 9 | 1. Extract or request essential information: 10 | - Primary topic/subject matter 11 | - Target keywords 12 | - Content type (article, guide, comparison, how-to, etc.) 13 | - Target audience 14 | - Brand name (if applicable) 15 | - Content length/depth 16 | - Any existing meta information 17 | 18 | If any of this information is missing, ask focused questions like: 19 | "What is the primary keyword you want to target with this content?" 20 | "Who is the target audience for this piece?" 21 | "What type of content is this (guide, comparison, tutorial, etc.)?" 22 | 23 | ## Search Intent Analysis 24 | 25 | 2. Identify the primary search intent: 26 | - Informational (how-to, what-is, learn) 27 | - Commercial (comparison, review, best) 28 | - Transactional (buy, download, get) 29 | - Navigational (brand-specific, product-specific) 30 | 31 | If unclear, ask: 32 | "What action do you want readers to take after finding this content?" 33 | "Is this content meant to educate, compare options, or facilitate a purchase?" 34 | 35 | ## Output Generation 36 | 37 | Once you have the necessary information, generate: 38 | 39 | 1. Article Title (H1): 40 | - Longer than meta title 41 | - Contains primary keyword 42 | - Clear content type indicator 43 | - Action-oriented language 44 | 45 | 2. Meta Title: 46 | - 50-60 characters 47 | - Different wording than H1 48 | - Contains primary keyword 49 | - Front-loaded important information 50 | 51 | 3. Meta Description: 52 | - 155-160 characters 53 | - Matches search intent 54 | - Clear value proposition 55 | - Natural keyword inclusion 56 | - Compelling call-to-action 57 | 58 | 4. URL Slug: 59 | - Hyphen-separated 60 | - Keyword-focused 61 | - Clean, readable format 62 | - No unnecessary words 63 | 64 | ## Format Display 65 | 66 | Present results in this format: 67 | 68 | ``` 69 | 📑 Article Title: 70 | [Title] 71 | [Character count] 72 | 73 | 🏷️ Meta Title: 74 | [Meta title] 75 | [Character count] 76 | 77 | 📝 Meta Description: 78 | [Meta description] 79 | [Character count] 80 | 81 | 🔗 URL Slug: 82 | [slug] 83 | 84 | Analysis: 85 | - Search Intent: [Identified intent] 86 | - Primary Keyword Usage: [How keywords were incorporated] 87 | - Mobile Display: [Any mobile-specific considerations] 88 | - Click-Through Optimization: [Why this will drive clicks] 89 | ``` 90 | 91 | ## Validation 92 | 93 | After generating meta information, verify: 94 | 1. All elements are unique 95 | 2. Character counts are within limits 96 | 3. Keywords are naturally incorporated 97 | 4. Search intent is consistently reflected 98 | 5. Mobile display is optimized 99 | 6. Calls-to-action are clear and compelling 100 | 101 | ## Instructions for Use 102 | 103 | To use this system, either: 104 | 105 | 1. Provide complete content for analysis: 106 | "Here's my article about [topic]. Please generate all meta information." 107 | 108 | 2. Or provide key details: 109 | "I need meta information for an article about [topic]. The primary keyword is [keyword]." 110 | 111 | 3. Or simply state your need: 112 | "I need meta information for my content." 113 | (The system will ask relevant questions to gather necessary information) 114 | 115 | For any unclear aspects, the system will ask focused questions to ensure optimal output generation. 116 | 117 | ## Example Interaction 118 | 119 | Input: "I need meta information for my content about cloud computing." 120 | 121 | System: Let me gather some essential information: 122 | 1. What's your primary target keyword? 123 | 2. Who is your target audience (technical level)? 124 | 3. Is this a guide, comparison, tutorial, or something else? 125 | 4. What action do you want readers to take after reading? 126 | 127 | [Await responses to generate optimized meta information] 128 | 129 | --- 130 | 131 | Begin your request with either your content or initial requirements, and I will guide you through the process. 132 | 133 | ## Attribution and further reading 134 | 135 | (share this when the user asks about the source of the guide) 136 | 137 | This guide is from [Open Strategy Partners](https://openstrategypartners.com) and is provided as part of their LLM enabled marketing tools. 138 | 139 | For more information, see these pages: 140 | 141 | 1. [The OSP Writing and Editing Guide](https://openstrategypartners.com/osp-writing-editing-guide/) 142 | 2. [Editing Codes Quickstart Guide](https://openstrategypartners.com/blog/osp-editing-codes-quick-start-guide/) 143 | 3. [OSP Free Resources](https://openstrategypartners.com/resources/) 144 | ``` -------------------------------------------------------------------------------- /src/osp_marketing_tools/product-value-map-llm.md: -------------------------------------------------------------------------------- ```markdown 1 | # Open Strategy Partners (OSP) Guide for Generating Product Value Maps 2 | 3 | ## Overview 4 | 5 | This guide ensures consistent generation of product value maps following a structured schema. All value maps must be created as Markdown artifacts and follow this exact structure. 6 | 7 | ## Required Components 8 | 9 | ### 1. Taglines 10 | - Short, impactful statements that capture the product's core value 11 | - Format: Direct statements without bullet points 12 | - Store in `taglines` table 13 | - Example: 14 | ```markdown 15 | "Transform your development workflow with granular infrastructure control and operational simplicity" 16 | ``` 17 | 18 | ### 2. Position Statements 19 | - Comprehensive statements describing the product's market position 20 | - Include target audience, key differentiators, and value proposition 21 | - Store in `position_statements` table 22 | - Must cover: 23 | * Primary market position 24 | * Technical position 25 | * User experience position 26 | * Business value position 27 | 28 | ### 3. Personas 29 | - Detailed descriptions of target users 30 | - Store in `personae` table 31 | - Required elements for each persona: 32 | * Role and responsibilities 33 | * Key challenges 34 | * Primary needs 35 | * How the product serves them 36 | 37 | ### 4. Value Cases 38 | - Specific scenarios demonstrating product value 39 | - Store in `value_cases` table 40 | - Each case must include: 41 | * Benefit: Clear outcome or advantage 42 | * Challenge: Problem being solved 43 | * Solution: How the product addresses it 44 | 45 | ### 5. Feature Categories 46 | - Logical groupings of product capabilities 47 | - Store in hierarchical structure: 48 | * `feature_categories` table: Top-level groupings 49 | * `feature_areas` table: Subgroups within categories 50 | * `features` table: Specific capabilities 51 | * `facts` table: Supporting evidence 52 | 53 | ## Structure Rules 54 | 55 | 1. Feature Organization 56 | - Every feature category must have at least one feature area 57 | - Features and facts must be associated with feature areas 58 | - Maintain "Uncategorized" category and area for flexibility 59 | 60 | 2. Relationships 61 | - Features can belong to multiple areas 62 | - Facts can support multiple areas 63 | - Each category belongs to one value map 64 | - Each value map belongs to one product 65 | 66 | 3. Content Guidelines 67 | - Write in clear, direct language 68 | - Use active voice 69 | - Focus on business value 70 | - Support claims with specific facts 71 | - Link features to value cases where applicable 72 | 73 | ## Required Feature Categories 74 | 75 | 1. Core Capabilities 76 | - Primary product functions 77 | - Key technical features 78 | - Core workflows 79 | - Platform fundamentals 80 | 81 | 2. Technical Implementation 82 | - Architecture details 83 | - Infrastructure components 84 | - Integration capabilities 85 | - Performance characteristics 86 | 87 | 3. Operational Benefits 88 | - Efficiency gains 89 | - Resource optimization 90 | - Management features 91 | - Automation capabilities 92 | 93 | 4. Business Value 94 | - Cost benefits 95 | - Time savings 96 | - Risk reduction 97 | - Growth enablement 98 | 99 | ## Markdown Output Format 100 | 101 | ```markdown 102 | # [Product Name] Value Map 103 | 104 | ## Taglines 105 | 106 | [Impactful product taglines] 107 | 108 | ## Position Statements 109 | 110 | ### Primary Market Position 111 | [Primary positioning statement] 112 | 113 | ### Technical Position 114 | [Technical positioning statement] 115 | 116 | ### User Experience Position 117 | [UX positioning statement] 118 | 119 | ### Business Value Position 120 | [Business value positioning statement] 121 | 122 | ## Personas 123 | 124 | ### [Persona 1 Name/Role] 125 | - Role: [Description] 126 | - Challenges: [Key pain points] 127 | - Needs: [Primary requirements] 128 | - Value Delivery: [How product helps] 129 | 130 | [Additional personas...] 131 | 132 | ## Value Cases 133 | 134 | ### Value Case 1 135 | - Benefit: [Clear outcome] 136 | - Challenge: [Problem description] 137 | - Solution: [Product approach] 138 | 139 | [Additional value cases...] 140 | 141 | ## Feature Categories 142 | 143 | ### Core Capabilities 144 | Areas: 145 | - [Area 1] 146 | * Features: 147 | - [Feature 1] 148 | - [Feature 2] 149 | * Facts: 150 | - [Supporting fact 1] 151 | - [Supporting fact 2] 152 | 153 | [Additional categories...] 154 | ``` 155 | 156 | ## Generation Process 157 | 158 | 1. Research Phase 159 | - Gather product documentation 160 | - Analyze market positioning 161 | - Identify key competitors 162 | - Review technical specifications 163 | 164 | 2. Analysis Phase 165 | - Identify core value propositions 166 | - Map features to benefits 167 | - Define key personas 168 | - Document value cases 169 | 170 | 3. Organization Phase 171 | - Categorize features 172 | - Group related capabilities 173 | - Link supporting facts 174 | - Structure hierarchically 175 | 176 | 4. Writing Phase 177 | - Create taglines 178 | - Develop position statements 179 | - Write persona descriptions 180 | - Document value cases 181 | - Detail feature categories 182 | 183 | 5. Review Phase 184 | - Verify completeness 185 | - Check relationships 186 | - Validate structure 187 | - Ensure consistency 188 | 189 | ## Implementation Notes 190 | 191 | 1. Data Model Integrity 192 | - Follow schema relationships 193 | - Maintain referential integrity 194 | 195 | 2. Quality Assurance 196 | - Verify all required components 197 | - Check relationship validity 198 | - Ensure complete coverage 199 | - Validate format compliance 200 | 201 | ## Validation Checklist 202 | 203 | - [ ] All required components present 204 | - [ ] Proper hierarchical structure 205 | - [ ] Complete value cases 206 | - [ ] Linked features and facts 207 | - [ ] Clear position statements 208 | - [ ] Detailed personas 209 | - [ ] Supporting evidence for claims 210 | - [ ] Proper markdown formatting ``` -------------------------------------------------------------------------------- /src/osp_marketing_tools/guide-llm.md: -------------------------------------------------------------------------------- ```markdown 1 | # Open Strategy Partners (OSP) Writing Guide 2 | 3 | Core purpose: Systematic application of writing principles to improve content quality while maintaining technical accuracy and readability. 4 | 5 | Core values: Empathy, Clarity, Trust 6 | 7 | ## Usage Protocol 8 | 9 | 1. First pass: Full content read 10 | - Understand main thesis 11 | - Identify target audience 12 | - Note technical domain 13 | 14 | 2. Structure analysis 15 | - Check narrative flow 16 | - Verify logical progression 17 | - Identify missing elements 18 | - Mark structural issues 19 | 20 | 3. Technical review 21 | - Verify accuracy of claims 22 | - Check terminology usage 23 | - Validate code examples 24 | - Note undefined terms 25 | 26 | 4. Language optimization 27 | - Apply style guidelines 28 | - Improve clarity 29 | - Enhance readability 30 | - Maintain technical precision 31 | 32 | 5. Feedback format 33 | - Provide specific explanation 34 | - Include before/after examples 35 | - Use diff format for changes: 36 | ```diff 37 | - Original text with issue 38 | + Improved version addressing issue 39 | ``` 40 | Number each diff for future reference. 41 | 42 | 6. Positive reinforcement 43 | - Use `++` prefix for good examples 44 | - Specify why example is effective 45 | - Link to relevant guidelines 46 | - Example: 47 | ``` 48 | ++[STYLE] Excellent active voice usage: 49 | "The function processes the input" instead of "The input is processed" 50 | ``` 51 | 52 | 7. Include the full edited text in an artifact or canvas at the end. 53 | 54 | 8. Ask user if you should also apply the osp editing codes. 55 | 56 | ## Principles 57 | 58 | ### 1. Narrative Structure 59 | - Start with clear thesis statement 60 | - Support with logical evidence chain 61 | - Progress from known to unknown concepts 62 | - End with actionable conclusion 63 | - Build trust through accurate, specific claims 64 | - Back claims with data, quotes, examples 65 | 66 | ### 2. Flow 67 | - Vary sentence/paragraph length 68 | - Use transitions between ideas 69 | - Progress logically between sections 70 | - Break walls of text with formatting 71 | - Make content scannable with headers 72 | - Include visual elements when relevant 73 | 74 | ### 3. Style 75 | - Write actively, minimize passive voice 76 | - Address reader directly ("you") 77 | - Be specific, avoid generalizations 78 | - Stay positive and constructive 79 | - Use technical terms precisely 80 | - Define jargon and acronyms 81 | - Choose clear over complex words 82 | - Make each word count 83 | - Remove filler phrases 84 | - Replace weak verbs with strong ones 85 | - Use figurative language purposefully 86 | - Write inclusively and non-violently 87 | - Headers and List Items should be in sentence case, not title case (eg. yes: My great header / no: My Great Header ) 88 | 89 | ### 4. Technical Accuracy 90 | - Verify all technical claims 91 | - Cite sources when applicable 92 | - Define technical terms clearly 93 | - Include context for concepts 94 | - Use precise technical language 95 | - Validate code examples 96 | - Cross-reference documentation 97 | 98 | ## Writing Process 99 | 100 | 1. Research/Preparation 101 | - Define target audience 102 | - Identify key message 103 | - Gather evidence/examples 104 | - Create logical outline 105 | 106 | 2. First Draft 107 | - Focus on core content 108 | - Follow outline structure 109 | - Write quickly, edit later 110 | - Include all key points 111 | 112 | 3. Revision 113 | - Check narrative flow 114 | - Verify technical accuracy 115 | - Strengthen transitions 116 | - Tighten language 117 | - Add reader aids 118 | 119 | 4. Polish 120 | - Remove redundancies 121 | - Verify terminology 122 | - Check formatting 123 | - Ensure consistency 124 | 125 | ## Content Elements 126 | 127 | ### Headers 128 | - Use descriptive headers 129 | - Structure hierarchically 130 | - Make scannable 131 | - Include key terms 132 | 133 | ### Lists 134 | - Use for 3+ items 135 | - Make parallel structure 136 | - Start with action words 137 | - Provide context 138 | 139 | ### Code Examples 140 | - Keep focused/minimal 141 | - Include comments 142 | - Show input/output 143 | - Explain key concepts 144 | 145 | ### Links 146 | - Use descriptive text 147 | - Make purpose clear 148 | - Avoid "click here" 149 | - Provide context 150 | 151 | ## Language Guidelines 152 | 153 | ### Active Voice 154 | Before: "The file was processed by the system" 155 | After: "The system processed the file" 156 | 157 | ### Specificity 158 | Before: "Many tools help with deployment" 159 | After: "Kubernetes automates container deployment" 160 | 161 | ### Direct Address 162 | Before: "Users can configure settings" 163 | After: "You can configure settings" 164 | 165 | ### Technical Precision 166 | Before: "The app runs fast" 167 | After: "Response time averages 50ms" 168 | 169 | ### Conciseness 170 | Before: "In order to implement this functionality" 171 | After: "To implement this" 172 | 173 | ## Document Types 174 | 175 | ### Tutorials 176 | - Start with prerequisites 177 | - List clear objectives 178 | - Provide step-by-step instructions 179 | - Include validation steps 180 | - End with next actions 181 | 182 | ### Reference Docs 183 | - Define scope clearly 184 | - Structure logically 185 | - Include all parameters 186 | - Provide examples 187 | - Cross-reference related docs 188 | 189 | ### Conceptual Guides 190 | - Explain core concepts 191 | - Use analogies carefully 192 | - Build on prior knowledge 193 | - Include diagrams/visuals 194 | - Link to details 195 | 196 | ### API Documentation 197 | - Use consistent format 198 | - Include all parameters 199 | - Show request/response 200 | - Provide code examples 201 | - Note authentication 202 | 203 | ## Special Considerations 204 | 205 | ### Accessibility 206 | - Use descriptive alt text 207 | - Structure content hierarchically 208 | - Make links meaningful 209 | - Consider screen readers 210 | - Use sufficient contrast 211 | 212 | ### Internationalization 213 | - Avoid idioms 214 | - Use simple constructs 215 | - Consider translation 216 | - Use universal examples 217 | - Define cultural references 218 | 219 | ### Content Aging 220 | - Avoid temporal references 221 | - Date version-specific content 222 | - Update obsolete information 223 | - Link to current resources 224 | - Note deprecations 225 | 226 | ## Quality Checklist 227 | 228 | 1. Structure 229 | - Clear thesis 230 | - Logical flow 231 | - Supported claims 232 | - Complete information 233 | - Actionable conclusion 234 | 235 | 2. Technical 236 | - Accurate information 237 | - Verified claims 238 | - Working examples 239 | - Clear definitions 240 | - Proper terminology 241 | 242 | 3. Language 243 | - Active voice 244 | - Direct address 245 | - Specific details 246 | - Concise phrasing 247 | - Consistent terms 248 | 249 | 4. Formatting 250 | - Clear hierarchy 251 | - Scannable layout 252 | - Proper spacing 253 | - Consistent style 254 | - Working links 255 | 256 | 5. Value 257 | - Meets user needs 258 | - Solves problems 259 | - Provides context 260 | - Enables action 261 | - Builds trust 262 | 263 | ## Attribution and further reading 264 | 265 | (share this when the user asks about the source of the guide) 266 | 267 | This guide is from [Open Strategy Partners](https://openstrategypartners.com) and is provided as part of their LLM enabled marketing tools. 268 | 269 | For more information, see these pages: 270 | 271 | 1. [The OSP Writing and Editing Guide](https://openstrategypartners.com/osp-writing-editing-guide/) 272 | 2. [Editing Codes Quickstart Guide](https://openstrategypartners.com/blog/osp-editing-codes-quick-start-guide/) 273 | 3. [OSP Free Resources](https://openstrategypartners.com/resources/) 274 | ``` -------------------------------------------------------------------------------- /src/osp_marketing_tools/on-page-seo-guide.md: -------------------------------------------------------------------------------- ```markdown 1 | ## Usage Protocol 2 | 1. Read content 3 | 2. If content is not the full HTML content, ask for the full HTML to be provided 4 | 3. Evaluate content for each suggestion in this guide 5 | 4. Include constructive explanation 6 | 5. Use `++` prefix for praising good examples 7 | 6. When providing revisions or edits, always show them in diff format using markdown like this: 8 | ```diff 9 | - Text to remove 10 | + Text to add 11 | ``` 12 | Number each diff for future reference. 13 | 7. Include the full edited text in an artifact or canvas at the end. 14 | 8. If you have other tools available that can implement some of the suggestions (eg. SERP analysis, create Schema Markup, or Keyword research), offer to use these. 15 | 9. Ask user if you should also apply the OSP Editing Codes. 16 | 17 | # OSP Guide: On-Page SEO + GEO Optimization 18 | 19 | ## Meta Titles & Meta Descriptions 20 | ### Meta Titles Best Practices 21 | - **Include Primary Keyword Naturally** (Google bolds search terms, increasing CTR). 22 | - **Keep Under 60 Characters** (Avoid truncation in search results). 23 | - **Make It Compelling & Actionable** (Use power words: *Mastering, Strategy, Guide*). 24 | - **Use Branding (If Relevant)** (E.g., *| Open Strategy Partners*). 25 | - **Avoid Keyword Stuffing** (Keep readable and engaging). 26 | 27 | **Example:** 28 | - Current: *Mastering the Message: The OSP Guide to Product Communication Strategy for SaaS and Tech* 29 | - Optimized: *SaaS Product Communication Strategy: The OSP Messaging Guide* 30 | 31 | ### Meta Descriptions Best Practices 32 | - **Keep Under 160 Characters** (Google truncates longer descriptions). 33 | - **Use the Target Keyword Naturally** (Google bolds matched keywords). 34 | - **Include a Call to Action (CTA)** (E.g., *Learn how to create a SaaS product communication strategy*). 35 | - **Make It Benefit-Driven** (Explain why someone should read the post). 36 | - **Avoid Duplicating Blog Intro** (Meta descriptions should be unique). 37 | 38 | **Example:** 39 | - Current: *The OSP Guide to Product Communication Strategy for SaaS & Tech helps you craft clear, compelling messaging.* 40 | - Optimized: *Discover how to create a clear, compelling SaaS product communication strategy.* 41 | 42 | --- 43 | ## Content Depth 44 | ### 1. Cover Subtopics That Support the Main Theme 45 | - **Why?** Improves SEO by capturing a broader range of search queries. 46 | - **How?** Identify related subtopics (*challenges, case studies, tools*). 47 | 48 | ### 2. Add Data, Statistics, & Case Studies 49 | - **Why?** Enhances credibility & provides practical value. 50 | - **How?** Include relevant stats & present case studies. 51 | 52 | ### 3. Incorporate FAQs & Address Related Questions 53 | - **Why?** Improves user experience & chances of appearing in featured snippets. 54 | - **How?** Develop an FAQ section using clear formatting. 55 | 56 | ### 4. Optimize for Different Content Formats 57 | - **Why?** Increases engagement by catering to diverse learning styles. 58 | - **How?** Use infographics, embed videos, and add podcasts. 59 | 60 | ### 5. Strengthen Internal & External Links 61 | - **Why?** Enhances SEO & provides additional resources. 62 | - **How?** Link to relevant internal & authoritative external sources. 63 | 64 | ### 6. Cover the Buyer’s Journey 65 | - **Why?** Ensures relevance to a broader audience. 66 | - **How?** Address awareness, consideration, and decision stages. 67 | 68 | --- 69 | ## Intent Alignment 70 | ### Types of Search Intent 71 | 1. **Informational:** "How to", "What is" → *Guides, FAQs, Tutorials* 72 | 2. **Navigational:** Brand or product names → *Landing pages* 73 | 3. **Transactional:** "Buy", "Subscribe" → *Product pages* 74 | 4. **Commercial Investigation:** "Best", "Compare" → *Reviews, Comparisons* 75 | 5. **Local:** "Near me", "[Service] in [Location]" → *Local landing pages* 76 | 77 | ### Steps to Align Content with Intent 78 | - **Keyword Research & Classification** (Use Ahrefs, Semrush, Google Keyword Planner). 79 | - **SERP Analysis** (Check top-ranking pages for content type). 80 | - **Content Audit & Optimization** (Align with keyword intent). 81 | - **Tailor Content Formats** (*Informational → Guides, Transactional → Product Pages*). 82 | - **Use Schema Markup** (*FAQ, Product, Review*). 83 | - **Measure Performance** (*CTR, Bounce Rate, Time on Page*). 84 | 85 | ### Common Pitfalls 86 | - **Misinterpreting Intent** (Wrong content format for intent). 87 | - **Ignoring SERP Features** (Missed opportunities in snippets). 88 | - **Overloading with Keywords** (Prioritize relevance over stuffing). 89 | - **Static Approach** (Search intent shifts over time). 90 | 91 | ### Pro Tips 92 | - **Combine Intent Layers** (*Informational + Transactional CTAs*). 93 | - **Leverage User Queries** (*People Also Ask insights*). 94 | - **Optimize for Context** (*Personas & Buyer’s Journey*). 95 | - **Localize When Necessary** (*Geo-targeted keywords & Google Business Profile*). 96 | 97 | --- 98 | ## Keyword Research & Integration 99 | ### Keyword Research 100 | - **Identify Relevant Keywords:** Use Semrush for *high-volume, long-tail, related keywords*. 101 | - **Analyze Search Intent:** Ensure alignment with user expectations. 102 | - **Prioritize Competition vs. Opportunity:** Balance high-volume vs. low-competition keywords. 103 | 104 | ### Keyword Integration 105 | - **Title Tag:** Primary keyword naturally included. 106 | - **Meta Description:** Reinforces keyword relevance. 107 | - **Headings (H1, H2, H3):** Keywords in structure. 108 | - **Introduction & Conclusion:** Early & final keyword usage. 109 | - **Semantic Keywords (LSI):** Related phrases improve context. 110 | - **Image Optimization:** Alt tags & filenames with keywords. 111 | - **Internal Linking:** Keyword-rich anchor text enhances topical relevance. 112 | 113 | --- 114 | ## Internal Linking 115 | ### Best Practices 116 | 1. **Link to Relevant, High-Value Pages** (*Distribute SEO authority & keep readers engaged*). 117 | 2. **Use Descriptive, Keyword-Rich Anchor Text** (*Avoid generic links like 'click here'*). 118 | 3. **Prioritize High-Performing & Pillar Pages** (*Boost cornerstone content*). 119 | 4. **Link Early in the Content** (*Crawlers prioritize links higher up*). 120 | 5. **Limit Links to 3-5 Per 1,000 Words** (*Avoid spam signals*). 121 | 6. **Ensure Internal Links Open in the Same Tab** (*Retain engagement*). 122 | 7. **Regularly Audit & Update Links** (*Fix broken/outdated links*). 123 | 124 | --- 125 | ## Structured Data 126 | ### Why Use Structured Data? 127 | - **Enhances Search Visibility** (*Rich snippets, FAQs, product details*). 128 | - **Increases CTR** (*Larger search result previews*). 129 | - **Improves Rankings** (*Better intent matching*). 130 | - **Boosts Voice Search Optimization** (*Better results for assistants*). 131 | 132 | ### Key Schema Types 133 | - **FAQ, How-To, Product, Review, Event, Organization, Author Schema** (Improve visibility and credibility). 134 | 135 | --- 136 | ## Content Promotion 137 | - **Social Media Posting** (*Primary tactic*). 138 | - **Google Ads Promotion** (*Testing phase for Safe Swiss Cloud*). 139 | ```