关于 healthcare-providers-extract
这款基于 Nimble 的技能可从医疗机构网站提取结构化从业者档案。它支持按网址提取,或按专科和地点发现机构,并为记录整理来源链接与置信度。
主要功能
- 01按专科和地点发现机构
- 02映射机构网站中的从业者页面
- 03提取五项核心从业者字段
- 04整理记录、去重并评分
- 05保存结果以便后续跟进
适用场景
- 01根据机构网址建立从业者名单
- 02查找指定地区和专科的机构
- 03从团队页面收集资质与联系方式
- 04导出提取的从业者记录
MCP 相关
该技能使用 Nimble 网页数据 API,并可在会话开始时选择 CLI 或 MCP 传输方式。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nimbleway/ agent-skills --skill healthcare-providers-extract安装后在 Claude Code 中输入/healthcare-providers-extract确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/memory-and-distribution.mdnimble-playbook.mdprofile-and-onboarding.mdprovider-extraction-patterns.mdwsa-reference.md详细介绍
医疗服务提供者提取
利用 Nimble 的网页数据 API,从医疗机构网站中提取结构化的执业人员信息。
用户请求:$ARGUMENTS
运行任何命令之前,请先阅读 references/nimble-playbook.md,了解 Claude Code 的限制(不保留 Shell 状态、不使用 &/wait、子 Agent 权限、沟通风格)。
说明
步骤 0:预检 + WSA 发现
遵循 references/nimble-playbook.md 中的传输方式选择和标准预检流程——在会话开始时选择 CLI 或 MCP,然后并行运行标准预检调用(日期计算、今天、配置文件、记忆索引)。
同时——运行 WSA 发现和设置:
mkdir -p ~/.nimble/memory/{reports,healthcare-providers-extract/checkpoints}ls ~/.nimble/memory/healthcare-providers-extract/checkpoints/ 2>/dev/null- 按照
references/wsa-reference.md运行第 1 层(垂直领域)和第 3 层(通用工具)的 WSA 发现。第 2 层(特定会话)在步骤 1 之后、得知用户的专业领域后运行。
将发现的 Agent 按阶段分类,并按照 references/wsa-reference.md 通过 nimble extract:templates get 验证。
根据预检结果:
- CLI 缺失或未设置 API 密钥 -> 参考
references/profile-and-onboarding.md,然后停止 - 为所有
nimbleCLI 调用添加标签:nimble --client-source nimble-agent-skills <subcommand>。MCP 请求在传输层进行归因——参见references/nimble-playbook.md。 - 配置文件存在 -> 记录下来以供参考。根据
references/nimble-playbook.md中的智能日期窗口判断模式:- **完整模式:**首次运行,或上次运行距今已超过 14 天
- **快速刷新:**上次运行距今不足 14 天(仅重新提取新增或有变更的页面)
- **当天重复运行:**如果
last_runs.healthcare-providers-extract的日期是今天,检查~/.nimble/memory/reports/healthcare-providers-extract-*[today].md中是否已有报告。 如果找到,询问:“今天已经运行过。要再次运行以获取最新数据吗?”
- 没有配置文件 -> 没关系。此技能不需要引导设置。继续步骤 1。
步骤 1:解析输入并提出初始问题
按照 references/nimble-playbook.md 中的输入解析模式解析 $ARGUMENTS,并按以下规则路由:
- 检测到 URL -> 继续步骤 3
- 专业领域 + 地点(无 URL)-> 继续步骤 2(机构发现)
- 不明确 -> 提问(计为最多 2 次提问中的 1 次)
如果输入明确,请确认并提出一个用于确定提取范围的问题(纯文本,不使用 AskUserQuestion):
“正在从 N 个医疗机构网站提取执业人员信息。快速确认:
- 医疗领域?(眼科、牙科、皮肤科、综合或其他)
- 快速扫描(仅姓名 + 资质)还是完整提取(全部 5 个字段)?”
如果输入模糊,请使用 AskUserQuestion(计为最多 2 次提问中的 1 次):
要从哪些医疗机构网站提取执业人员信息?
- 直接粘贴 URL(每行一个)
- 提供 CSV 文件路径或包含医疗机构 URL 的 Google Sheet 链接
- 或描述你的需求(例如“德克萨斯州奥斯汀的眼科医生”),我会先查找医疗机构 并跳过用户在初始消息中已经回答的问题。
步骤 2:诊所发现(可选)
仅当用户提供的是专业领域 + 地点,而不是 URL 时执行。
发现流程的两种输入路径:
路径 A — 全新发现。 用户提供了专业领域 + 地点。运行第 2 层 WSA 发现,为本次会话查找 Agent:
nimble extract:templates list --limit 50 # filter items for "[specialty]"
nimble extract:templates list --limit 50 # filter items for "[directory-user-mentioned]"
完整的发现策略、Agent 评估标准和医疗领域发现优先级,请参阅 references/wsa-reference.md。
同时运行所有发现阶段的 Agent。先使用 nimble extract:templates get 验证参数。
路径 B — 市场查找器移交。 用户先运行了 market-finder,并希望从这些结果中提取服务提供者。读取市场查找器的输出:
cat ~/.nimble/memory/market-finder/{slug}/entities.json 2>/dev/null
提取诊所记录。注意:Google Maps 结果包含 place_url(Maps 链接),但不包含诊所的实际网站 URL。在映射网站前,继续执行步骤 2b 以解析真实的网站 URL。
完成任一路径后: 按域名去重。展示发现的诊所:
"在 [location] 的 [specialty] 领域中,通过 [M] 个数据来源找到了 N 家诊所。 正在从这些网站提取服务提供者……"
回退方案 — 如果没有找到发现用的 WSA,或结果较少(< 3):
nimble search --query "[specialty] in [location]" --max-results 20 --search-depth lite
步骤 2b:解析诊所网站 URL
发现来源(Google Maps、Yelp、BBB)返回的是列表页面 URL,而不是诊所网站 URL。在映射网站前,先解析每家诊所的实际网站:
- 先检查结构化数据 — Google Maps 结果通常会在结构化输出中包含
website字段。如果存在,则使用该字段。 - 从列表页面提取 — 如果没有
website字段,则提取 Maps 列表页面以查找诊所网站链接:nimble extract --url "[maps-listing-url]" --format markdown - 搜索回退方案 — 如果提取失败:
nimble search --query "[practice-name] [city] official website" --max-results 3 --search-depth lite
如果无法解析出网站 URL,则跳过该诊所,并在输出的“数据质量摘要”部分注明。
步骤 3:网站映射
针对每个诊所 URL,按照 references/nimble-playbook.md 中的网站映射模式执行。技能专用设置:
- 关键词权重表:
references/provider-extraction-patterns.md - 页面上限: 每个网站 15 个
- 回退查询:
site:[domain] doctors OR providers OR team
如果有 6 家或更多诊所,请使用子 Agent(参见下文的“子 Agent 策略”)。
保存检查点:~/.nimble/memory/healthcare-providers-extract/checkpoints/{slug}/mapping.json
步骤 4:页面提取
优先使用 WSA 快捷方式: 如果 WSA 发现了可从医疗目录中提取服务提供者数据的 Agent,则对匹配的诊所使用这些 Agent — 结构化的 WSA 输出质量高于解析后的 Markdown。
对于其他所有诊所,按照 references/nimble-playbook.md 中的“带重试的页面提取”模式执行。使用同一参考文档中的“扩展执行”模式进行扩展。
保存检查点:~/.nimble/memory/healthcare-providers-extract/checkpoints/{slug}/extraction.json
步骤 5:结构化解析
解析提取出的 Markdown,以识别服务提供者及其字段。阅读 references/provider-extraction-patterns.md,了解 5 个核心字段、资质正则表达式模式和专业领域关键词。
对于每个提取的页面:
- 扫描服务提供者姓名模式(Dr. 前缀、标题模式、资质后缀附近的粗体文本)
- 使用
references/provider-extraction-patterns.md中的正则表达式模式匹配资质 - 使用与检测到的医疗领域相对应的关键词匹配专业领域
- 提取联系信息(电话正则表达式、预约 URL、电子邮件)
- 提取教育和培训相关信息
构建结构化记录:
{
"name": "Dr. Jane Smith",
"credentials": "MD, FACS",
"specialty": "Retinal Surgery",
"contact": {"phone": "(555) 123-4567", "scheduling_url": "..."},
"education": "Fellowship: Bascom Palmer Eye Institute",
"source_url": "https://practice.com/our-doctors",
"practice_name": "Shore Center for Eye Care",
"practice_url": "https://practice.com",
"confidence": "High"
}
步骤 6:去重与置信度评分
按照 references/nimble-playbook.md 中的实体去重和实体置信度评分模式执行。技能专用的去重规则和 5 字段置信度标准见 references/provider-extraction-patterns.md。
步骤 7:输出
按诊所分组展示结果,并在每家诊所内按置信度排序。
# Provider Extraction: [N] Providers from [M] Practices
*[Date] | [H] High, [M] Medium, [L] Low confidence*
## TL;DR
Extracted [N] providers from [M] practice websites. [H] with complete profiles,
[L] with partial data. [Key finding: e.g., "12 of 15 providers are board-certified"].
## [Practice Name] ([domain])
| # | Name | Credentials | Specialty | Contact | Education | Confidence |
|---|------|------------|-----------|---------|-----------|------------|
| 1 | Dr. Jane Smith | MD, FACS | Retinal Surgery | (555) 123-4567 | Fellowship: Bascom Palmer | High |
| 2 | Dr. John Doe | OD | General Ophthalmology | [Book](url) | Residency: Wills Eye | Medium |
[Repeat per practice]
## Data Quality Summary
- **Complete profiles (High):** [N] providers
- **Partial profiles (Medium):** [N] providers — missing: [list common gaps]
- **Minimal profiles (Low):** [N] providers — missing: [list common gaps]
## Sources
[Clickable URL for every page extracted, grouped by practice]
必须提供来源链接。 每条服务提供者记录都必须能追溯到来源 URL。
第 8 步:保存到记忆
同时执行所有写入调用:
- 报告 ->
~/.nimble/memory/reports/healthcare-providers-extract-{slug}-{date}.md - 医疗服务提供者数据 ->
~/.nimble/memory/healthcare-providers-extract/{slug}/providers.json - 配置文件 -> 更新
~/.nimble/business-profile.json中的last_runs.healthcare-providers-extract(仅当配置文件存在时) - 按照
references/memory-and-distribution.md中的维基更新模式:更新所有受影响实体文件在index.md中的行,并为本次运行在log.md中追加一条记录。 - 清理检查点(运行已完成)或保留检查点(运行未完成)
第 9 步:分享与分发
始终提供分发选项——不可跳过。 按照
references/memory-and-distribution.md 检测连接器并执行分享流程。
Notion:创建包含完整服务提供者表格的带日期子页面。 Slack:仅发送包含服务提供者数量和置信度细分的 TL;DR。
第 10 步:后续操作
- “详细介绍一下 Dr. X” -> 显示完整提取的个人资料
- “导出为 CSV” -> 根据 providers.json 生成 CSV
- “在更多网站上运行” -> 追加新的诊所 URL,提取并合并
- “缺少什么?” -> 详细说明每位服务提供者的数据缺漏
利用发现的 WSA 进行补充: 如果第 0 步发现了补充阶段的 Agent (评价、监管、诊所详情),请提供这些选项作为即时后续操作:
“我还发现了 [N] 个可以补充这些数据的 WSA:[简要列表]。要我对这些服务提供者/诊所进行声誉检查或监管信息查询吗?”
有关补充阶段映射和回退链,请参阅 references/wsa-reference.md。
同类技能建议:
后续步骤:
- 运行
healthcare-providers-enrich以补充缺失数据(NPI 查询、委员会认证核验、其他联系信息)- 运行
healthcare-providers-verify以验证资质和执照状态- 运行
market-finder以发现此区域内更多诊所 URL
子 Agent 策略
对于批量提取(6 家以上诊所),使用 nimble-researcher Agent
(agents/nimble-researcher.md)并行处理网站映射和信息提取。
遵循 references/nimble-playbook.md 中的子 Agent 启动规则
(bypassPermissions、批次最多 4 项、明确的 Bash 指令、失败时回退)。
启动模式: 每家诊所启动一个 Agent(大型任务则每批 3 家诊所启动一个 Agent)。每个 Agent 为分配给它的诊所执行第 3 至第 5 步,并返回结构化的服务提供者记录。
单家诊所优化: 如果只有 1 至 2 家诊所,则直接在主上下文中运行,而不是启动 Agent。
回退: 如果任何 Agent 失败,则在主上下文中直接执行这些信息提取任务。切勿让输出留下缺漏。
错误处理
标准错误表(缺少 API 密钥、429、401、结果为空、提取内容无效)请参阅 references/nimble-playbook.md。此技能特有的错误:
- 未找到服务提供者页面: “在 [domain] 上找不到服务提供者/团队页面。该网站可能以其他方式列出员工。要我尝试从主页提取信息,或在医疗目录中搜索这家诊所吗?”
- 所有提取结果均无效: “这些诊所网站似乎大量使用 JavaScript 渲染。正在使用浏览器渲染重试……”(按照通用模式自动使用
--render重试) - 诊所名称不明确: 如果 URL 无效且用户提供的是名称,则搜索这家诊所:
nimble search --query "[practice name] [location] doctors" --max-results 5 --search-depth lite - CSV/Sheet 解析错误: “无法解析输入文件。需要包含诊所 URL 的列。可以直接粘贴 URL 吗?”