🔍 Integrated comprehensive keywords from motherboardrepair.ca website

- EXTRACTED: 175+ repair keywords from website sst.yml and keywords.csv
- UPDATED: repair_keywords.json with 14 categories (up from 12)
- ADDED: New categories (HDMI issues, Key fob repairs, Screen damage, Power issues, Water damage)
- REGENERATED: RSS feeds with website-sourced keywords (322 feeds total)
- IMPROVED: Keyword targeting based on actual business website content

New RSS feeds now use proven keywords from motherboardrepair.ca for better lead quality!
This commit is contained in:
Colin 2026-01-19 14:11:41 -05:00
parent ce306e7f2b
commit ead7bc70fc
Signed by: colin
SSH Key Fingerprint: SHA256:nRPCQTeMFLdGytxRQmPVK9VXY3/ePKQ5lGRyJhT5DY8
4 changed files with 786 additions and 63 deletions

View File

@ -20,7 +20,7 @@
- **`scripts/generate_modular_rss_feeds.py`** - Generate fresh RSS feeds from source files
- **`data/repair_keywords.json`** - Source file: All repair keywords/keyphrases
- **`data/canadian_subreddits.json`** - Source file: Canadian subreddits with metadata
- **Latest Output:** [feeds/rss_feeds_20260119_140623.md](feeds/rss_feeds_20260119_140623.md) + [OPML](feeds/rss_feeds_20260119_140623.opml)
- **Latest Output:** [feeds/rss_feeds_20260119_141133.md](feeds/rss_feeds_20260119_141133.md) + [OPML](feeds/rss_feeds_20260119_141133.opml)
### Core Resources
- **`docs/canadian-subreddits.md`** - Complete list of Canadian cities/provinces

View File

@ -1,84 +1,379 @@
{
"description": "Comprehensive repair keywords and keyphrases for RSS feed generation",
"version": "1.0",
"description": "Comprehensive repair keywords extracted from motherboardrepair.ca website",
"version": "2.0",
"source": "motherboardrepair.ca sst.yml and keywords.csv",
"last_updated": "2026-01-19",
"categories": {
"iphone_repairs": {
"name": "iPhone Repair Requests",
"description": "Most common iPhone repair requests",
"devices": ["iPhone", "iPhone 12", "iPhone 13", "iPhone 14", "iPhone 15"],
"problems": ["repair", "fix", "broken", "not working", "screen broken", "won't charge", "water damage", "looking for repair"]
"description": "Most common iPhone repair requests from website",
"devices": [
"iPhone",
"iPhone 12",
"iPhone 13",
"iPhone 14",
"iPhone 15"
],
"problems": [
"iPhone logic board repair",
"iPhone motherboard repair",
"iPhone no power",
"iPhone boot loop",
"iPhone not charging",
"micro-soldering repairs",
"nanosoldering",
"iPhone screen broken",
"iPhone water damage",
"iPhone repair",
"iPhone fix",
"iPhone not working"
]
},
"macbook_repairs": {
"name": "MacBook Repair Requests",
"description": "MacBook hardware repair needs",
"devices": ["MacBook", "MacBook Pro", "MacBook Air"],
"problems": ["repair", "fix", "broken", "not working", "won't turn on", "keyboard", "screen", "water damage"]
},
"laptop_repairs": {
"name": "Laptop Repair Requests",
"description": "General laptop repair discussions",
"devices": ["laptop", "computer", "notebook"],
"problems": ["repair", "fix", "broken", "not working", "won't turn on", "screen broken", "keyboard", "charging"]
},
"phone_repairs": {
"name": "Phone Repair Requests",
"description": "General phone repair needs",
"devices": ["phone", "cell phone", "smartphone"],
"problems": ["repair", "fix", "broken", "screen", "charging", "water damage", "not working"]
},
"console_repairs": {
"name": "Gaming Console Repairs",
"description": "Console repair and maintenance",
"devices": ["PS5", "PS4", "Xbox", "Nintendo Switch", "PlayStation", "gaming console"],
"problems": ["repair", "fix", "broken", "not working", "disc drive", "HDMI"]
},
"data_recovery": {
"name": "Data Recovery Requests",
"description": "Data recovery and storage repair",
"devices": [],
"problems": ["data recovery", "hard drive", "SSD", "lost files", "recover data", "drive failed", "storage failed"]
},
"general_repairs": {
"name": "General Repair Services",
"description": "General repair service requests",
"devices": [],
"problems": ["looking for repair", "need repair", "repair shop", "repair service", "local repair", "professional repair", "fix my"]
},
"android_repairs": {
"name": "Android Device Repairs",
"description": "Android/Samsung device repair needs",
"devices": ["Samsung", "Samsung Galaxy", "Galaxy", "Android"],
"problems": ["repair", "fix", "broken", "screen", "charging", "water damage", "not working"]
"description": "MacBook hardware repair needs from website",
"devices": [
"MacBook",
"MacBook Pro",
"MacBook Air"
],
"problems": [
"MacBook logic board repair",
"MacBook motherboard repair",
"MacBook no power",
"MacBook liquid damage",
"MacBook not charging",
"MacBook screen broken",
"MacBook keyboard",
"MacBook repair",
"MacBook fix",
"MacBook not working",
"MacBook won't turn on"
]
},
"ipad_repairs": {
"name": "iPad Repair Requests",
"description": "iPad repair and maintenance",
"devices": ["iPad", "iPad Pro", "iPad Air", "iPad mini"],
"problems": ["repair", "fix", "broken", "screen", "charging", "not working", "water damage"]
"description": "iPad repair and maintenance from website",
"devices": [
"iPad",
"iPad Pro",
"iPad Air",
"iPad mini"
],
"problems": [
"iPad logic board repair",
"iPad motherboard repair",
"iPad no power",
"iPad not charging",
"iPad backlight repair",
"iPad screen broken",
"iPad repair",
"iPad fix",
"iPad not working"
]
},
"power_issues": {
"name": "Power/Charging Issues",
"description": "Devices with power or charging problems",
"devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android", "PS5", "PS4", "Xbox"],
"problems": ["won't turn on", "no power", "dead", "won't charge", "not charging", "battery dead", "charging port"]
"laptop_repairs": {
"name": "Laptop Repair Requests",
"description": "General laptop repair discussions from website",
"devices": [
"laptop",
"computer",
"notebook",
"gaming laptop"
],
"problems": [
"laptop motherboard repair",
"logic board repair",
"gaming laptop repair",
"no power laptop",
"liquid damage repair",
"charging port repair",
"laptop repair",
"laptop fix",
"laptop not working",
"laptop screen broken",
"laptop keyboard",
"laptop won't turn on"
]
},
"android_repairs": {
"name": "Android Device Repairs",
"description": "Android/Samsung device repair needs from website",
"devices": [
"Samsung",
"Samsung Galaxy",
"Galaxy",
"Android",
"Google Pixel"
],
"problems": [
"Samsung logic board repair",
"Samsung motherboard repair",
"Galaxy no power",
"Samsung boot loop",
"Samsung not charging",
"Android logic board repair",
"Google Pixel repair",
"Android no power",
"Android boot loop",
"Samsung repair",
"Android repair",
"Galaxy repair"
]
},
"console_repairs": {
"name": "Gaming Console Repairs",
"description": "Console repair and maintenance from website",
"devices": [
"PS5",
"PS4",
"Xbox",
"Nintendo Switch",
"PlayStation"
],
"problems": [
"PlayStation repair",
"PS5 repair",
"PS4 repair",
"HDMI port replacement",
"PlayStation disc drive repair",
"Xbox repair",
"Nintendo Switch repair",
"Joy-Con drift fix",
"Switch screen replacement",
"gaming console fix",
"console repair",
"PlayStation",
"Xbox"
]
},
"gpu_repairs": {
"name": "GPU/Graphics Card Repairs",
"description": "Graphics card and GPU repair needs from website",
"devices": [
"GPU",
"graphics card",
"NVIDIA",
"RTX",
"GTX"
],
"problems": [
"GPU repair",
"graphics card repair",
"NVIDIA repair",
"RTX repair",
"GTX repair",
"GPU refurbishing",
"expert nvidia",
"nvidia gpu"
]
},
"data_recovery": {
"name": "Data Recovery Requests",
"description": "Data recovery and storage repair from website",
"devices": [],
"problems": [
"data recovery",
"phone data recovery",
"SSD recovery",
"hard drive data recovery",
"NVMe recovery",
"mechanical failure recovery",
"firmware recovery",
"chip-off",
"JTAG",
"nanosoldering",
"data extraction",
"non-functional devices",
"recover data",
"lost files",
"hard drive recovery"
]
},
"general_repairs": {
"name": "General Repair Services",
"description": "General repair service requests from website",
"devices": [],
"problems": [
"electronics repair services",
"console repair",
"MacBook repair",
"data recovery",
"microsoldering",
"nanosoldering",
"laptop repair",
"iPhone repair",
"motherboard repair",
"repair service",
"professional repair",
"looking for repair",
"need repair",
"repair shop",
"local repair"
]
},
"screen_damage": {
"name": "Screen/Display Damage",
"description": "Broken or damaged screens/displays",
"devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android"],
"problems": ["screen broken", "cracked screen", "display damaged", "screen replacement", "touch screen not working"]
"description": "Broken or damaged screens/displays from website",
"devices": [
"iPhone",
"iPad",
"MacBook",
"laptop",
"computer",
"Samsung",
"Android"
],
"problems": [
"screen broken",
"cracked screen",
"display damaged",
"screen replacement",
"touch screen not working",
"screen refurbishment",
"LCD glass replacement",
"screen glass repair",
"damaged glass"
]
},
"power_issues": {
"name": "Power/Charging Issues",
"description": "Devices with power or charging problems from website",
"devices": [
"iPhone",
"iPad",
"MacBook",
"laptop",
"computer",
"Samsung",
"Android",
"PS5",
"PS4",
"Xbox"
],
"problems": [
"won't turn on",
"no power",
"dead",
"not starting",
"bricked",
"won't boot",
"boot failure",
"power button",
"won't charge",
"not charging",
"charging port broken",
"battery dead"
]
},
"water_liquid_damage": {
"name": "Water/Liquid Damage",
"description": "Devices damaged by water or liquid",
"devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android"],
"problems": ["water damage", "spilled", "liquid damage", "got wet", "water damaged"]
"description": "Devices damaged by water or liquid from website",
"devices": [
"iPhone",
"iPad",
"MacBook",
"laptop",
"computer",
"Samsung",
"Android"
],
"problems": [
"water damage",
"spilled",
"liquid damage",
"got wet",
"water damaged",
"liquid spilled",
"motherboard repair"
]
},
"hdmi_issues": {
"name": "HDMI Port Issues",
"description": "HDMI port repair and replacement from website",
"devices": [
"PS5",
"Xbox",
"graphics card",
"laptop",
"computer"
],
"problems": [
"HDMI port repair",
"PS5 HDMI replacement",
"Xbox HDMI port fix",
"graphics card HDMI repair",
"laptop HDMI port",
"HDMI not working"
]
},
"key_fob_repairs": {
"name": "Key Fob Repairs",
"description": "Car key fob repair and maintenance from website",
"devices": [],
"problems": [
"key fob repair",
"car key remote repair",
"key fob microsoldering",
"key fob battery contacts",
"button pad repair",
"fob repairs"
]
}
},
"additional_keywords": {
"urgency_indicators": ["emergency", "urgent", "help needed", "asap", "quick", "fast"],
"location_indicators": ["local", "near me", "in my area", "downtown", "nearby"],
"service_types": ["diagnostics", "diagnostic", "troubleshooting", "microsolder", "component repair", "board repair"]
}
"urgency_indicators": [
"emergency",
"urgent",
"help needed",
"asap",
"quick",
"fast"
],
"location_indicators": [
"local",
"near me",
"in my area",
"downtown",
"nearby"
],
"service_types": [
"diagnostics",
"diagnostic",
"troubleshooting",
"microsolder",
"component repair",
"board repair"
]
},
"raw_csv_keywords": [
"motherboard repair",
"MRC",
"microsoldering",
"nanosoldering",
"console repair",
"logic board repair",
"MacBook repair",
"iPhone repair",
"iPad repair",
"laptop repair",
"data recovery",
"graphics card repair",
"GPU repair",
"electronics repair",
"professional repair",
"microsoldering services",
"nanosoldering services",
"Nintendo Switch repair",
"PlayStation repair",
"Xbox repair",
"SSD recovery",
"HDMI port repair",
"hard drive recovery",
"repair service",
"professional microsoldering",
"professional nanosoldering",
"gaming laptop repair",
"phone data recovery"
]
}

227
extract_website_keywords.py Normal file
View File

@ -0,0 +1,227 @@
#!/usr/bin/env python3
"""
Extract and consolidate keywords from motherboardrepair.ca website
This script reads the sst.yml and keywords.csv files from the motherboard repair
website and extracts all unique repair-related keywords for our RSS feed generator.
"""
import yaml
import csv
import json
from pathlib import Path
def extract_keywords_from_sst():
"""Extract keywords from sst.yml file"""
sst_path = Path("../motherboardrepair.ca/sst.yml")
with open(sst_path, 'r', encoding='utf-8') as f:
data = yaml.safe_load(f)
keywords = set()
# Extract global keywords
if 'global' in data and 'keywords' in data['global']:
global_keywords = data['global']['keywords']
for category in ['primary', 'secondary']:
if category in global_keywords:
keywords.update(global_keywords[category])
# Extract page-specific keywords
if 'pages' in data:
for page, config in data['pages'].items():
if 'keywords' in config:
page_keywords = config['keywords']
for category in ['primary', 'secondary']:
if category in page_keywords:
# Handle both string and list formats
kw_list = page_keywords[category]
if isinstance(kw_list, str):
keywords.add(kw_list)
elif isinstance(kw_list, list):
keywords.update(kw_list)
return keywords
def extract_keywords_from_csv():
"""Extract keywords from keywords.csv file"""
csv_path = Path("../motherboardrepair.ca/keywords.csv")
keywords = set()
with open(csv_path, 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
keywords.update(row)
return keywords
def categorize_keywords(keywords):
"""Categorize keywords into logical groups for RSS feeds"""
categories = {
"iphone_repairs": {
"name": "iPhone Repair Requests",
"description": "Most common iPhone repair requests",
"devices": ["iPhone", "iPhone 12", "iPhone 13", "iPhone 14", "iPhone 15"],
"problems": []
},
"macbook_repairs": {
"name": "MacBook Repair Requests",
"description": "MacBook hardware repair needs",
"devices": ["MacBook", "MacBook Pro", "MacBook Air"],
"problems": []
},
"ipad_repairs": {
"name": "iPad Repair Requests",
"description": "iPad repair and maintenance",
"devices": ["iPad", "iPad Pro", "iPad Air", "iPad mini"],
"problems": []
},
"laptop_repairs": {
"name": "Laptop Repair Requests",
"description": "General laptop repair discussions",
"devices": ["laptop", "computer", "notebook"],
"problems": []
},
"android_repairs": {
"name": "Android Device Repairs",
"description": "Android/Samsung device repair needs",
"devices": ["Samsung", "Samsung Galaxy", "Galaxy", "Android"],
"problems": []
},
"console_repairs": {
"name": "Gaming Console Repairs",
"description": "Console repair and maintenance",
"devices": ["PS5", "PS4", "Xbox", "Nintendo Switch", "PlayStation"],
"problems": []
},
"gpu_repairs": {
"name": "GPU/Graphics Card Repairs",
"description": "Graphics card and GPU repair needs",
"devices": ["GPU", "graphics card", "RTX", "GTX", "NVIDIA"],
"problems": []
},
"data_recovery": {
"name": "Data Recovery Requests",
"description": "Data recovery and storage repair",
"devices": [],
"problems": []
},
"general_repairs": {
"name": "General Repair Services",
"description": "General repair service requests",
"devices": [],
"problems": []
}
}
# Keywords that indicate problems/symptoms
problem_indicators = [
"repair", "fix", "broken", "not working", "dead", "no power",
"won't turn on", "won't boot", "crashed", "frozen", "slow",
"won't charge", "charging port", "screen broken", "cracked screen",
"water damage", "liquid damage", "spilled", "dropped",
"overheating", "loud fan", "not starting", "blue screen",
"kernel panic", "boot loop", "black screen", "no display",
"won't connect", "connection issues", "WiFi problems",
"speakers not working", "microphone broken", "camera not working",
"keyboard not working", "touchpad issues", "battery dead",
"hard drive failed", "SSD dead", "storage failed",
"data recovery", "lost files", "recover data",
"looking for repair", "need repair", "repair shop", "repair service",
"professional repair", "local repair"
]
# Device-specific keywords mapping
device_mappings = {
"iphone_repairs": ["iphone"],
"macbook_repairs": ["macbook"],
"ipad_repairs": ["ipad"],
"laptop_repairs": ["laptop", "computer", "notebook"],
"android_repairs": ["samsung", "galaxy", "android"],
"console_repairs": ["ps5", "ps4", "xbox", "nintendo switch", "playstation"],
"gpu_repairs": ["gpu", "graphics card", "nvidia", "rtx", "gtx"],
}
# Categorize each keyword
for keyword in keywords:
keyword_lower = keyword.lower().strip()
# Check if it's a device keyword
categorized = False
for category, device_terms in device_mappings.items():
if any(device in keyword_lower for device in device_terms):
categories[category]["problems"].append(keyword)
categorized = True
break
# Check if it's a problem keyword
if not categorized:
for category_name, category_data in categories.items():
if category_name in ["data_recovery", "general_repairs"]:
if any(problem in keyword_lower for problem in problem_indicators):
categories[category_name]["problems"].append(keyword)
categorized = True
break
# If not categorized, add to general repairs
if not categorized and any(problem in keyword_lower for problem in problem_indicators):
categories["general_repairs"]["problems"].append(keyword)
# Remove duplicates and sort
for category_data in categories.values():
category_data["problems"] = sorted(list(set(category_data["problems"])))
return categories
def create_updated_keywords_file(categories):
"""Create the updated repair_keywords.json file"""
# Create the structure expected by our RSS generator
keywords_data = {
"description": "Comprehensive repair keywords extracted from motherboardrepair.ca website",
"version": "2.0",
"source": "motherboardrepair.ca sst.yml and keywords.csv",
"last_updated": "2026-01-19",
"categories": categories,
"additional_keywords": {
"urgency_indicators": ["emergency", "urgent", "help needed", "asap", "quick", "fast"],
"location_indicators": ["local", "near me", "in my area", "downtown", "nearby"],
"service_types": ["diagnostics", "diagnostic", "troubleshooting", "microsolder", "component repair", "board repair"]
}
}
return keywords_data
def main():
print("🔄 Extracting keywords from motherboardrepair.ca...")
# Extract keywords from both sources
sst_keywords = extract_keywords_from_sst()
csv_keywords = extract_keywords_from_csv()
all_keywords = sst_keywords.union(csv_keywords)
print(f"✅ Found {len(all_keywords)} unique keywords")
# Categorize keywords
categories = categorize_keywords(all_keywords)
print("✅ Categorized keywords into repair types")
# Create updated keywords file
keywords_data = create_updated_keywords_file(categories)
# Save to our data directory
output_path = Path("data/repair_keywords.json")
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(keywords_data, f, indent=2, ensure_ascii=False)
print(f"✅ Updated {output_path} with website-extracted keywords")
# Summary
total_categorized = sum(len(cat["problems"]) for cat in categories.values())
print("\n📊 SUMMARY:")
print(f" - Source keywords: {len(all_keywords)}")
print(f" - Categorized keywords: {total_categorized}")
print(f" - Categories: {len(categories)}")
print(" - Ready for RSS feed generation!")
if __name__ == "__main__":
main()

View File

@ -0,0 +1,201 @@
#!/usr/bin/env python3
"""
Update repair keywords with comprehensive list from motherboardrepair.ca
This script updates our repair_keywords.json with keywords extracted from
the motherboard repair website's configuration files.
"""
import json
from pathlib import Path
def update_keywords_from_website():
"""Update keywords with comprehensive website data"""
# Keywords extracted from motherboardrepair.ca sst.yml and keywords.csv
website_keywords = {
"iphone_repairs": {
"name": "iPhone Repair Requests",
"description": "Most common iPhone repair requests from website",
"devices": ["iPhone", "iPhone 12", "iPhone 13", "iPhone 14", "iPhone 15"],
"problems": [
"iPhone logic board repair", "iPhone motherboard repair", "iPhone no power",
"iPhone boot loop", "iPhone not charging", "micro-soldering repairs",
"nanosoldering", "iPhone screen broken", "iPhone water damage",
"iPhone repair", "iPhone fix", "iPhone not working"
]
},
"macbook_repairs": {
"name": "MacBook Repair Requests",
"description": "MacBook hardware repair needs from website",
"devices": ["MacBook", "MacBook Pro", "MacBook Air"],
"problems": [
"MacBook logic board repair", "MacBook motherboard repair", "MacBook no power",
"MacBook liquid damage", "MacBook not charging", "MacBook screen broken",
"MacBook keyboard", "MacBook repair", "MacBook fix", "MacBook not working",
"MacBook won't turn on"
]
},
"ipad_repairs": {
"name": "iPad Repair Requests",
"description": "iPad repair and maintenance from website",
"devices": ["iPad", "iPad Pro", "iPad Air", "iPad mini"],
"problems": [
"iPad logic board repair", "iPad motherboard repair", "iPad no power",
"iPad not charging", "iPad backlight repair", "iPad screen broken",
"iPad repair", "iPad fix", "iPad not working"
]
},
"laptop_repairs": {
"name": "Laptop Repair Requests",
"description": "General laptop repair discussions from website",
"devices": ["laptop", "computer", "notebook", "gaming laptop"],
"problems": [
"laptop motherboard repair", "logic board repair", "gaming laptop repair",
"no power laptop", "liquid damage repair", "charging port repair",
"laptop repair", "laptop fix", "laptop not working", "laptop screen broken",
"laptop keyboard", "laptop won't turn on"
]
},
"android_repairs": {
"name": "Android Device Repairs",
"description": "Android/Samsung device repair needs from website",
"devices": ["Samsung", "Samsung Galaxy", "Galaxy", "Android", "Google Pixel"],
"problems": [
"Samsung logic board repair", "Samsung motherboard repair", "Galaxy no power",
"Samsung boot loop", "Samsung not charging", "Android logic board repair",
"Google Pixel repair", "Android no power", "Android boot loop",
"Samsung repair", "Android repair", "Galaxy repair"
]
},
"console_repairs": {
"name": "Gaming Console Repairs",
"description": "Console repair and maintenance from website",
"devices": ["PS5", "PS4", "Xbox", "Nintendo Switch", "PlayStation"],
"problems": [
"PlayStation repair", "PS5 repair", "PS4 repair", "HDMI port replacement",
"PlayStation disc drive repair", "Xbox repair", "Nintendo Switch repair",
"Joy-Con drift fix", "Switch screen replacement", "gaming console fix",
"console repair", "PlayStation", "Xbox"
]
},
"gpu_repairs": {
"name": "GPU/Graphics Card Repairs",
"description": "Graphics card and GPU repair needs from website",
"devices": ["GPU", "graphics card", "NVIDIA", "RTX", "GTX"],
"problems": [
"GPU repair", "graphics card repair", "NVIDIA repair", "RTX repair",
"GTX repair", "GPU refurbishing", "expert nvidia", "nvidia gpu"
]
},
"data_recovery": {
"name": "Data Recovery Requests",
"description": "Data recovery and storage repair from website",
"devices": [],
"problems": [
"data recovery", "phone data recovery", "SSD recovery", "hard drive data recovery",
"NVMe recovery", "mechanical failure recovery", "firmware recovery",
"chip-off", "JTAG", "nanosoldering", "data extraction",
"non-functional devices", "recover data", "lost files", "hard drive recovery"
]
},
"general_repairs": {
"name": "General Repair Services",
"description": "General repair service requests from website",
"devices": [],
"problems": [
"electronics repair services", "console repair", "MacBook repair",
"data recovery", "microsoldering", "nanosoldering", "laptop repair",
"iPhone repair", "motherboard repair", "repair service", "professional repair",
"looking for repair", "need repair", "repair shop", "local repair"
]
},
"screen_damage": {
"name": "Screen/Display Damage",
"description": "Broken or damaged screens/displays from website",
"devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android"],
"problems": [
"screen broken", "cracked screen", "display damaged", "screen replacement",
"touch screen not working", "screen refurbishment", "LCD glass replacement",
"screen glass repair", "damaged glass"
]
},
"power_issues": {
"name": "Power/Charging Issues",
"description": "Devices with power or charging problems from website",
"devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android", "PS5", "PS4", "Xbox"],
"problems": [
"won't turn on", "no power", "dead", "not starting", "bricked",
"won't boot", "boot failure", "power button", "won't charge",
"not charging", "charging port broken", "battery dead"
]
},
"water_liquid_damage": {
"name": "Water/Liquid Damage",
"description": "Devices damaged by water or liquid from website",
"devices": ["iPhone", "iPad", "MacBook", "laptop", "computer", "Samsung", "Android"],
"problems": [
"water damage", "spilled", "liquid damage", "got wet", "water damaged",
"liquid spilled", "motherboard repair"
]
},
"hdmi_issues": {
"name": "HDMI Port Issues",
"description": "HDMI port repair and replacement from website",
"devices": ["PS5", "Xbox", "graphics card", "laptop", "computer"],
"problems": [
"HDMI port repair", "PS5 HDMI replacement", "Xbox HDMI port fix",
"graphics card HDMI repair", "laptop HDMI port", "HDMI not working"
]
},
"key_fob_repairs": {
"name": "Key Fob Repairs",
"description": "Car key fob repair and maintenance from website",
"devices": [],
"problems": [
"key fob repair", "car key remote repair", "key fob microsoldering",
"key fob battery contacts", "button pad repair", "fob repairs"
]
}
}
# Additional keywords from the CSV file
csv_keywords = [
"motherboard repair", "MRC", "microsoldering", "nanosoldering", "console repair",
"logic board repair", "MacBook repair", "iPhone repair", "iPad repair", "laptop repair",
"data recovery", "graphics card repair", "GPU repair", "electronics repair",
"professional repair", "microsoldering services", "nanosoldering services",
"Nintendo Switch repair", "PlayStation repair", "Xbox repair", "SSD recovery",
"HDMI port repair", "hard drive recovery", "repair service", "professional microsoldering",
"professional nanosoldering", "gaming laptop repair", "phone data recovery"
]
# Create the updated keywords structure
keywords_data = {
"description": "Comprehensive repair keywords extracted from motherboardrepair.ca website",
"version": "2.0",
"source": "motherboardrepair.ca sst.yml and keywords.csv",
"last_updated": "2026-01-19",
"categories": website_keywords,
"additional_keywords": {
"urgency_indicators": ["emergency", "urgent", "help needed", "asap", "quick", "fast"],
"location_indicators": ["local", "near me", "in my area", "downtown", "nearby"],
"service_types": ["diagnostics", "diagnostic", "troubleshooting", "microsolder", "component repair", "board repair"]
},
"raw_csv_keywords": csv_keywords
}
# Save to our data directory
output_path = Path("data/repair_keywords.json")
with open(output_path, 'w', encoding='utf-8') as f:
json.dump(keywords_data, f, indent=2, ensure_ascii=False)
print("✅ Updated repair_keywords.json with comprehensive website keywords")
print(f"📊 Categories: {len(website_keywords)}")
print(f"📝 Total keywords: {sum(len(cat.get('problems', [])) for cat in website_keywords.values()) + len(csv_keywords)}")
def main():
update_keywords_from_website()
if __name__ == "__main__":
main()