本地竞争格局

建立跨匹配地理区域的本地企业、类别、属性、营业时间和评价主题的可追溯对比。

crawlora-org
2026年10月16日
0 收藏
331 下载

安装与下载

1 ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install local-competitive-landscape

2 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/
工作区 {'/skills/'}

优先级:工作区 › 全局 › 内置

3 提示词安装

将此提示词复制到 Openclaw 即可自动安装。

请帮我使用 Clawhub 安装 skill-local-competitive-landscape。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

更倾向于下载?

获取包含原生技能文件的ZIP压缩包。

下载技能 (.zip)

基本信息

名称 本地竞争格局
Slug local-competitive-landscape
创建者 crawlora-org
创建时间 2026-10-16 05:44:40
更新时间 2026-10-16 05:44:40
收藏数 0
使用量 331
浏览量 4

安装指南

  1. ClawHub CLI 从源直接安装技能的最快方式。
    npx clawhub@latest install local-competitive-landscape
  2. 手动安装 将技能文件夹复制到以下位置之一
    全局模式
    ~/.openclaw/skills/
    工作区
    /skills/
    优先级:工作区 > 本地 > 内置
  3. 提示词安装 将此提示词复制到 OpenClaw 即可自动安装。
    请帮我使用 Clawhub 安装 local-competitive-landscape。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
    更倾向于下载?
    获取包含原生技能文件的ZIP压缩包。
    下载技能 (.zip)

什么是

本地竞争格局(Local Competitive Landscape)利用 Crawlora 的 Google Maps 数据集以及实时的 Google Maps、Apple Maps 和 Yelp,创建同类群组的企业格局对比。它将数据源覆盖范围、区域边界、企业记录、提供商标识符、属性、评分、评价样本以及检索元数据组织为可追溯的分析。
此 Openclaw Skills 工作流专为观察到的竞争对手覆盖范围、类别组合和服务对比而设计——并非用于潜在客户开发、需求预测、收入估计、市场份额声明或选址决策。它明确将未知数据、提供商分歧、搜索遗漏和有界样本与经过验证的发现区分开来。

应用场景

对比匹配的街区、城市、半径或多边形内的竞争对手数量和类别组合。
审计 Crawlora 索引的 Google Maps 数据集、实时 Google Maps、Apple Maps 和 Yelp 中的本地企业覆盖范围。
识别营业时间、服务、便利设施、企业属性和运营状态中观察到的差异。
构建特定于数据源的竞争对手矩阵,同时保留提供商 ID、URL 和冲突记录。
按平台和检索日期检查可见评价主题的小型、公开样本。
区分有界搜索样本中观察到的差距与由完整合资格企业覆盖支持的已证实服务差距。
生成基于证据的本地市场地图,而不将目录数量转化为需求、销售额、收入或人口估计。

工作原理

使用行政边界、半径加中心坐标或显式多边形定义每个可比区域。
记录商业概念、纳入规则、歇业处理、数据源组合、过滤器、检索日期、分页或限制预算,以及收集是穷举的还是有界的。
通过类别切片(category facets)端点发现准确的 Crawlora 数据集类别值,并原样重复使用返回的值。
查询 Google Maps 企业数据集以建立有界的索引语料库基线,保留总数、分页、过滤器、时间戳和穷举状态。
为每个区域运行相同的实时 Google 搜索,然后对照定义的边界对坐标或地址进行后过滤。
使用匹配的措辞、区域、语言、视口跨度和限制查询 Apple Maps;记录重定位并丢弃目标边界之外的结果。
使用相同的术语和位置惯例查询 Yelp,分页至声明的限制为止。
按提供商 ID 在每个数据源内去重,然后使用名称、地址、坐标、电话或域证据协调跨提供商记录。
保留未知坐标、空状态、数据源分歧、连锁分支以及独立的数据集和实时提供商标识符。
生成覆盖范围总账、企业矩阵和区域对比,显示去重后的观察计数、类别组合、属性、未知数和遗漏风险。
仅在同一平台内对比评分,保留样本大小,并将评价主题视为带日期的可见样本中的发现,而非总体层面的证据。
除非有明确的定义、完整的合资格覆盖范围和经过验证的属性支持已证实的务差距,否则将结论标记为观察到的差距。

配置指南

获取 Crawlora API 密钥并将其保留在环境中,而不是硬编码。
从技能目录运行自带的 scripts/crawlora.sh 或使用其绝对路径。包装器将 x-api-key 发送到 Crawlora 的 v1 API。
查看 reference/endpoints.md 了解端点参数和响应行为。
检查 HTTP 状态和应用程序响应码。在 401 或 403 时停止,在 429 时退避,并重试一次短暂的 5xx 响应。将失败的请求视为不可用的证据,而不是空白区域。
保持 Google Maps 调用间隔至少一秒。
export CRAWLORA_API_KEY="your_crawlora_api_key"
scripts/crawlora.sh /datasets/google-map-businesses/facets \
facet=category q=coffee permanently_closed=false

Replace CATEGORY with an exact .data.items[].value returned above.

scripts/crawlora.sh /datasets/google-map-businesses/search \
category="$CATEGORY" lat=42.3736 lon=-71.1097 radius_m=2000 \
permanently_closed=false sort=distance_asc page=1 page_size=100
scripts/crawlora.sh -X POST /google/map/search \
'{"keyword":"coffee shop Cambridge Massachusetts","language":"en","country":"us"}'
每个对比区域使用相同的类别、地理类型、日期、状态过滤器、分页规则和数据源组合。切勿将以米为单位的 Google 半径等同于以纬度和经度度数为单位的 Apple 视口跨度。

数据架构

工作流生成三个关联的分析输出:
输出 核心字段 用途
覆盖范围总账 区域、数据源、查询或类别、几何图形、过滤器、页或限制范围、检索到计数、区域内计数、未知位置计数、重定位状态、有界或穷举状态、失败状态、检索时间 记录每个提供商和区域实际覆盖的内容
企业矩阵 区域成员身份、规范分支、提供商 ID、数据源名称、类别、地址、坐标、状态、营业时间、属性、评分、评价数量、源 URL、检索时间、匹配置信度 保留经协调的企业级证据
对比 去重后的观察计数、类别组合、属性组合、未知数、分歧和数据源限制 支持匹配区域的解释,不包含不受支持的市场声明
重要数据规则:
显式存储区域几何图形和边界类型:行政边界、带中心的半径或多边形。
协调后保留特定于数据源的 ID、类别、名称、URL、属性、时间戳和分歧。
将 Crawlora 数据集更新或爬取时间戳与请求检索时间戳分开。
除非建立标识符兼容性,否则使用原始数据集的 place_id 进行存储项目查找,并通过名称和地址解析实时 Google 记录。
保持确认的歇业与空状态不同;permanently_closed=false 不证明企业正在营业。
将未知坐标和未知状态存储在显式的未知桶中。
将空评分和空评价数量视为空白,而不是数字零。
按平台分开评分标度,切勿混合 Google、Apple 和 Yelp 的平均值。
记录包含数据源、日期、可见样本大小和被评价企业集的评价主题计数。
当提供商几何图形不同(包括 Apple 的视口行为和 Yelp 的搜索区域)时,维护单独的覆盖行。
将企业分配给包含其边界的每个区域,但不将重叠区域计数相加作为唯一总数。

高级特性

跨 Crawlora 的 Google Maps 数据集、实时 Google Maps、Apple Maps 和 Yelp 的多源协调。
具有相同类别、过滤器、日期、查询措辞和收集预算的匹配区域协议。
特定于提供商的几何图形处理,包括半径过滤、多边形或行政边界、Apple 视口跨度和重定位结果检测。
区分返回的、区域内的、未知位置的、有界的、穷举的、失败的和重定位结果的覆盖范围核算。
将经证实的务差距与存在搜索遗漏风险的观察样本差距隔离开来的保守证据标签。
跨提供商去重,具有分支级链处理、规范记录、匹配置信度和保留的数据源分歧。
通过 Google place、Google review 和 Yelp business 端点对模糊或具代表性的行进行有针对性的详细刷新。
保留平台和检索日期上下文的小型、公开评价主题采样。
针对身份验证失败、速率限制、瞬态服务器错误和请求间距的 API 弹性控制。
支持可重复、可审计的本地竞争研究的 Openclaw Skills 兼容文档结构,无需不受支持的需求或收入建模。


name: local-competitive-landscape description: Compare observed local business supply, categories, attributes, hours, and review-sample themes across defined areas using Crawlora's Google Maps dataset, live Google Maps, Apple Maps, and Yelp. Use for matched-area competitor landscapes and coverage comparisons, not lead generation, demand forecasts, sales estimates, or site-viability claims.

Local competitive landscape

Compare like-for-like observations of businesses across defined areas. Produce a traceable market map without turning search-result coverage into a population, demand, revenue, or site-selection estimate.

Setup and API contract

Set CRAWLORA_API_KEY to your key from crawlora.net. Run the bundled scripts/crawlora.sh from this skill directory or by absolute path. It sends x-api-key to https://api.crawlora.net/api/v1; keep the key in the environment. Read reference/endpoints.md for exact parameters and response behavior. Check the application code as well as HTTP status. Stop on 401/403, back off on 429, and retry a transient 5xx once. A failed request is unavailable evidence, not an empty area. Keep Google Maps calls at least one second apart.

Define a comparable frame

Record each named area and its operational boundary: administrative name, radius with center coordinates, or explicit polygon supplied by the user. Record the business concept, inclusion rules, closure treatment, sources, filters, retrieval date, page/limit budget, and whether all available pages or only a bounded sample will be collected.
Use identical category, geography type, status filters, dates, pagination, and source mix across areas. Do not treat a Google radius in meters as equivalent to an Apple viewport span in latitude/longitude degrees. Keep a separate coverage row for every source and area when geometry differs.
Discover exact dataset category values with /datasets/google-map-businesses/facets?facet=category; pass returned values unchanged. A text query can return businesses whose primary category differs, so preserve every source's returned category and apply the stated inclusion rule locally.
scripts/crawlora.sh /datasets/google-map-businesses/facets \
facet=category q=coffee permanently_closed=false

# Set CATEGORY to one exact `.data.items[].value` returned above.

scripts/crawlora.sh /datasets/google-map-businesses/search \
category="$CATEGORY" lat=42.3736 lon=-71.1097 radius_m=2000 \
permanently_closed=false sort=distance_asc page=1 page_size=100
scripts/crawlora.sh -X POST /google/map/search \
'{"keyword":"coffee shop Cambridge Massachusetts","language":"en","country":"us"}'

Collect and reconcile coverage

Use /datasets/google-map-businesses/search for a bounded indexed-corpus baseline. Capture total, page, page size, filters, and whether the result window was exhausted. Dataset totals describe Crawlora's indexed corpus, not the business population. A zero or short result cannot prove local absence. Preserve each record's dataset update/crawl timestamp separately from request retrieval time; matched request dates do not make stored records equally fresh. Use /datasets/google-map-businesses/items/{place_id} only when a stored row needs its full record.
Run the same live Google query wording for every area. Post-filter returned coordinates or addresses against the defined boundary. Search ranking and a bounded result list can omit relevant businesses, so retain both returned and in-area counts. Refresh selected ambiguous or representative rows with /google/map/place/{place_id}.
Run Apple searches with the same query, regional catalog, language, span, and limit. Record Apple's returned region and relocated; discard results outside the intended boundary. A relocated search is evidence about Apple's fallback, not about the target area. Apple has no pagination, so a full returned viewport is still a bounded result set.
Run Yelp with the same term and location convention, paging only to the stated bound. Refresh selected rows with /yelp/business/{id}. Provider search areas and ranking differ; compare source-specific observations before merging them.
Preserve businesses with unknown coordinates or status in an unknown bucket. permanently_closed=false excludes confirmed closures but can retain dataset rows with null status; it does not certify they are open. Radius searches omit locationless service-area businesses, so run a matched text/area check if those businesses are in scope and disclose the omission otherwise.

Deduplicate within each area and source by provider ID first. Across providers, require consistent name, address, coordinates, phone, or domain evidence. Keep chain branches separate unless the evidence identifies the same location. Retain source-specific IDs and disagreements after a merge. Do not assume a dataset place_id and live Google place_id are interchangeable when their formats or provenance differ: use the raw dataset ID for the stored-item endpoint, then resolve the business through live search using name and address before calling live Google detail unless ID compatibility has been established. Assign a business to every area whose boundary contains it, but do not sum overlapping-area counts as a unique total.

Compare the areas

Create three linked outputs:

Coverage ledger: area, source, query/category, geometry, filters, page or limit range, retrieved count, in-area count, unknown-location count, relocated status, exhausted/bounded/failed status, and retrieval time.
Business matrix: area membership, canonical branch, provider IDs, source names and categories, address/coordinates, status, hours/attributes when returned, rating, review count, source URLs, retrieval time, and match confidence.
Comparison: deduplicated observed counts and category/attribute mix within each matched frame, with unknowns and source disagreements shown beside every conclusion.

Treat rating: null and review_count: null as unknown, distinct from numeric zero. Compare ratings only within the same platform and state sample sizes; do not blend Google, Apple, and Yelp rating scales or rank areas from cross-platform averages. Use /google/map/place/{place_id}/reviews only for a small, disclosed sample of visible review themes. Report theme counts within that sample, retain source/date, and do not infer customer-population prevalence.

Missing hours or service attributes are unknown, never evidence that a service is absent. Keep returned attributes source-specific and date them; do not infer that an unlisted amenity, offering, or schedule is unavailable.

Call a finding a proven service gap only when the service definition is explicit, complete eligible-business coverage establishes the candidate set, and verified service attributes establish absence across that set. Bounded map and directory listings ordinarily support only an observed gap in the collected sample with search omission risk. State which one the evidence supports. Do not turn business counts, ratings, or review themes into demand, revenue, market share, sales potential, or site-viability claims.

小红书记录整理器

FreeCAD CADPilot