AgentSkillsCN

location-enrichment

从网络来源研究并丰富零售位置数据。在填充购物中心、零售园区或奥特莱斯中心的缺失数据库字段时使用。触发词包括:“丰富位置”、“研究位置”、“填充位置数据”、“查找位置信息”、“完成位置字段”。 警告:除非绝对必要,否则不要使用 browser_subagent。

SKILL.md
--- frontmatter
name: location-enrichment
description: |
  Research and enrich retail location data from web sources. Use when populating missing database fields for shopping centres, retail parks, or outlet centres. Triggers on "enrich location", "research location", "populate location data", "find location info", "complete location fields".
  WARNING: Do not use browser_subagent unless absolutely necessary.

Location Enrichment

Purpose: Systematically research locations to populate missing database fields.

Tool Usage Strategy (CRITICAL):

  1. Tier 1: search_web - ALWAYS try this first for facts (years, reviews, owners).
  2. Tier 2: read_url_content - Use when you have a specific URL (website, wiki).
  3. Tier 3: browser_subagent - AVOID. Only use as absolute last resort if 403/404 errors block other methods. It is too slow for this workflow.
  4. FAILURE MODE: IF search_web fails (500/API Error), DO NOT STOP. Skip to the next phase (e.g., Demographics) or use best estimates. Label the update as "Partial Enrichment".

Quick Start

  1. Audit first - Run audit_location.py to see missing fields
  2. Research by priority - Core → Operational → Commercial → Digital → Demographic
  3. Generate script - Use generate_enrichment.py to create update file
  4. Execute - Run the generated enrichment script

Field Priority Matrix

PriorityCategoryKey Fields
P0 - CoreContactwebsite, phone, openingHours
P1 - OperationalOperationsparkingSpaces, retailSpace, numberOfStores, anchorTenants
P2 - CommercialOwnershipowner, management, openedYear, footfall
P3 - DigitalSocial/Reviewsinstagram, facebook, googleRating, googleReviews
P4 - DemographicCensuspopulation, medianAge, avgHouseholdIncome

Research Workflow

Step 1: Find Official Website

code
Search: "[location name] official website"
Search: "[location name] shopping centre"
Extract: URL → `website` field

Step 2: Contact & Hours

code
Source: Official website contact/visitor page
Source: Google Maps listing
Extract: phone, openingHours JSON

Step 3: Operations Data

code
Source: Official website parking/facilities page
Source: Store directory (count stores)
Extract: parkingSpaces, numberOfStores, carParkPrice, evCharging

Step 4: Ownership Research

code
Search: "[location name] owner"
Search: "[location name] acquired"
Source: PropertyData, CoStar, company announcements
Extract: owner, management, openedYear

Step 5: Social Media Discovery

code
Search: "[location name]" site:instagram.com
Search: "[location name]" site:facebook.com
Verify: Check it's official (verified badge, consistent branding)
Extract: instagram, facebook, twitter, tiktok, youtube

Step 6: Reviews

code
Source: Google Maps - search location name
Source: Facebook page reviews tab
Extract: googleRating (X.X), googleReviews (count), facebookRating, facebookReviews

Step 7: Demographics

code
1. Identify LTLA district for location's city
2. Search ONS Census 2021 data for that LTLA
3. Extract: population, medianAge, familiesPercent, seniorsPercent
4. Calculate vs national averages

Data Formats

Opening Hours (JSON)

json
{"Mon-Sat": "09:00-18:00", "Sun": "11:00-17:00"}

Or as string: "Mon-Sat 09:00-18:00, Sun 11:00-17:00"

SEO Keywords (JSON Array)

json
[
  {"keyword": "location name", "position": 1, "volume": 2900},
  {"keyword": "shops in city", "position": 3, "volume": 1200}
]

Top Pages (JSON Array)

json
[
  {"url": "/stores", "traffic": 8500, "percentage": 28},
  {"url": "/parking", "traffic": 4800, "percentage": 16}
]

Scripts

ScriptUsage
audit_location.pypython scripts/audit_location.py "Location Name"
generate_enrichment.pypython scripts/generate_enrichment.py <location-id>
validate_data.pypython scripts/validate_data.py <json-file>

Common Data Sources

Data TypePrimary SourceBackup Source
Website/ContactOfficial siteGoogle Maps
ParkingOfficial siteParkopedia
OwnershipCompany sitePropertyData
EV ChargingOfficial siteZap-Map, PlugShare
FootfallPress releasesOwner annual report
DemographicsONS Census 2021NOMIS
SocialPlatform searchGoogle search

Verification Checklist

Before submitting enrichment:

  • Phone number in UK format (+44 or 0XXXX)
  • Website URL is valid and accessible
  • Rating is decimal (e.g., 4.3, not 43)
  • Footfall is annual (not weekly/monthly)
  • Demographics match LTLA district
  • Social URLs are official accounts

Reference Files

For detailed guidance: