← 返回 Skills 市场
nostrband

Find Web Developer

作者 nostrband · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
48
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install find-web-developer
功能描述
Use whenever the user wants to find, shortlist, vet, or enrich US web development firms — building, refreshing, or rebuilding marketing sites, landing pages,...
使用说明 (SKILL.md)

find-web-developer

Drive the ServiceGraph API (https://api.servicegraph.co) to find, shortlist, and enrich US web development firms via the pro_services dataset. The catalog tags ~14k firms with service_provided:web-development under industry:it_services (web-development is the second-largest service tag in the catalog).

Always pin both industry:it_services and service_provided:web-development. Platforms (WordPress, Webflow, Shopify, Next.js, etc.) and verticals (B2B, ecommerce, agency-vs-studio) are NOT separate tags — they're keyword substring matches on firm text.

Any HTTP client works (curl, fetch, requests). Examples below use curl.

Sibling skills — defer when scope is different

  • Custom backend / API / internal tools / mobile app / distributed systemsfind-software-developer. The end-product is software beyond a standard website.
  • Broader marketing strategy and execution beyond the site build (paid media, content strategy, full digital agency engagement) → find-marketing-agency.
  • SEO-only work on an existing sitefind-seo-agency. Web devs build sites; SEO agencies optimize them. If the user wants new pages built AND optimized, this skill is fine.

If unsure, this skill is correct for "build / rebuild / refresh a website" tasks. The deferral kicks in when the deliverable is non-website software or non-build marketing work.

MCP server (preferred for authed calls)

If your harness has the ServiceGraph MCP server loaded (tools containing servicegraph), prefer those — OAuth 2.1 + PKCE keeps the token in the harness sandbox. Otherwise use the REST flow below.

API surface (dataset id: pro_services)

Every endpoint requires the bearer (Authorization: Bearer vk_…). No anonymous tier.

Endpoint Cost Use it for
GET /v1/datasets/pro_services/fields[?include_values=1] free Confirm web-development is in the service_provided value list.
GET /v1/datasets/pro_services/check?filter=… free Validate filter.
POST /v1/datasets/pro_services/translate-intent free {intent} → DSL filter + sanity count.
GET /v1/datasets/pro_services/search?filter=…&limit= free Brief firm cards + per-row unlock hint + total.
GET /v1/datasets/pro_services/:apex free One row brief; detail only if unlocked.
POST /v1/datasets/pro_services/unlocks 10 credits / firm {apexes:[...]} ≤100; atomic; 30-day TTL on detail.
GET /v1/me/credits free Balance.

Cost model. Discovery / validation / search / brief reads are free. Detail (url, phone, email, social, address, full platforms map) costs 10 credits per firm and lasts 30 days.

Auth

vk_* API keys minted in the dashboard. Keep the token out of the LLM context — never read .env* into your context; dispatch via shell.

  1. Try the call first through a shell wrapper that sources .env.local:

    ( set -a; [ -f .env.local ] && . ./.env.local; set +a;
      curl -sS -H "Authorization: Bearer $SERVICEGRAPH_API_KEY" \
           'https://api.servicegraph.co/v1/datasets/pro_services/fields' )
    
  2. On 401 prompt the user:

    "Open https://servicegraph.co/profile/api-keys, create a key, and add SERVICEGRAPH_API_KEY=vk_… to .env.local here (or export it). Tell me when done. Please don't paste the key into chat."

  3. Retry after the user signals ready.

Filter DSL

GitHub-search-style.

filter   := orExpr
orExpr   := andExpr ("OR" andExpr)*
andExpr  := notExpr (("AND")? notExpr)*    # whitespace = implicit AND
notExpr  := ("NOT" | "-") notExpr | atom
atom     := "(" filter ")" | predicate
predicate:= IDENT op valueOrList | bareword
op       := ":" | "=" | ">=" | "\x3C=" | ">" | "\x3C"
valueOrList := value ("," value)*
value    := IDENT | NUMBER | tagAtEvidence
tagAtEvidence := IDENT "@" ("low"|"medium"|"high")
bareword := IDENT | NUMBER          # → keyword:\x3Cbareword>

Four rules that bite: AND binds tighter than OR (use parens); comma list = OR within one predicate; negation is -x or NOT x; bareword = keyword search (quote multi-word phrases).

Web-dev examples (validate yours with /check):

industry:it_services service_provided:web-development
industry:it_services service_provided:web-development@high state:CA webflow
industry:it_services service_provided:web-development shopify ecommerce
industry:it_services service_provided:web-development wordpress
industry:it_services service_provided:web-development headless next.js
industry:it_services service_provided:web-development@high rating>=4 has:clutch
industry:it_services service_provided:web-development b2b

Platform / vertical / framework → keyword mapping (none are structured tags — keyword them):

User mentions Add as keyword
WordPress wordpress
Webflow webflow
Shopify / Shopify Plus shopify
Squarespace / Wix squarespace / wix
Headless / JAMstack / Next.js / Gatsby headless, next.js, gatsby
Sanity / Contentful / Strapi sanity, contentful, strapi
Ecommerce / D2C / DTC ecommerce, d2c, dtc
B2B / SaaS / fintech b2b, saas, fintech

Identifying firms — apex

Firms are identified by their apex domain (focuslabllc.com, not www.focuslabllc.com/work).

Recipes

A. Marketing landing page (the baseline)

GET /v1/datasets/pro_services/search?filter=industry:it_services+service_provided:web-development&limit=10
# Present, get pick of 3. "Unlocking 3 = 30 credits, 30-day TTL."
POST /v1/datasets/pro_services/unlocks
  { "apexes": ["firm-a.com", "firm-b.com", "firm-c.com"] }

B. Webflow agency in a state

GET /v1/datasets/pro_services/search?filter=industry:it_services+service_provided:web-development+webflow+state:CA&limit=10

C. Shopify ecommerce rebuild

GET /v1/datasets/pro_services/search?filter=industry:it_services+service_provided:web-development+shopify+ecommerce&limit=10

For Shopify Plus, add plus as an additional bareword.

D. WordPress site refresh / maintenance

GET /v1/datasets/pro_services/search?filter=industry:it_services+service_provided:web-development+wordpress&limit=10

E. Headless CMS / Next.js

GET /v1/datasets/pro_services/search?filter=industry:it_services+service_provided:web-development+headless+next.js&limit=10

If sparse, drop next.jsheadless alone captures the architectural pattern.

F. Indirect intent — "redesign and rebuild our site"

GET /v1/datasets/pro_services/search?filter=industry:it_services+service_provided:web-development&limit=10

Or use the translator:

POST /v1/datasets/pro_services/translate-intent
  { "intent": "agency to redesign and rebuild our outdated company site" }

If the user gave a constraint (location, platform, budget proxy via pricing_model), add it.

G. Quality threshold + platform

GET /v1/datasets/pro_services/search?filter=industry:it_services+service_provided:web-development@high+rating>=4+shopify+plus&limit=10

H. BYO apex list — enrich domains

User pastes 8–20 web-dev shop domains:

  1. GET /v1/datasets/pro_services/:apex per domain — free brief (404 = not in catalog, no charge). A 404 often means the firm isn't tagged with web-development specifically — it might be in the catalog under a different tag.
  2. User picks N to fully enrich. POST /unlocks = 10×N credits, atomic, detail returned.
  3. Re-runs within 30-day TTL are free.

Gotchas

  • Always pin both industry:it_services AND service_provided:web-development. Without the industry pin, web-development also appears on some marketing-agency rows; without the service pin, you'd return all IT-services firms.
  • Defer to find-software-developer for non-website software. Internal tools, custom CRMs, mobile apps (iOS/Android), backend/API, distributed systems — those are software-developer territory. The boundary: is the end-product a public website, or something else?
  • Defer to find-marketing-agency for full marketing engagements. "Build our site AND run our marketing" is broader than this skill — fire find-marketing-agency, which has web-design as a sub-service too.
  • Platforms (WordPress, Webflow, Shopify, Next.js) are NOT structured tags. Keyword them.
  • Frameworks (React, Vue, Astro, Gatsby) are NOT structured tags either. Keyword them.
  • CMS/hosting/builder product comparisons aren't procurement. "WordPress vs Webflow vs Squarespace" is a knowledge question.
  • Multi-word phrases must be split or quoted. headless cms parses as two AND'd keywords; "headless cms" is one phrase.
  • Catalog is US-only B2B. Refuse offshore asks ("Manila", "Karachi"), individual freelancers, and DIY/code-help asks ("debug this CSS").
  • Briefs DO include apex, name, location, ratings. They DON'T include url, phone_primary, email_primary, legal_name, address_full, full platforms — those require an unlock.
  • not_found / not_in_dataset 404 = not in pro_services. Skip; not charged.
  • Unlock is atomic. N apexes either all charge (up to 10×N credits) or none on 402.
  • Within-TTL re-views are free (was_cached:true).

Errors

JSON envelope: {"error": {"code": "...", "message": "..."}}.

Status Code What to do
400 filter_parse_error position included; fix and re-validate with /check.
400 kind_in_filter Strip any kind: from filter.
400 field_not_in_dataset Drop the disallowed field.
400 invalid_apex Re-normalize.
401 unauthorized / invalid_audience Re-prompt for fresh vk_….
402 insufficient_credits needed and balance; nothing charged.
404 not_found / not_in_dataset Skip; not charged.
429 rate_limited Honor Retry-After.

End-to-end example

User: "Three Webflow agencies in California for our marketing site, ideally with at least a 4-star rating and a Clutch profile."

GET /v1/datasets/pro_services/fields?include_values=1
GET /v1/datasets/pro_services/check?filter=industry:it_services+service_provided:web-development@high+webflow+state:CA+rating>=4+has:clutch
GET /v1/datasets/pro_services/search?filter=...&limit=10
# Present briefs. "Unlocking 3 = 30 credits, 30-day TTL."
POST /v1/datasets/pro_services/unlocks
  { "apexes": ["firm-a.com", "firm-b.com", "firm-c.com"] }
GET /v1/me/credits
安全使用建议
Before installing, make sure you are comfortable using a ServiceGraph API key and spending ServiceGraph credits for detail unlocks. Keep the key in an environment file or shell export, do not paste it into chat, and approve unlocks only after reviewing the listed firms and credit cost.
能力标签
requires-oauth-tokenrequires-sensitive-credentials
能力评估
Purpose & Capability
The stated purpose, filters, API endpoints, and examples all align around finding, shortlisting, and enriching US web development firms.
Instruction Scope
The instructions repeatedly constrain use to web-development procurement, pin required dataset filters, and defer or refuse adjacent out-of-scope requests.
Install Mechanism
The artifact is a single non-executable SKILL.md with no scripts, dependencies, package install steps, or hidden runtime components.
Credentials
It requires network calls to api.servicegraph.co and a ServiceGraph bearer token, which is expected for the API-backed purpose; the skill explicitly tells users not to paste the key into chat or expose .env contents to the LLM.
Persistence & Privilege
No local persistence, privilege escalation, or background execution is present; the only persistence described is the external ServiceGraph 30-day detail-unlock TTL after a user-approved credit-spending action.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install find-web-developer
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /find-web-developer 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
- Initial release of the "find-web-developer" skill for discovering and shortlisting US-based web development firms. - Supports filtering firms by platform (e.g., Webflow, WordPress, Shopify), location, vertical, and other website-related needs. - Automatically defers to dedicated skills for custom software, broader marketing, or SEO-only work. - Integrates with the ServiceGraph API, leveraging a large catalog of US web development firms. - Provides example API usage patterns, authentication instructions, and filter guidelines for various web project scenarios.
元数据
Slug find-web-developer
版本 1.0.0
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 1
常见问题

Find Web Developer 是什么?

Use whenever the user wants to find, shortlist, vet, or enrich US web development firms — building, refreshing, or rebuilding marketing sites, landing pages,... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 48 次。

如何安装 Find Web Developer?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install find-web-developer」即可一键安装,无需额外配置。

Find Web Developer 是免费的吗?

是的,Find Web Developer 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Find Web Developer 支持哪些平台?

Find Web Developer 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Find Web Developer?

由 nostrband(@nostrband)开发并维护,当前版本 v1.0.0。

💬 留言讨论