refactor(skills): Restructure skills to dual-platform architecture

Major refactoring of ourdigital-custom-skills with new numbering system:

## Structure Changes
- Each skill now has code/ (Claude Code) and desktop/ (Claude Desktop) versions
- New progressive numbering: 01-09 General, 10-19 SEO, 20-29 GTM, 30-39 OurDigital, 40-49 Jamie

## Skill Reorganization
- 01-notion-organizer (from 02)
- 10-18: SEO tools split into focused skills (technical, on-page, local, schema, vitals, gsc, gateway)
- 20-21: GTM audit and manager
- 30-32: OurDigital designer, research, presentation
- 40-41: Jamie brand editor and audit

## New Files
- .claude/commands/: Slash command definitions for all skills
- CLAUDE.md: Updated with new skill structure documentation
- REFACTORING_PLAN.md: Migration documentation
- COMPATIBILITY_REPORT.md, SKILLS_COMPARISON.md: Analysis docs

## Removed
- Old skill directories (02-05, 10-14, 20-21 old numbering)
- Consolidated into new structure with _archive/ for reference

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-22 01:58:24 +09:00
parent 214247ace2
commit eea49f9f8c
251 changed files with 12308 additions and 102 deletions

View File

@@ -0,0 +1,234 @@
# Gateway Page Content Builder
A comprehensive Claude Skill for generating SEO-optimized gateway pages for local services, medical practices, and businesses.
## 🎯 Purpose
This skill provides a systematic framework for creating high-quality gateway pages that:
- Target location + service keyword combinations
- Scale content creation while maintaining uniqueness
- Include proper technical SEO elements
- Generate structured data and schema markup
## 📁 Structure
```
gateway-page-content-builder/
├── SKILL.md # Main skill documentation (REQUIRED)
├── README.md # This file
├── templates/ # Page templates
│ ├── gateway-page-medical.md
│ ├── gateway-page-beauty.md
│ └── gateway-page-dental.md
├── scripts/ # Automation scripts
│ ├── generate_pages.py
│ └── keyword_research.py
├── config/ # Configuration files
│ ├── locations.json
│ ├── services.json
│ └── brand.json
└── examples/ # Example outputs
└── gangnam-laser-hair-removal.md
```
## 🚀 Quick Start
### 1. Basic Usage with Claude
Simply ask Claude to use this skill:
```
"Use the Gateway Page Content Builder skill to create a page for laser hair removal in Gangnam"
```
### 2. Batch Generation with Python
```python
from scripts.generate_pages import GatewayPageGenerator, Brand, Location, Service
# Setup your brand
brand = Brand(
name_en="Your Clinic",
name_kr="클리닉명",
website="www.yourclinic.com",
# ... other details
)
# Define locations and services
locations = [...] # Your location list
services = [...] # Your service list
# Generate pages
generator = GatewayPageGenerator(brand)
generator.generate_batch(services, locations)
```
### 3. Using Templates
Templates are in Markdown format with placeholders:
- `[Service]` - Service name
- `[Location]` - Location name
- `[Brand]` - Brand/clinic name
- Additional custom placeholders
## 📝 Content Strategy
### Keyword Formula
```
Primary: [Service] + [Location]
Secondary: [Location] + [Service] + "clinic/center"
Long-tail: "best" + [Service] + "in" + [Location]
```
### Content Uniqueness
Each page should have:
- 30% minimum unique content
- Local landmarks and transportation
- Location-specific testimonials
- Regional statistics or demographics
### Page Length Guidelines
- Minimum: 800 words
- Optimal: 1,200-1,500 words
- Maximum: 2,000 words
## 🎨 Customization
### Adding New Templates
1. Create new template in `templates/` directory
2. Use consistent placeholder naming
3. Include schema markup section
4. Add to configuration
### Extending Services/Locations
Edit the JSON configuration files:
`config/services.json`:
```json
{
"services": [
{
"id": "new-service",
"name_en": "New Service",
"name_kr": "새로운 서비스",
"keywords": ["keyword1", "keyword2"]
}
]
}
```
`config/locations.json`:
```json
{
"locations": [
{
"id": "new-location",
"name_en": "New Location",
"name_kr": "새로운 지역",
"landmarks": ["Landmark 1", "Landmark 2"]
}
]
}
```
## 🔧 Technical Implementation
### URL Structure
```
/[location]/[service]/
Example: /gangnam/laser-hair-removal/
```
### Required Meta Tags
- Title (60 characters max)
- Description (155 characters max)
- Canonical URL
- Open Graph tags
- Schema markup
### Schema Types
- MedicalBusiness
- LocalBusiness
- Service
- Review
- FAQPage
## 📊 Performance Tracking
### Key Metrics
- Organic traffic by page
- Keyword rankings
- Conversion rate
- Bounce rate
- Time on page
### A/B Testing Elements
- Headlines
- CTA buttons
- Trust signals
- Content length
## 🔄 Content Refresh Schedule
- **Weekly**: Review top 10% pages
- **Monthly**: Update testimonials
- **Quarterly**: Refresh statistics
- **Annually**: Full content audit
## 🛠️ Troubleshooting
### Common Issues
1. **Duplicate Content Warnings**
- Ensure 30% unique content minimum
- Use content variation patterns
- Add local elements
2. **Low Rankings**
- Check keyword density (2-3%)
- Verify schema markup
- Add more local signals
3. **Poor Conversion**
- Test CTA placement
- Add trust signals
- Improve page speed
## 📚 Resources
### SEO Tools
- Ahrefs / SEMrush (keyword research)
- Screaming Frog (technical audit)
- Google Search Console (performance)
- Schema.org (structured data)
### Content Tools
- Grammarly (grammar check)
- Hemingway (readability)
- Copyscape (plagiarism)
## 🤝 Contributing
To improve this skill:
1. Test templates with real data
2. Share performance metrics
3. Suggest new features
4. Report issues
## 📄 License
This skill is provided as-is for use with Claude Desktop and Claude Projects.
## 🆘 Support
For questions or assistance:
- Review SKILL.md for detailed documentation
- Check examples/ directory for samples
- Test with the Python script first
---
**Version**: 1.0.0
**Last Updated**: November 2024
**Author**: OurDigital Dr.D

View File

@@ -0,0 +1,82 @@
# CLAUDE.md
## Overview
Gateway page content generator for local services. Creates SEO-optimized pages from location/service configurations.
## Quick Start
```bash
# Generate pages from config
python scripts/generate_pages.py --config config/services.json --locations config/locations.json
```
## Scripts
| Script | Purpose |
|--------|---------|
| `generate_pages.py` | Generate gateway pages from templates |
## Page Generator
```bash
# Generate all combinations
python scripts/generate_pages.py \
--config config/services.json \
--locations config/locations.json \
--output ./pages
# Single service/location
python scripts/generate_pages.py \
--service "laser_hair_removal" \
--location "gangnam" \
--template templates/gateway-page-medical.md
```
## Configuration Files
### services.json
```json
{
"services": [
{
"id": "laser_hair_removal",
"korean": "레이저 제모",
"keywords": ["laser hair removal", "permanent hair removal"]
}
]
}
```
### locations.json
```json
{
"locations": [
{
"id": "gangnam",
"korean": "강남",
"full_address": "서울특별시 강남구"
}
]
}
```
## Templates
- `templates/gateway-page-medical.md` - Medical service template
- Supports variables: `{{service}}`, `{{location}}`, `{{brand}}`
## Output
Generates markdown files with:
- SEO-optimized title and meta
- Structured content sections
- Schema markup recommendations
- Internal linking suggestions
## Workflow
1. Get strategy from `17-seo-gateway-architect`
2. Configure services and locations
3. Run generator for content drafts
4. Review and customize output

View File

@@ -0,0 +1,235 @@
{
"locations": [
{
"id": "gangnam",
"name_en": "Gangnam",
"name_kr": "강남",
"name_cn": "江南",
"district": "Gangnam-gu",
"city": "Seoul",
"full_address_kr": "서울특별시 강남구 테헤란로 123",
"full_address_en": "123 Teheran-ro, Gangnam-gu, Seoul",
"postal_code": "06234",
"latitude": 37.4979,
"longitude": 127.0276,
"landmarks": [
"COEX Mall",
"Gangnam Station",
"Samsung Station",
"Bongeunsa Temple"
],
"subway_stations": [
{
"name": "Gangnam Station",
"lines": ["Line 2", "Sinbundang Line"],
"exit": "Exit 11",
"walking_time": "3 minutes"
},
{
"name": "Sinnonhyeon Station",
"lines": ["Line 9"],
"exit": "Exit 6",
"walking_time": "5 minutes"
}
],
"bus_routes": ["146", "341", "360", "740"],
"demographics": "Young professionals, affluent residents, business district",
"population": "approximately 570,000",
"average_age": "38.5",
"key_industries": ["IT", "Finance", "Medical", "Education"],
"nearby_hospitals": ["Samsung Medical Center", "Gangnam Severance Hospital"],
"parking": {
"available": true,
"type": "Underground",
"capacity": 50,
"fee": "Free for patients"
}
},
{
"id": "myeongdong",
"name_en": "Myeongdong",
"name_kr": "명동",
"name_cn": "明洞",
"district": "Jung-gu",
"city": "Seoul",
"full_address_kr": "서울특별시 중구 명동길 456",
"full_address_en": "456 Myeongdong-gil, Jung-gu, Seoul",
"postal_code": "04537",
"latitude": 37.5636,
"longitude": 126.9869,
"landmarks": [
"Myeongdong Cathedral",
"Lotte Department Store",
"Shinsegae Department Store",
"N Seoul Tower"
],
"subway_stations": [
{
"name": "Myeongdong Station",
"lines": ["Line 4"],
"exit": "Exit 8",
"walking_time": "2 minutes"
},
{
"name": "Euljiro 1-ga Station",
"lines": ["Line 2"],
"exit": "Exit 5",
"walking_time": "7 minutes"
}
],
"bus_routes": ["104", "421", "463", "507"],
"demographics": "Tourists, young shoppers, office workers",
"population": "approximately 13,000",
"average_age": "42.3",
"key_industries": ["Retail", "Tourism", "Banking", "Hospitality"],
"nearby_hospitals": ["Seoul Medical Center", "Asan Medical Center"],
"parking": {
"available": true,
"type": "Building parking",
"capacity": 30,
"fee": "2,000 KRW per hour"
}
},
{
"id": "hongdae",
"name_en": "Hongdae",
"name_kr": "홍대",
"name_cn": "弘大",
"district": "Mapo-gu",
"city": "Seoul",
"full_address_kr": "서울특별시 마포구 와우산로 789",
"full_address_en": "789 Wausan-ro, Mapo-gu, Seoul",
"postal_code": "04104",
"latitude": 37.5563,
"longitude": 126.9220,
"landmarks": [
"Hongik University",
"Hongdae Shopping Street",
"Sangsang Madang",
"Hongdae Free Market"
],
"subway_stations": [
{
"name": "Hongik University Station",
"lines": ["Line 2", "Airport Railroad", "Gyeongui-Jungang Line"],
"exit": "Exit 9",
"walking_time": "1 minute"
},
{
"name": "Sangsu Station",
"lines": ["Line 6"],
"exit": "Exit 1",
"walking_time": "8 minutes"
}
],
"bus_routes": ["271", "602", "603", "760"],
"demographics": "University students, young adults, artists, indie culture",
"population": "approximately 385,000",
"average_age": "35.2",
"key_industries": ["Entertainment", "Arts", "Cafes", "Fashion"],
"nearby_hospitals": ["Severance Hospital", "Sinchon Severance Hospital"],
"parking": {
"available": false,
"type": "Street parking only",
"capacity": 0,
"fee": "Public parking nearby"
}
},
{
"id": "apgujeong",
"name_en": "Apgujeong",
"name_kr": "압구정",
"name_cn": "狎鸥亭",
"district": "Gangnam-gu",
"city": "Seoul",
"full_address_kr": "서울특별시 강남구 압구정로 321",
"full_address_en": "321 Apgujeong-ro, Gangnam-gu, Seoul",
"postal_code": "06001",
"latitude": 37.5311,
"longitude": 127.0403,
"landmarks": [
"Galleria Department Store",
"Apgujeong Rodeo Street",
"Dosan Park",
"K-Star Road"
],
"subway_stations": [
{
"name": "Apgujeong Station",
"lines": ["Line 3"],
"exit": "Exit 2",
"walking_time": "4 minutes"
},
{
"name": "Apgujeong Rodeo Station",
"lines": ["Suin-Bundang Line"],
"exit": "Exit 5",
"walking_time": "3 minutes"
}
],
"bus_routes": ["145", "301", "362", "472"],
"demographics": "High-income residents, luxury shoppers, K-beauty enthusiasts",
"population": "approximately 24,000",
"average_age": "41.7",
"key_industries": ["Luxury retail", "Beauty", "Plastic surgery", "Fashion"],
"nearby_hospitals": ["Chung-Ang University Hospital", "Seoul St. Mary's Hospital"],
"parking": {
"available": true,
"type": "Valet service",
"capacity": 40,
"fee": "Complimentary for VIP patients"
}
},
{
"id": "jamsil",
"name_en": "Jamsil",
"name_kr": "잠실",
"name_cn": "蚕室",
"district": "Songpa-gu",
"city": "Seoul",
"full_address_kr": "서울특별시 송파구 올림픽로 240",
"full_address_en": "240 Olympic-ro, Songpa-gu, Seoul",
"postal_code": "05554",
"latitude": 37.5132,
"longitude": 127.1001,
"landmarks": [
"Lotte World Tower",
"Lotte World",
"Seokchon Lake",
"Olympic Park"
],
"subway_stations": [
{
"name": "Jamsil Station",
"lines": ["Line 2", "Line 8"],
"exit": "Exit 4",
"walking_time": "5 minutes"
},
{
"name": "Jamsilsaenae Station",
"lines": ["Line 2"],
"exit": "Exit 9",
"walking_time": "10 minutes"
}
],
"bus_routes": ["2415", "3217", "3313", "3414"],
"demographics": "Families, middle-class residents, sports enthusiasts",
"population": "approximately 660,000",
"average_age": "40.1",
"key_industries": ["Retail", "Entertainment", "Sports", "Tourism"],
"nearby_hospitals": ["Asan Medical Center", "Seoul Paik Hospital"],
"parking": {
"available": true,
"type": "Multi-level parking",
"capacity": 100,
"fee": "First 2 hours free"
}
}
],
"metadata": {
"last_updated": "2024-11-19",
"total_locations": 5,
"coverage_area": "Seoul Metropolitan Area",
"coordinate_system": "WGS84"
}
}

View File

@@ -0,0 +1,308 @@
{
"services": [
{
"id": "laser-hair-removal",
"name_en": "Laser Hair Removal",
"name_kr": "레이저 제모",
"name_cn": "激光脱毛",
"category": "Dermatology",
"subcategory": "Aesthetic Dermatology",
"description": "Permanent hair reduction using state-of-the-art laser technology",
"detailed_description": "Our laser hair removal treatment uses FDA-approved diode and Alexandrite lasers to target hair follicles, providing long-lasting hair reduction with minimal discomfort. Suitable for all skin types.",
"keywords": [
"permanent hair removal",
"laser hair removal",
"IPL hair removal",
"diode laser",
"hair reduction",
"unwanted hair",
"smooth skin"
],
"procedure_time": "15-60 minutes",
"sessions_required": "6-8 sessions",
"recovery_time": "No downtime",
"results_visible": "After 2-3 sessions",
"price_range": "₩₩₩",
"price_details": {
"small_area": "50,000-100,000 KRW",
"medium_area": "100,000-200,000 KRW",
"large_area": "200,000-400,000 KRW"
},
"target_areas": [
"Face",
"Underarms",
"Arms",
"Legs",
"Bikini line",
"Back",
"Chest"
],
"benefits": [
"Permanent hair reduction",
"Smoother skin",
"No more razor burns",
"Time-saving",
"Cost-effective long-term"
],
"side_effects": [
"Temporary redness",
"Mild swelling",
"Skin sensitivity"
],
"contraindications": [
"Pregnancy",
"Active skin infections",
"Recent sun exposure",
"Certain medications"
],
"seo_priority": "high",
"search_volume": 14800,
"competition": "medium"
},
{
"id": "botox",
"name_en": "Botox Treatment",
"name_kr": "보톡스",
"name_cn": "肉毒素",
"category": "Cosmetic Dermatology",
"subcategory": "Injectable Treatments",
"description": "FDA-approved botulinum toxin for wrinkle reduction and facial rejuvenation",
"detailed_description": "Botox injections temporarily relax facial muscles to reduce the appearance of fine lines and wrinkles. Our experienced practitioners use precise injection techniques for natural-looking results.",
"keywords": [
"botox",
"botulinum toxin",
"wrinkle treatment",
"anti-aging",
"facial rejuvenation",
"crow's feet",
"forehead lines",
"frown lines"
],
"procedure_time": "15-30 minutes",
"sessions_required": "1 session, repeat every 3-6 months",
"recovery_time": "No downtime",
"results_visible": "3-7 days",
"price_range": "₩₩₩₩",
"price_details": {
"per_unit": "10,000-15,000 KRW",
"full_face": "300,000-500,000 KRW",
"single_area": "150,000-250,000 KRW"
},
"target_areas": [
"Forehead lines",
"Crow's feet",
"Frown lines",
"Bunny lines",
"Lip lines",
"Chin dimpling",
"Jawline slimming"
],
"benefits": [
"Reduces wrinkles",
"Prevents new lines",
"Non-surgical",
"Quick procedure",
"Natural results"
],
"side_effects": [
"Temporary bruising",
"Mild headache",
"Drooping eyelid (rare)"
],
"contraindications": [
"Pregnancy/nursing",
"Neuromuscular disorders",
"Allergy to ingredients",
"Active infection at injection site"
],
"seo_priority": "high",
"search_volume": 22200,
"competition": "high"
},
{
"id": "dermal-filler",
"name_en": "Dermal Filler",
"name_kr": "필러",
"name_cn": "玻尿酸",
"category": "Cosmetic Dermatology",
"subcategory": "Injectable Treatments",
"description": "Hyaluronic acid fillers for volume restoration and facial contouring",
"detailed_description": "Our dermal filler treatments use premium hyaluronic acid products to restore volume, enhance facial contours, and smooth deep wrinkles. Results are immediate and can last 6-18 months.",
"keywords": [
"dermal filler",
"hyaluronic acid",
"facial volume",
"lip filler",
"cheek filler",
"nasolabial folds",
"facial contouring"
],
"procedure_time": "30-45 minutes",
"sessions_required": "1 session, touch-ups as needed",
"recovery_time": "24-48 hours",
"results_visible": "Immediate",
"price_range": "₩₩₩₩",
"price_details": {
"per_syringe": "300,000-600,000 KRW",
"lip_augmentation": "400,000-700,000 KRW",
"full_face": "1,500,000-3,000,000 KRW"
},
"target_areas": [
"Lips",
"Cheeks",
"Under eyes",
"Nasolabial folds",
"Marionette lines",
"Jawline",
"Temples"
],
"benefits": [
"Instant results",
"Restores volume",
"Smooths wrinkles",
"Enhances contours",
"Reversible if needed"
],
"side_effects": [
"Swelling",
"Bruising",
"Tenderness",
"Lumps (temporary)"
],
"contraindications": [
"Pregnancy",
"Blood clotting disorders",
"Active cold sores",
"Allergy to lidocaine"
],
"seo_priority": "high",
"search_volume": 18100,
"competition": "high"
},
{
"id": "chemical-peel",
"name_en": "Chemical Peel",
"name_kr": "케미컬 필링",
"name_cn": "化学换肤",
"category": "Medical Aesthetics",
"subcategory": "Skin Resurfacing",
"description": "Professional chemical exfoliation for skin renewal and rejuvenation",
"detailed_description": "Chemical peels use carefully selected acids to remove damaged skin layers, revealing fresher, younger-looking skin. We offer light, medium, and deep peels customized to your skin concerns.",
"keywords": [
"chemical peel",
"skin resurfacing",
"glycolic acid",
"TCA peel",
"skin renewal",
"acne scars",
"pigmentation treatment"
],
"procedure_time": "30-45 minutes",
"sessions_required": "3-6 sessions",
"recovery_time": "3-7 days",
"results_visible": "After peeling completes",
"price_range": "₩₩",
"price_details": {
"light_peel": "100,000-200,000 KRW",
"medium_peel": "300,000-500,000 KRW",
"deep_peel": "700,000-1,000,000 KRW"
},
"target_areas": [
"Full face",
"Neck",
"Décolletage",
"Hands",
"Back"
],
"benefits": [
"Improves texture",
"Reduces pigmentation",
"Minimizes pores",
"Treats acne",
"Stimulates collagen"
],
"side_effects": [
"Peeling",
"Redness",
"Sensitivity",
"Temporary darkening"
],
"contraindications": [
"Active herpes",
"Isotretinoin use",
"Pregnancy",
"Open wounds"
],
"seo_priority": "medium",
"search_volume": 8100,
"competition": "medium"
},
{
"id": "acne-treatment",
"name_en": "Acne Treatment",
"name_kr": "여드름 치료",
"name_cn": "痤疮治疗",
"category": "Medical Dermatology",
"subcategory": "Acne Management",
"description": "Comprehensive medical treatment for acne and acne scarring",
"detailed_description": "Our acne treatment program combines medical-grade therapies including laser treatments, chemical peels, and prescription medications to clear active acne and prevent future breakouts.",
"keywords": [
"acne treatment",
"acne scars",
"pimple treatment",
"blackheads",
"whiteheads",
"cystic acne",
"hormonal acne"
],
"procedure_time": "45-60 minutes",
"sessions_required": "4-8 sessions",
"recovery_time": "Minimal",
"results_visible": "4-6 weeks",
"price_range": "₩₩₩",
"price_details": {
"consultation": "50,000 KRW",
"basic_treatment": "150,000-250,000 KRW",
"laser_therapy": "300,000-500,000 KRW"
},
"target_areas": [
"Face",
"Back",
"Chest",
"Shoulders"
],
"benefits": [
"Clears acne",
"Prevents scarring",
"Reduces inflammation",
"Improves skin texture",
"Boosts confidence"
],
"side_effects": [
"Initial purging",
"Dryness",
"Mild irritation",
"Sun sensitivity"
],
"contraindications": [
"Pregnancy (certain medications)",
"Photosensitivity disorders",
"Active infections"
],
"seo_priority": "high",
"search_volume": 12100,
"competition": "medium"
}
],
"metadata": {
"last_updated": "2024-11-19",
"total_services": 5,
"categories": [
"Dermatology",
"Cosmetic Dermatology",
"Medical Aesthetics",
"Medical Dermatology"
],
"price_currency": "KRW"
}
}

View File

@@ -0,0 +1,398 @@
#!/usr/bin/env python3
"""
Gateway Page Content Generator
Automates the creation of SEO-optimized gateway pages for local services
"""
import json
import os
from datetime import datetime
from typing import Dict, List, Optional
import re
from dataclasses import dataclass
from pathlib import Path
@dataclass
class Location:
"""Location data structure"""
id: str
name_en: str
name_kr: str
full_address: str
landmarks: List[str]
subway_stations: List[str]
demographics: str
latitude: float
longitude: float
@dataclass
class Service:
"""Service data structure"""
id: str
name_en: str
name_kr: str
category: str
description: str
keywords: List[str]
procedure_time: str
recovery_time: str
price_range: str
@dataclass
class Brand:
"""Brand/Clinic information"""
name_en: str
name_kr: str
website: str
phone: str
email: str
established_year: int
certifications: List[str]
unique_selling_points: List[str]
class GatewayPageGenerator:
"""Main class for generating gateway page content"""
def __init__(self, brand: Brand, template_path: str = None):
self.brand = brand
# Use script directory as base for template path
if template_path is None:
script_dir = Path(__file__).parent.parent
self.template_path = script_dir / "templates"
else:
self.template_path = Path(template_path)
self.generated_pages = []
def load_template(self, template_name: str) -> str:
"""Load a template file"""
template_file = self.template_path / template_name
if template_file.exists():
with open(template_file, 'r', encoding='utf-8') as f:
return f.read()
else:
raise FileNotFoundError(f"Template {template_name} not found")
def generate_meta_tags(self, service: Service, location: Location) -> Dict:
"""Generate SEO meta tags"""
return {
"title": f"{service.name_en} in {location.name_en} | Expert {service.category} | {self.brand.name_en}",
"description": f"Looking for {service.name_en.lower()} in {location.name_en}? "
f"{self.brand.name_en} offers professional {service.category.lower()} services. "
f"✓ Experienced team ✓ Latest technology ✓ {self.brand.unique_selling_points[0]}",
"keywords": ", ".join([
f"{service.name_en} {location.name_en}",
f"{location.name_en} {service.name_en}",
*service.keywords,
f"{service.category} {location.name_en}"
]),
"canonical": f"https://{self.brand.website}/{location.id}/{service.id}/",
"og:title": f"{service.name_en} in {location.name_en} - {self.brand.name_en}",
"og:description": f"Professional {service.name_en} services in {location.name_en}. "
f"Book your consultation today.",
"og:image": f"https://{self.brand.website}/images/{service.id}-{location.id}-og.jpg"
}
def generate_schema_markup(self, service: Service, location: Location) -> str:
"""Generate JSON-LD schema markup"""
schema = {
"@context": "https://schema.org",
"@type": "MedicalBusiness",
"name": f"{self.brand.name_en} - {location.name_en}",
"url": f"https://{self.brand.website}",
"telephone": self.brand.phone,
"email": self.brand.email,
"address": {
"@type": "PostalAddress",
"streetAddress": location.full_address,
"addressLocality": location.name_en,
"addressCountry": "KR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": location.latitude,
"longitude": location.longitude
},
"areaServed": {
"@type": "City",
"name": location.name_en
},
"availableService": {
"@type": "MedicalProcedure",
"name": service.name_en,
"description": service.description
},
"priceRange": service.price_range
}
return json.dumps(schema, indent=2, ensure_ascii=False)
def generate_content_variations(self, service: Service, location: Location) -> Dict[str, List[str]]:
"""Generate content variations for uniqueness"""
return {
"hero_headlines": [
f"Professional {service.name_en} in {location.name_en}",
f"{location.name_en}'s Premier {service.name_en} {service.category}",
f"Expert {service.name_en} Services for {location.name_en} Residents",
f"Transform Your Look with {service.name_en} in {location.name_en}"
],
"intro_paragraphs": [
f"Welcome to {self.brand.name_en}, where we specialize in providing exceptional "
f"{service.name_en} services to the {location.name_en} community. "
f"Our state-of-the-art facility, conveniently located near {location.landmarks[0]}, "
f"combines advanced technology with personalized care.",
f"Looking for trusted {service.name_en} in {location.name_en}? "
f"At {self.brand.name_en}, we've been serving the {location.demographics} "
f"for over {datetime.now().year - self.brand.established_year} years. "
f"Our expert team understands the unique needs of {location.name_en} residents.",
f"Discover why {location.name_en} residents choose {self.brand.name_en} "
f"for their {service.name_en} needs. Located just minutes from "
f"{', '.join(location.subway_stations[:2])}, we offer {service.category} "
f"services that deliver remarkable results."
],
"cta_buttons": [
f"Book Your {location.name_en} Consultation",
f"Schedule {service.name_en} Today",
f"Get Started in {location.name_en}",
f"Reserve Your Appointment"
],
"trust_signals": [
f"Trusted by {location.name_en} residents since {self.brand.established_year}",
f"Over 10,000 successful {service.category} treatments",
f"5-star rated {service.name_en} clinic in {location.name_en}",
f"Certified specialists serving {location.demographics}"
]
}
def localize_content(self, content: str, service: Service, location: Location) -> str:
"""Add local elements to content"""
local_elements = {
"transportation": f"Easily accessible via {', '.join(location.subway_stations)} stations",
"landmarks": f"Located near {' and '.join(location.landmarks[:2])}",
"community": f"Proud to serve the {location.name_en} community",
"convenience": f"Convenient for {location.demographics} in {location.name_en}",
"local_stats": f"Join thousands of satisfied patients from {location.name_en}"
}
# Add local elements naturally throughout content
for key, value in local_elements.items():
placeholder = f"[LOCAL_{key.upper()}]"
if placeholder in content:
content = content.replace(placeholder, value)
return content
def generate_page(self, service: Service, location: Location,
template_name: str = "gateway-page-medical.md") -> str:
"""Generate a complete gateway page"""
# Load template
template = self.load_template(template_name)
# Generate components
meta_tags = self.generate_meta_tags(service, location)
schema = self.generate_schema_markup(service, location)
variations = self.generate_content_variations(service, location)
# Replace placeholders in template
replacements = {
"[Medical Service]": service.name_en,
"[Location]": location.name_en,
"[location]": location.name_en.lower(),
"[Clinic Name]": self.brand.name_en,
"[service-slug]": service.id,
"[X years]": str(datetime.now().year - self.brand.established_year),
"[specific address near landmark]": f"{location.full_address}, near {location.landmarks[0]}",
"[nearby subway/bus stations]": ", ".join(location.subway_stations),
"[certification details]": ", ".join(self.brand.certifications[:2]),
"[equipment type]": f"{service.category} equipment",
"[duration]": service.procedure_time,
"[Medical Specialty]": service.category,
"[phone-number]": self.brand.phone,
"[website-url]": f"https://{self.brand.website}",
"[page-url]": f"https://{self.brand.website}/{location.id}/{service.id}/",
"[latitude]": str(location.latitude),
"[longitude]": str(location.longitude),
}
# Apply replacements
content = template
for placeholder, value in replacements.items():
content = content.replace(placeholder, value)
# Add localized content
content = self.localize_content(content, service, location)
# Add schema markup at the end if not already present
if '"@context": "https://schema.org"' not in content:
content += f"\n\n<!-- Schema Markup -->\n<script type='application/ld+json'>\n{schema}\n</script>"
return content
def generate_batch(self, services: List[Service], locations: List[Location],
output_dir: str = "output/") -> List[str]:
"""Generate multiple gateway pages"""
output_path = Path(output_dir)
output_path.mkdir(parents=True, exist_ok=True)
generated_files = []
for location in locations:
location_dir = output_path / location.id
location_dir.mkdir(exist_ok=True)
for service in services:
# Generate content
content = self.generate_page(service, location)
# Save to file
filename = f"{service.id}-{location.id}.md"
filepath = location_dir / filename
with open(filepath, 'w', encoding='utf-8') as f:
f.write(content)
generated_files.append(str(filepath))
print(f"✓ Generated: {filepath}")
# Generate index file
self.generate_index(services, locations, output_path)
return generated_files
def generate_index(self, services: List[Service], locations: List[Location],
output_path: Path):
"""Generate an index of all created pages"""
index_content = f"# Gateway Pages Index - {self.brand.name_en}\n\n"
index_content += f"Generated: {datetime.now().strftime('%Y-%m-%d %H:%M')}\n\n"
index_content += "## Pages by Location\n\n"
for location in locations:
index_content += f"### {location.name_en}\n"
for service in services:
url = f"/{location.id}/{service.id}/"
index_content += f"- [{service.name_en} in {location.name_en}]({url})\n"
index_content += "\n"
index_content += "## Pages by Service\n\n"
for service in services:
index_content += f"### {service.name_en}\n"
for location in locations:
url = f"/{location.id}/{service.id}/"
index_content += f"- [{location.name_en}]({url})\n"
index_content += "\n"
index_content += f"\n---\nTotal Pages Generated: {len(services) * len(locations)}\n"
with open(output_path / "index.md", 'w', encoding='utf-8') as f:
f.write(index_content)
def create_sample_data():
"""Create sample data for testing"""
# Sample brand
brand = Brand(
name_en="Jamie Clinic",
name_kr="제이미 클리닉",
website="www.jamieclinic.com",
phone="+82-2-1234-5678",
email="info@jamieclinic.com",
established_year=2010,
certifications=["ISO 9001", "KAHF Certified", "JCI Accredited"],
unique_selling_points=[
"Same-day appointments available",
"15+ years of experience",
"Latest medical technology"
]
)
# Sample locations
locations = [
Location(
id="gangnam",
name_en="Gangnam",
name_kr="강남",
full_address="123 Teheran-ro, Gangnam-gu, Seoul",
landmarks=["COEX", "Gangnam Station", "Samsung Station"],
subway_stations=["Gangnam Station (Line 2)", "Sinnonhyeon Station (Line 9)"],
demographics="Young professionals and affluent residents",
latitude=37.4979,
longitude=127.0276
),
Location(
id="myeongdong",
name_en="Myeongdong",
name_kr="명동",
full_address="456 Myeongdong-gil, Jung-gu, Seoul",
landmarks=["Myeongdong Cathedral", "Lotte Department Store"],
subway_stations=["Myeongdong Station (Line 4)", "Euljiro 1-ga Station (Line 2)"],
demographics="Tourists and young shoppers",
latitude=37.5636,
longitude=126.9869
)
]
# Sample services
services = [
Service(
id="laser-hair-removal",
name_en="Laser Hair Removal",
name_kr="레이저 제모",
category="Dermatology",
description="Advanced laser technology for permanent hair reduction",
keywords=["permanent hair removal", "IPL", "diode laser"],
procedure_time="30-60 minutes",
recovery_time="No downtime",
price_range="₩₩₩"
),
Service(
id="botox",
name_en="Botox Treatment",
name_kr="보톡스",
category="Cosmetic Dermatology",
description="FDA-approved botulinum toxin for wrinkle reduction",
keywords=["wrinkle treatment", "anti-aging", "facial rejuvenation"],
procedure_time="15-30 minutes",
recovery_time="No downtime",
price_range="₩₩₩₩"
)
]
return brand, locations, services
def main():
"""Main execution function"""
print("=" * 60)
print("Gateway Page Content Generator")
print("=" * 60)
# Get sample data
brand, locations, services = create_sample_data()
# Initialize generator
generator = GatewayPageGenerator(brand)
# Generate pages
print(f"\nGenerating {len(services) * len(locations)} gateway pages...")
print("-" * 40)
generated_files = generator.generate_batch(services, locations)
print("-" * 40)
print(f"\n✅ Successfully generated {len(generated_files)} pages!")
print(f"📁 Output directory: output/")
print(f"📋 Index file created: output/index.md")
# Generate report
print("\n" + "=" * 60)
print("GENERATION REPORT")
print("=" * 60)
print(f"Brand: {brand.name_en}")
print(f"Locations: {', '.join([loc.name_en for loc in locations])}")
print(f"Services: {', '.join([svc.name_en for svc in services])}")
print(f"Total Pages: {len(generated_files)}")
print(f"Timestamp: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
print("=" * 60)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,5 @@
# 18-seo-gateway-builder dependencies
jinja2>=3.1.0
pyyaml>=6.0.0
markdown>=3.5.0
python-dotenv>=1.0.0

View File

@@ -0,0 +1,231 @@
# [Medical Service] in [Location] | [Clinic Name]
<!-- Meta Tags -->
<!--
Title: [Medical Service] in [Location] | Expert Care | [Clinic Name]
Description: Looking for professional [medical service] in [location]? [Clinic Name] offers state-of-the-art [service] with experienced doctors. ✓ Same-day appointments ✓ Insurance accepted ✓ [Unique benefit]
Canonical: https://example.com/[location]/[service-slug]/
-->
## Professional [Medical Service] Available in [Location]
Welcome to [Clinic Name], your trusted provider for [medical service] in [location]. Our medical team brings over [X years] of combined experience, utilizing the latest medical technology to ensure optimal results for our patients in the [location] area.
### Why Choose [Clinic Name] for [Medical Service] in [Location]?
Located conveniently at [specific address near landmark], our [location] clinic specializes in providing personalized [medical service] treatments tailored to each patient's unique needs. We understand the specific health concerns of [location] residents and have designed our services accordingly.
**Our [Location] Advantages:**
- 🏥 Modern facility equipped with latest [equipment type]
- 👨‍⚕️ Board-certified specialists with [certification details]
- 📍 Easy access from [nearby subway/bus stations]
- 🕐 Extended hours to accommodate busy [location] professionals
- 💳 Accept major insurance plans popular in [location]
## Understanding [Medical Service]
### What Is [Medical Service]?
[Detailed medical explanation of the service, including scientific background, FDA approvals if applicable, and medical benefits. This section should be educational while remaining accessible.]
### Who Can Benefit from [Medical Service]?
Our [medical service] treatment in [location] is ideal for patients experiencing:
- [Condition 1 with brief explanation]
- [Condition 2 with brief explanation]
- [Condition 3 with brief explanation]
- [Condition 4 with brief explanation]
## Our [Medical Service] Process in [Location]
### 1. Initial Consultation
Your journey begins with a comprehensive consultation at our [location] clinic. Our specialists will:
- Review your medical history
- Conduct necessary diagnostic tests
- Discuss your treatment goals
- Create a personalized treatment plan
### 2. Treatment Planning
Based on your consultation, we develop a customized approach that considers:
- Your specific medical condition
- Lifestyle factors common to [location] residents
- Insurance coverage options
- Optimal scheduling for your convenience
### 3. Treatment Sessions
Each [medical service] session at our [location] facility typically involves:
- Pre-treatment preparation
- The procedure itself (approximately [duration])
- Post-treatment monitoring
- Detailed aftercare instructions
### 4. Follow-up Care
We provide comprehensive follow-up support including:
- Scheduled check-ups
- 24/7 emergency hotline
- Ongoing treatment adjustments
- Long-term health monitoring
## Expected Results and Recovery
### What to Expect After [Medical Service]
Patients at our [location] clinic typically experience:
- **Immediate effects**: [Description]
- **Short-term (1-2 weeks)**: [Description]
- **Long-term (1-3 months)**: [Description]
- **Final results**: [Timeline and description]
### Recovery Timeline
- Day 1-3: [Recovery details]
- Week 1: [Recovery details]
- Week 2-4: [Recovery details]
- Month 2-3: [Recovery details]
## Safety and Credentials
### Our Medical Standards
[Clinic Name] in [location] maintains the highest medical standards:
- ✓ [Relevant medical certification]
- ✓ [Hospital affiliation if applicable]
- ✓ [Safety protocol certification]
- ✓ [Professional membership]
### Our Medical Team
**Dr. [Name], MD**
- [Medical school]
- [Residency/Fellowship]
- [Years of experience] specializing in [medical service]
- [Special recognition or research]
## Pricing and Insurance
### Insurance Coverage
We accept most major insurance plans used by [location] residents:
- [Insurance provider 1]
- [Insurance provider 2]
- [Insurance provider 3]
- [Insurance provider 4]
### Payment Options
For your convenience, we offer:
- Insurance direct billing
- Flexible payment plans
- Credit card payments
- HSA/FSA acceptance
### Transparent Pricing
Contact us for a detailed quote. Factors affecting cost include:
- Severity of condition
- Number of sessions required
- Insurance coverage level
- Additional treatments needed
## Patient Testimonials from [Location]
> "After struggling with [condition] for years, I finally found relief at [Clinic Name]. The team was professional, and the results exceeded my expectations."
> — [Patient initials], [Location] resident
> "The convenience of having such high-quality [medical service] right here in [location] made all the difference. I no longer have to travel to [other area] for treatment."
> — [Patient initials], [Nearby neighborhood]
> "Dr. [Name] took the time to explain everything thoroughly. I felt confident throughout the entire process."
> — [Patient initials], [Location] professional
## Frequently Asked Questions
### General Questions
**Q: How do I know if [medical service] is right for me?**
A: The best way to determine if you're a candidate is through a consultation at our [location] clinic. We'll evaluate your medical history, current condition, and treatment goals.
**Q: How long does [medical service] take?**
A: Treatment sessions typically last [duration], though your first visit including consultation may take [longer duration].
**Q: Is [medical service] painful?**
A: [Comfort level explanation with pain management options available]
### Location-Specific Questions
**Q: Where exactly is your [location] clinic located?**
A: We're located at [full address], just [distance] from [landmark/station]. [Parking/public transport information].
**Q: Do you have parking available?**
A: Yes, we offer [parking details specific to location].
**Q: What are your hours for the [location] clinic?**
A:
- Monday-Friday: [hours]
- Saturday: [hours]
- Sunday: [hours/closed]
### Insurance and Payment
**Q: Does insurance cover [medical service]?**
A: Coverage varies by plan. Our insurance specialists can verify your benefits before your appointment.
**Q: Do you offer payment plans?**
A: Yes, we offer flexible payment options including [specific plans available].
## Schedule Your [Medical Service] Consultation in [Location]
Ready to take the first step? Contact our [location] clinic today:
### Contact Information
📍 **Address**: [Full address]
📞 **Phone**: [Local phone number]
📧 **Email**: [location]@[clinicname].com
🌐 **Online Booking**: [URL]
### Office Hours
- **Monday-Friday**: [Hours]
- **Saturday**: [Hours]
- **Sunday**: [Hours/Closed]
- **Emergency**: [24/7 hotline if available]
### Getting Here
**By Subway**: [Detailed directions from nearest station]
**By Bus**: [Bus routes and stops]
**By Car**: [Driving directions and parking info]
---
<!-- Schema Markup -->
```json
{
"@context": "https://schema.org",
"@type": "MedicalClinic",
"name": "[Clinic Name] - [Location]",
"image": "[clinic-image-url]",
"@id": "[page-url]",
"url": "[website-url]",
"telephone": "[phone-number]",
"address": {
"@type": "PostalAddress",
"streetAddress": "[street]",
"addressLocality": "[city]",
"addressRegion": "[state/province]",
"postalCode": "[zip]",
"addressCountry": "KR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": [latitude],
"longitude": [longitude]
},
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "18:00"
},
"medicalSpecialty": "[Medical Specialty]",
"availableService": {
"@type": "MedicalProcedure",
"name": "[Medical Service]",
"description": "[Service Description]"
}
}
```
*Last updated: [Date] | [Clinic Name] - Professional [Medical Service] in [Location]*

View File

@@ -0,0 +1,377 @@
---
name: gateway-page-content-builder
version: 1.0.0
description: Systematic content generation framework for SEO-optimized gateway pages with local service focus
license: OurDigital internal-use ONLY
---
# Gateway Page Content Builder
A comprehensive skill for building high-quality, SEO-optimized gateway page content for local services, medical practices, and business locations.
## Core Purpose
This skill provides a systematic framework for creating gateway pages that:
- Target specific location + service keyword combinations
- Follow SEO best practices for local search optimization
- Maintain content quality and uniqueness at scale
- Include structured data and technical SEO elements
## Content Generation Framework
### 1. Page Structure Template
Every gateway page should follow this optimized structure:
```markdown
# [Service Name] in [Location] - [Brand Name]
## Hero Section
- Primary headline with target keywords
- Value proposition statement
- Quick contact CTA
## Service Overview
- What is [service]?
- Why choose our [service] in [location]
- Key benefits for [location] residents
## Local Service Details
- Service availability in [location]
- Local team/facility information
- Location-specific offerings
## Process & Procedure
- Step-by-step service flow
- Duration and frequency
- What to expect
## Benefits & Results
- Evidence-based outcomes
- Patient/customer testimonials
- Before/after scenarios
## Pricing & Insurance
- Transparent pricing structure
- Insurance coverage details
- Payment options
## FAQ Section
- Location-specific questions
- Service-specific concerns
- Booking and preparation
## Contact & Booking
- Clear CTA sections
- Multiple contact methods
- Online booking integration
```
### 2. Content Variables System
Define reusable content variables for efficient scaling:
```yaml
variables:
service_types:
- name: "laser_hair_removal"
korean: "레이저 제모"
description: "Advanced laser technology for permanent hair reduction"
keywords: ["laser hair removal", "permanent hair removal", "IPL treatment"]
locations:
- name: "gangnam"
korean: "강남"
full_address: "서울특별시 강남구"
landmarks: ["COEX", "Samsung Station", "Gangnam Station"]
demographics: "Young professionals, high income"
brand_info:
name: "Your Clinic"
korean: "클리닉명"
usp: "15+ years of experience with latest technology"
```
### 3. Content Generation Rules
#### Title Tag Formula
```
[Service] in [Location] | [Unique Modifier] | [Brand]
Examples:
- "Laser Hair Removal in Gangnam | Same-Day Appointments | Jamie Clinic"
- "강남 레이저 제모 | 당일 예약 가능 | 제이미 클리닉"
```
#### Meta Description Template
```
Looking for [service] in [location]? [Brand] offers [USP] with [benefit].
Book your consultation today. ✓ [Feature 1] ✓ [Feature 2] ✓ [Feature 3]
```
#### H1 Optimization
```
Primary: [Service] in [Location]
Alternative: [Location] [Service] - [Brand Modifier]
Korean: [지역] [서비스] 전문 [브랜드]
```
### 4. Local SEO Elements
#### Schema Markup Requirements
```json
{
"@context": "https://schema.org",
"@type": "MedicalBusiness",
"name": "Clinic Name",
"address": {
"@type": "PostalAddress",
"streetAddress": "",
"addressLocality": "",
"addressRegion": "",
"postalCode": ""
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "",
"longitude": ""
},
"areaServed": {
"@type": "City",
"name": "Location Name"
},
"medicalSpecialty": "Service Type",
"availableService": {
"@type": "MedicalProcedure",
"name": "Service Name",
"description": "Service Description"
}
}
```
### 5. Content Uniqueness Strategy
#### Localization Techniques
1. **Local landmarks**: "Just 5 minutes from [Landmark]"
2. **Transportation**: "Accessible via [Subway Line] at [Station]"
3. **Local statistics**: "Serving [X] residents in [Area] since [Year]"
4. **Community involvement**: "Proud partner of [Local Organization]"
5. **Regional preferences**: "Tailored to [Location] residents' needs"
#### Content Variation Patterns
```python
variations = {
"intro_patterns": [
"Discover professional [service] in [location]",
"[Location] residents trust us for [service]",
"Your local [service] experts in [location]",
"Premium [service] now available in [location]"
],
"cta_patterns": [
"Book your [location] appointment today",
"Schedule a consultation at our [location] clinic",
"Visit us in [location] for [service]",
"Get started with [service] in [location]"
]
}
```
### 6. Content Quality Checklist
Before publishing any gateway page, verify:
- [ ] **Keyword optimization**: Target keyword appears in title, H1, first 100 words
- [ ] **Content length**: Minimum 800 words of unique content
- [ ] **Local signals**: At least 5 location mentions naturally integrated
- [ ] **Structured data**: Schema markup properly implemented
- [ ] **Internal linking**: Links to main service page and location page
- [ ] **Images**: Alt text includes location + service keywords
- [ ] **Mobile optimization**: Content readable on mobile devices
- [ ] **Load speed**: Page loads under 3 seconds
- [ ] **CTAs**: Clear calls-to-action above and below fold
- [ ] **Trust signals**: Reviews, certifications, testimonials included
### 7. Scaling Framework
#### Batch Generation Process
1. Create master template with variable placeholders
2. Define location and service matrices
3. Generate unique content blocks for each combination
4. Review and customize top 20% traffic potential pages
5. Implement progressive enhancement based on performance
#### Priority Matrix
```
High Priority (Manual Optimization):
- High search volume + High commercial intent
- Major city centers + Premium services
- Competitive keywords requiring unique angle
Medium Priority (Template + Customization):
- Moderate search volume + Standard services
- Secondary locations + Common procedures
Low Priority (Automated Generation):
- Long-tail keywords + Suburban areas
- Informational intent + Low competition
```
### 8. Performance Tracking
#### KPIs to Monitor
```yaml
metrics:
organic_traffic:
- Pageviews from organic search
- Unique visitors by location
- Average session duration
conversions:
- Form submissions by page
- Phone calls tracked
- Online bookings completed
engagement:
- Bounce rate below 40%
- Pages per session above 2.0
- Scroll depth above 75%
rankings:
- Position tracking for target keywords
- Local pack appearances
- Featured snippet captures
```
## Implementation Instructions
### Step 1: Keyword Research
```python
# Generate keyword combinations
locations = ["gangnam", "sinsa", "apgujeong"]
services = ["laser_hair_removal", "botox", "filler"]
keywords = []
for location in locations:
for service in services:
keywords.append({
"primary": f"{service} {location}",
"secondary": f"{location} {service} clinic",
"long_tail": f"best {service} clinic in {location}"
})
```
### Step 2: Content Creation
1. Use the template structure above
2. Fill in variables for location and service
3. Add unique local content (minimum 30% unique per page)
4. Include relevant images with local landmarks
5. Add schema markup and meta tags
### Step 3: Technical Implementation
1. Create URL structure: `/location/service/`
2. Implement breadcrumbs with proper schema
3. Add internal linking to related pages
4. Set up canonical tags to avoid duplication
5. Create XML sitemap for gateway pages
### Step 4: Quality Assurance
- Run content through plagiarism checker
- Verify all technical SEO elements
- Test page speed and mobile responsiveness
- Review content for local relevance
- Check all CTAs and contact information
## Advanced Techniques
### Dynamic Content Insertion
```javascript
// Example of dynamic content based on user location
const userLocation = getUserLocation();
const nearestClinic = findNearestClinic(userLocation);
// Update content dynamically
document.querySelector('.hero-location').textContent =
`Serving ${userLocation.district} and surrounding areas`;
document.querySelector('.distance-info').textContent =
`Only ${nearestClinic.distance} from your location`;
```
### A/B Testing Framework
```yaml
test_variations:
headlines:
- control: "[Service] in [Location]"
- variant_a: "#1 [Service] Provider in [Location]"
- variant_b: "[Location]'s Trusted [Service] Clinic"
cta_buttons:
- control: "Book Now"
- variant_a: "Get Free Consultation"
- variant_b: "Check Availability"
```
### Content Refresh Strategy
- Monthly: Update testimonials and reviews
- Quarterly: Refresh statistics and data points
- Semi-annually: Add new FAQs based on search queries
- Annually: Complete content audit and refresh
## Prompts for Content Generation
### Initial Content Brief
```
Create gateway page content for [SERVICE] in [LOCATION]:
- Target keyword: [PRIMARY KEYWORD]
- Secondary keywords: [LIST]
- Local landmarks: [LIST]
- Unique selling points: [LIST]
- Competitor differentiation: [POINTS]
```
### Content Expansion
```
Expand the following gateway page section:
Current content: [PASTE]
Add: Local statistics, transportation info, 2 testimonials
Maintain: Professional tone, keyword density 2-3%
Length: 200-300 words
```
### FAQ Generation
```
Generate 8 FAQs for [SERVICE] in [LOCATION]:
- 3 service-specific questions
- 2 location/accessibility questions
- 2 pricing/insurance questions
- 1 preparation/aftercare question
Include question schema markup format
```
## Resources and Tools
### Recommended Tools
- **Keyword Research**: Ahrefs, SEMrush, Google Keyword Planner
- **Content Optimization**: Surfer SEO, Clearscope, MarketMuse
- **Schema Generation**: Schema.org, Google's Structured Data Tool
- **Performance Tracking**: Google Analytics, Search Console
- **A/B Testing**: Google Optimize, Optimizely
### Templates Directory
- `templates/gateway-page-medical.md`
- `templates/gateway-page-beauty.md`
- `templates/gateway-page-dental.md`
- `templates/schema-medical-business.json`
- `templates/meta-tags-local.html`
## Version History
### v1.0.0 (Current)
- Initial framework for gateway page content generation
- Medical and beauty service focus
- Korean market optimization
- Local SEO best practices
- Content scaling methodology
---
*This skill is optimized for Korean medical and beauty service markets but can be adapted for any local service business requiring location-based gateway pages.*

View File

@@ -0,0 +1,282 @@
# Laser Hair Removal in Gangnam | Expert Care | Jamie Clinic
<!-- Meta Tags -->
<!--
Title: Laser Hair Removal in Gangnam | Same-Day Appointments | Jamie Clinic
Description: Looking for professional laser hair removal in Gangnam? Jamie Clinic offers state-of-the-art permanent hair reduction with experienced doctors. ✓ Same-day appointments ✓ Insurance accepted ✓ 15+ years of experience
Canonical: https://www.jamieclinic.com/gangnam/laser-hair-removal/
-->
## Professional Laser Hair Removal Available in Gangnam
Welcome to Jamie Clinic, your trusted provider for laser hair removal in Gangnam. Our medical team brings over 14 years of combined experience, utilizing the latest medical technology to ensure optimal results for our patients in the Gangnam area.
### Why Choose Jamie Clinic for Laser Hair Removal in Gangnam?
Located conveniently at 123 Teheran-ro, Gangnam-gu, Seoul, near COEX Mall, our Gangnam clinic specializes in providing personalized laser hair removal treatments tailored to each patient's unique needs. We understand the specific health concerns of Gangnam residents and have designed our services accordingly.
**Our Gangnam Advantages:**
- 🏥 Modern facility equipped with latest diode and Alexandrite laser equipment
- 👨‍⚕️ Board-certified specialists with ISO 9001, KAHF Certified
- 📍 Easy access from Gangnam Station (Line 2), Sinnonhyeon Station (Line 9)
- 🕐 Extended hours to accommodate busy Gangnam professionals
- 💳 Accept major insurance plans popular in Gangnam
## Understanding Laser Hair Removal
### What Is Laser Hair Removal?
Laser hair removal is a medical procedure that uses concentrated light to target and destroy hair follicles, resulting in permanent hair reduction. Our FDA-approved laser systems deliver precise wavelengths of light that are absorbed by the pigment in hair follicles, effectively disabling them while leaving surrounding skin undamaged. This advanced technology has revolutionized the approach to unwanted hair removal, offering a long-term solution compared to traditional methods.
### Who Can Benefit from Laser Hair Removal?
Our laser hair removal treatment in Gangnam is ideal for patients experiencing:
- Excessive unwanted hair growth requiring frequent shaving or waxing
- Ingrown hairs and razor burn from traditional hair removal methods
- Time constraints making regular hair removal maintenance challenging
- Skin sensitivity or allergic reactions to depilatory creams and waxing
## Our Laser Hair Removal Process in Gangnam
### 1. Initial Consultation
Your journey begins with a comprehensive consultation at our Gangnam clinic. Our specialists will:
- Review your medical history and skin type
- Conduct a patch test to determine optimal laser settings
- Discuss your hair removal goals and expectations
- Create a personalized treatment plan with session scheduling
### 2. Treatment Planning
Based on your consultation, we develop a customized approach that considers:
- Your specific hair type and skin tone
- Lifestyle factors common to young professionals and affluent residents
- Insurance coverage options for medical necessity cases
- Optimal scheduling for your convenience around work commitments
### 3. Treatment Sessions
Each laser hair removal session at our Gangnam facility typically involves:
- Pre-treatment skin preparation and cooling
- The procedure itself (approximately 15-60 minutes depending on area)
- Post-treatment soothing gel application
- Detailed aftercare instructions for best results
### 4. Follow-up Care
We provide comprehensive follow-up support including:
- Scheduled check-ups to monitor progress
- 24/7 emergency hotline for any concerns
- Treatment adjustments based on your results
- Long-term maintenance planning
## Expected Results and Recovery
### What to Expect After Laser Hair Removal
Patients at our Gangnam clinic typically experience:
- **Immediate effects**: Slight redness and warmth in treated areas
- **Short-term (1-2 weeks)**: Hair shedding from treated follicles
- **Long-term (1-3 months)**: Noticeable reduction in hair growth
- **Final results**: 70-90% permanent hair reduction after complete treatment series
### Recovery Timeline
- Day 1-3: Mild redness and sensitivity, similar to mild sunburn
- Week 1: Hair begins to shed naturally from treated follicles
- Week 2-4: Skin returns to normal, new hair growth visibly reduced
- Month 2-3: Ready for next treatment session
## Safety and Credentials
### Our Medical Standards
Jamie Clinic in Gangnam maintains the highest medical standards:
- ✓ ISO 9001 Quality Management Certification
- ✓ KAHF (Korean Association of Hair and Face) Certified
- ✓ JCI Accredited facility
- ✓ Member of Korean Dermatological Association
### Our Medical Team
**Dr. Kim Jung-ho, MD**
- Seoul National University Medical School
- Dermatology Residency at Samsung Medical Center
- 10+ years specializing in laser hair removal
- Published research on laser technology in Asian skin types
**Dr. Park Mi-young, MD**
- Yonsei University College of Medicine
- Fellowship in Cosmetic Dermatology
- 8+ years of laser treatment experience
- Specialized training in sensitive skin treatments
## Pricing and Insurance
### Insurance Coverage
We accept most major insurance plans used by Gangnam residents:
- Samsung Fire & Marine Insurance
- KB Insurance
- Hyundai Marine & Fire Insurance
- DB Insurance
### Payment Options
For your convenience, we offer:
- Insurance direct billing for eligible treatments
- Flexible payment plans with 0% interest
- All major credit cards accepted
- HSA/FSA acceptance for medical procedures
### Transparent Pricing
Contact us for a detailed quote. Factors affecting cost include:
- Size and number of treatment areas
- Number of sessions required (typically 6-8)
- Your specific insurance coverage level
- Package deals for multiple areas
**Pricing Guide:**
- Small areas (upper lip, chin): 50,000-100,000 KRW per session
- Medium areas (underarms, bikini): 100,000-200,000 KRW per session
- Large areas (full legs, back): 200,000-400,000 KRW per session
## Patient Testimonials from Gangnam
> "After struggling with ingrown hairs for years, I finally found relief at Jamie Clinic. The team was professional, and the results exceeded my expectations. Being so close to my office in COEX made it incredibly convenient."
> — J.K., Gangnam resident
> "The convenience of having such high-quality laser hair removal right here in Gangnam made all the difference. I no longer have to travel to other districts for treatment. The results have been life-changing!"
> — S.L., Samsung Station area
> "Dr. Kim took the time to explain everything thoroughly. As someone with sensitive skin, I was nervous, but the treatment was much more comfortable than I expected. Highly recommend to anyone in Gangnam!"
> — M.C., Gangnam professional
## Frequently Asked Questions
### General Questions
**Q: How do I know if laser hair removal is right for me?**
A: The best way to determine if you're a candidate is through a consultation at our Gangnam clinic. We'll evaluate your skin type, hair color, medical history, and treatment goals. Most people with dark hair and light to medium skin tones are excellent candidates.
**Q: How long does laser hair removal take?**
A: Treatment sessions typically last 15-60 minutes depending on the area being treated, though your first visit including consultation may take up to 90 minutes.
**Q: Is laser hair removal painful?**
A: Most patients describe the sensation as similar to a rubber band snapping against the skin. We use advanced cooling systems and can apply numbing cream for sensitive areas to ensure your comfort.
**Q: How many sessions will I need?**
A: Most patients require 6-8 sessions spaced 4-6 weeks apart for optimal results. The exact number depends on factors like hair color, skin type, and the area being treated.
### Location-Specific Questions
**Q: Where exactly is your Gangnam clinic located?**
A: We're located at 123 Teheran-ro, Gangnam-gu, Seoul, just 3 minutes walk from Gangnam Station Exit 11. We're in the medical building next to COEX Mall. Free underground parking is available for all patients.
**Q: Do you have parking available?**
A: Yes, we offer free underground parking for all patients. The parking entrance is on the left side of the building. Simply validate your parking ticket at reception.
**Q: What are your hours for the Gangnam clinic?**
A:
- Monday-Friday: 9:00 AM - 8:00 PM
- Saturday: 9:00 AM - 6:00 PM
- Sunday: 10:00 AM - 4:00 PM
**Q: How do I get there by public transportation?**
A: Take Line 2 to Gangnam Station and use Exit 11. Walk straight for about 3 minutes. We're in the tall glass medical building on your right. Alternatively, take Line 9 to Sinnonhyeon Station Exit 6 and walk 5 minutes.
### Insurance and Payment
**Q: Does insurance cover laser hair removal?**
A: Coverage varies by plan. Medical necessity cases (such as pilonidal cysts or folliculitis) may be covered. Our insurance specialists can verify your benefits before your appointment.
**Q: Do you offer payment plans?**
A: Yes, we offer flexible payment options including 3, 6, or 12-month interest-free payment plans for treatments over 1,000,000 KRW.
**Q: Can I use my FSA or HSA?**
A: Yes, laser hair removal for medical reasons is typically FSA/HSA eligible. We can provide the necessary documentation for reimbursement.
## Schedule Your Laser Hair Removal Consultation in Gangnam
Ready to say goodbye to unwanted hair forever? Contact our Gangnam clinic today:
### Contact Information
📍 **Address**: 123 Teheran-ro, Gangnam-gu, Seoul 06234
📞 **Phone**: +82-2-1234-5678
📧 **Email**: gangnam@jamieclinic.com
🌐 **Online Booking**: https://www.jamieclinic.com/book-gangnam
### Office Hours
- **Monday-Friday**: 9:00 AM - 8:00 PM
- **Saturday**: 9:00 AM - 6:00 PM
- **Sunday**: 10:00 AM - 4:00 PM
- **Emergency**: 24/7 hotline available at +82-2-1234-9999
### Getting Here
**By Subway**:
- Line 2: Gangnam Station Exit 11 (3-minute walk)
- Line 9: Sinnonhyeon Station Exit 6 (5-minute walk)
- Sinbundang Line: Gangnam Station Exit 11 (3-minute walk)
**By Bus**: Routes 146, 341, 360, 740 all stop within 2 minutes of our clinic
**By Car**: Navigate to 123 Teheran-ro, Gangnam-gu. Underground parking entrance on the left side of the building. Free parking for all patients.
### Nearby Landmarks
- COEX Mall (1-minute walk)
- Samsung Station (10-minute walk)
- Bongeunsa Temple (15-minute walk)
- Gangnam Finance Center (5-minute walk)
---
<!-- Schema Markup -->
<script type='application/ld+json'>
{
"@context": "https://schema.org",
"@type": "MedicalBusiness",
"name": "Jamie Clinic - Gangnam",
"url": "https://www.jamieclinic.com",
"telephone": "+82-2-1234-5678",
"email": "info@jamieclinic.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Teheran-ro, Gangnam-gu, Seoul",
"addressLocality": "Gangnam",
"addressCountry": "KR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 37.4979,
"longitude": 127.0276
},
"areaServed": {
"@type": "City",
"name": "Gangnam"
},
"availableService": {
"@type": "MedicalProcedure",
"name": "Laser Hair Removal",
"description": "Permanent hair reduction using state-of-the-art laser technology"
},
"priceRange": "₩₩₩",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "20:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "09:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "10:00",
"closes": "16:00"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "324"
}
}
</script>
*Last updated: November 19, 2024 | Jamie Clinic - Professional Laser Hair Removal in Gangnam*

View File

@@ -0,0 +1,231 @@
# [Medical Service] in [Location] | [Clinic Name]
<!-- Meta Tags -->
<!--
Title: [Medical Service] in [Location] | Expert Care | [Clinic Name]
Description: Looking for professional [medical service] in [location]? [Clinic Name] offers state-of-the-art [service] with experienced doctors. ✓ Same-day appointments ✓ Insurance accepted ✓ [Unique benefit]
Canonical: https://example.com/[location]/[service-slug]/
-->
## Professional [Medical Service] Available in [Location]
Welcome to [Clinic Name], your trusted provider for [medical service] in [location]. Our medical team brings over [X years] of combined experience, utilizing the latest medical technology to ensure optimal results for our patients in the [location] area.
### Why Choose [Clinic Name] for [Medical Service] in [Location]?
Located conveniently at [specific address near landmark], our [location] clinic specializes in providing personalized [medical service] treatments tailored to each patient's unique needs. We understand the specific health concerns of [location] residents and have designed our services accordingly.
**Our [Location] Advantages:**
- 🏥 Modern facility equipped with latest [equipment type]
- 👨‍⚕️ Board-certified specialists with [certification details]
- 📍 Easy access from [nearby subway/bus stations]
- 🕐 Extended hours to accommodate busy [location] professionals
- 💳 Accept major insurance plans popular in [location]
## Understanding [Medical Service]
### What Is [Medical Service]?
[Detailed medical explanation of the service, including scientific background, FDA approvals if applicable, and medical benefits. This section should be educational while remaining accessible.]
### Who Can Benefit from [Medical Service]?
Our [medical service] treatment in [location] is ideal for patients experiencing:
- [Condition 1 with brief explanation]
- [Condition 2 with brief explanation]
- [Condition 3 with brief explanation]
- [Condition 4 with brief explanation]
## Our [Medical Service] Process in [Location]
### 1. Initial Consultation
Your journey begins with a comprehensive consultation at our [location] clinic. Our specialists will:
- Review your medical history
- Conduct necessary diagnostic tests
- Discuss your treatment goals
- Create a personalized treatment plan
### 2. Treatment Planning
Based on your consultation, we develop a customized approach that considers:
- Your specific medical condition
- Lifestyle factors common to [location] residents
- Insurance coverage options
- Optimal scheduling for your convenience
### 3. Treatment Sessions
Each [medical service] session at our [location] facility typically involves:
- Pre-treatment preparation
- The procedure itself (approximately [duration])
- Post-treatment monitoring
- Detailed aftercare instructions
### 4. Follow-up Care
We provide comprehensive follow-up support including:
- Scheduled check-ups
- 24/7 emergency hotline
- Ongoing treatment adjustments
- Long-term health monitoring
## Expected Results and Recovery
### What to Expect After [Medical Service]
Patients at our [location] clinic typically experience:
- **Immediate effects**: [Description]
- **Short-term (1-2 weeks)**: [Description]
- **Long-term (1-3 months)**: [Description]
- **Final results**: [Timeline and description]
### Recovery Timeline
- Day 1-3: [Recovery details]
- Week 1: [Recovery details]
- Week 2-4: [Recovery details]
- Month 2-3: [Recovery details]
## Safety and Credentials
### Our Medical Standards
[Clinic Name] in [location] maintains the highest medical standards:
- ✓ [Relevant medical certification]
- ✓ [Hospital affiliation if applicable]
- ✓ [Safety protocol certification]
- ✓ [Professional membership]
### Our Medical Team
**Dr. [Name], MD**
- [Medical school]
- [Residency/Fellowship]
- [Years of experience] specializing in [medical service]
- [Special recognition or research]
## Pricing and Insurance
### Insurance Coverage
We accept most major insurance plans used by [location] residents:
- [Insurance provider 1]
- [Insurance provider 2]
- [Insurance provider 3]
- [Insurance provider 4]
### Payment Options
For your convenience, we offer:
- Insurance direct billing
- Flexible payment plans
- Credit card payments
- HSA/FSA acceptance
### Transparent Pricing
Contact us for a detailed quote. Factors affecting cost include:
- Severity of condition
- Number of sessions required
- Insurance coverage level
- Additional treatments needed
## Patient Testimonials from [Location]
> "After struggling with [condition] for years, I finally found relief at [Clinic Name]. The team was professional, and the results exceeded my expectations."
> — [Patient initials], [Location] resident
> "The convenience of having such high-quality [medical service] right here in [location] made all the difference. I no longer have to travel to [other area] for treatment."
> — [Patient initials], [Nearby neighborhood]
> "Dr. [Name] took the time to explain everything thoroughly. I felt confident throughout the entire process."
> — [Patient initials], [Location] professional
## Frequently Asked Questions
### General Questions
**Q: How do I know if [medical service] is right for me?**
A: The best way to determine if you're a candidate is through a consultation at our [location] clinic. We'll evaluate your medical history, current condition, and treatment goals.
**Q: How long does [medical service] take?**
A: Treatment sessions typically last [duration], though your first visit including consultation may take [longer duration].
**Q: Is [medical service] painful?**
A: [Comfort level explanation with pain management options available]
### Location-Specific Questions
**Q: Where exactly is your [location] clinic located?**
A: We're located at [full address], just [distance] from [landmark/station]. [Parking/public transport information].
**Q: Do you have parking available?**
A: Yes, we offer [parking details specific to location].
**Q: What are your hours for the [location] clinic?**
A:
- Monday-Friday: [hours]
- Saturday: [hours]
- Sunday: [hours/closed]
### Insurance and Payment
**Q: Does insurance cover [medical service]?**
A: Coverage varies by plan. Our insurance specialists can verify your benefits before your appointment.
**Q: Do you offer payment plans?**
A: Yes, we offer flexible payment options including [specific plans available].
## Schedule Your [Medical Service] Consultation in [Location]
Ready to take the first step? Contact our [location] clinic today:
### Contact Information
📍 **Address**: [Full address]
📞 **Phone**: [Local phone number]
📧 **Email**: [location]@[clinicname].com
🌐 **Online Booking**: [URL]
### Office Hours
- **Monday-Friday**: [Hours]
- **Saturday**: [Hours]
- **Sunday**: [Hours/Closed]
- **Emergency**: [24/7 hotline if available]
### Getting Here
**By Subway**: [Detailed directions from nearest station]
**By Bus**: [Bus routes and stops]
**By Car**: [Driving directions and parking info]
---
<!-- Schema Markup -->
```json
{
"@context": "https://schema.org",
"@type": "MedicalClinic",
"name": "[Clinic Name] - [Location]",
"image": "[clinic-image-url]",
"@id": "[page-url]",
"url": "[website-url]",
"telephone": "[phone-number]",
"address": {
"@type": "PostalAddress",
"streetAddress": "[street]",
"addressLocality": "[city]",
"addressRegion": "[state/province]",
"postalCode": "[zip]",
"addressCountry": "KR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": [latitude],
"longitude": [longitude]
},
"openingHoursSpecification": {
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "18:00"
},
"medicalSpecialty": "[Medical Specialty]",
"availableService": {
"@type": "MedicalProcedure",
"name": "[Medical Service]",
"description": "[Service Description]"
}
}
```
*Last updated: [Date] | [Clinic Name] - Professional [Medical Service] in [Location]*