creator-search — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited creator-search (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
三平台(TikTok、YouTube、Instagram)达人实时搜索。支持直接提交一句自然语言描述,也支持关键词、国家、粉丝数、互动率、行业等精确结构化筛选,结果即时返回。
| 脚本 | 相对路径 | 状态 |
|---|---|---|
| search_creators_nl.mjs | ../../scripts/search_creators_nl.mjs | ✅ 可用 |
| search_creators.mjs | ../../scripts/search_creators.mjs | ✅ 可用 |
| find_brand_collaboration_creators.mjs | ../../scripts/find_brand_collaboration_creators.mjs | ✅ 可用 |
| submit_brand_realtime_mentions.mjs | ../../scripts/submit_brand_realtime_mentions.mjs | ✅ 可用 |
自然语言搜索调用格式:
node {baseDir}/scripts/search_creators_nl.mjs '{"platform":"instagram","query":"找欧美5万粉以上的跑步和马拉松训练达人,内容专业、真实,适合推广跑鞋","limit":20}'结构化搜索调用格式:
node {baseDir}/scripts/search_creators.mjs '{"platform":"tiktok","country_code":"US","gender":"0","followers_cnt_gte":100000,"service_level":"S2"}'当用户要找“某个竞品/品牌合作过的达人”“Fenty Beauty 合作达人”“某品牌种草达人”时,优先使用这里的品牌发现链路,不要先走公开网页搜索。
离线合作达人查询:
node {baseDir}/scripts/find_brand_collaboration_creators.mjs '{"brand_name":"Fenty Beauty","platforms":["tiktok","instagram"],"limit":20}'items[].creator 是合作达人,items[].brand_account 是匹配到的品牌账号,items[].evidence_videos 是合作证据视频。collaboration_count > 0 是合作达人命中依据;evidence_videos 只是解释字段。若 evidence_available=false,仍可展示该合作达人,但需要说明当前未取到可展示的视频证据。轻量实时品牌提及采集:
node {baseDir}/scripts/submit_brand_realtime_mentions.mjs '{"platform":"tiktok","brand_name":"Fenty Beauty"}'get_task_status.mjs 查询状态,用 get_task_data.mjs 拉取结果。普通达人搜索必须先确认需求是否足够执行。最小 brief 包含:平台、目标市场/国家地区、品类/行业/关键词、需要数量。缺少平台或关键业务条件时,先澄清,再搜索。
不要用“基于规则”“参数如下”“size=min(...)”“Navos profile 自动 S3”“召回类型”等内部表达作为过程内容。内部规则只用于指导执行,不展示给用户。
每次用户请求只选择一种搜索方式,不要同时调用两个脚本:
search_creators_nl.mjs。Instagram 会使用语义向量召回;TikTok 和 YouTube 当前使用自然语言解析后的标量召回。search_creators.mjs。POST /openapi/v1/creators/nl-searchquery、platform、limit。不要传 lang、service_level、debug、route_top_k 等内部实现字段。query 必填,长度 1~1000;platform 支持 Instagram/TikTok/YouTube 及常用别名;limit 默认 20,范围 1~100。limit、实际返回数量和召回类型无关;Instagram 服务端 fallback 仍属于同一次请求,不重复计费。meta.recall_type=vector 表示 Instagram 语义向量召回;scalar_fallback 表示 Instagram 因语义不足自动使用结构化筛选;scalar 表示 TikTok/YouTube 标量召回。lang。按原始 country_code 等返回值展示,不要自行声称服务端已做中英文翻译。creator:nl_search 或 creator:* 权限;收到 40301 时提示检查 scope,不要自动退回结构化搜索或网页搜索。uid、username、nickname、avatar_url、profile_url、country_code、followers_count、avg_views、engagement_rate、match_score。avatar_url,表格必须增加独立「头像」首列,用 40px 等比例缩略图渲染;不要只展示达人名文字链。avatar_url 为空时该格留空,不要编造头像或占位图。engagement_rate 是小数比例,展示时乘以 100 并加 %,例如 0.0432 展示为 4.32%。match_score 仅用于同一次请求内比较,不要跨请求、跨平台比较,也不要解释成百分制绝对质量分。limit 时停止,不要自动发起第二次搜索;不要主动说明 meta.recall_type 等内部召回信息,除非用户明确要求排查。platform 必须转换为小写:tiktok / youtube / instagram。"0",男性/男/male → "1"。禁止传 "女性"、"男性"、"female"、"male"。3,不能传 0.03;“女性受众至少 70%”传 70。true / false,不能传 "true" / "false"、1 / 0。has_email、has_whatsapp、is_ai_creator、is_product_kol 等均属于 boolean。country_code: "US,CA"、language_code: "en,fr"。YYYY-MM-DD。lang 只控制响应码值翻译,不用于筛选达人,默认 en。筛选达人内容语言使用 language_code。last30day_gmv_gte/_lte、last30day_gpm_gte/_lte、last30day_gmv_per_buyer_gte/_lte、last30day_commission_rate_gte/_lte 等筛选参数,用于按近30天 GMV/GPM 范围筛选达人。但这些是筛选条件,响应字段表里不返回任何 GMV/GPM 数值——结果只表示"该达人符合筛选范围",不会给出具体金额。因此:keyword,说"行业选美妆"就用 industry。industry。常见映射:搞笑/funny → Comedy & Humor, 美妆/beauty → Skincare 或 Beauty, 科技/tech → Technology, 宠物/pet → Pet Supplies, 美食/food → Food & Beverage。keyword 重新搜索。应停止并告知用户"当前严格行业筛选无结果",提供 2-3 个可选放宽方向,等待用户确认后再搜索。keyword 仅用于:搜索具体用户名/昵称、精确主题词、或行业降级兜底。为避免静默查询和不可预期扣费,达人搜索必须遵守以下边界:
country_code、industry、followers_cnt_gte/_lte、last10_avg_video_interaction_rate_gte/_lte、has_email、language_code、受众字段。禁止先只传少量条件拿候选,再本地过滤大量结果。page=1。不得为了凑满用户要求的数量自动翻到 page 2、page 10 等。size=20。用户明确要求 N 条时,当前页 size=min(N,100);生产接口单页最大值为 100,禁止发送大于 100 的 size。当 N 大于 100 时,只查询第 1 页并返回最多 100 条,不得自动翻页。video-search。搜索过程和最终回复必须像业务助手,而不是接口调试日志。
按以下顺序输出:
cv_list_url,只展示短链接 [在 CreatiVault 查看完整列表]({cv_list_url}),不要原样输出长 URL。禁止:
service_level 控制返回字段与积分消耗。面向用户发起搜索前,必须让用户清楚三档含义:
本节仅适用于 search_creators.mjs 结构化搜索。search_creators_nl.mjs 不接受 service_level,也不返回 S3 受众画像。
S2。S2。S1 / S2 / S3,或本轮对话已展示过等级说明时,可直接执行,避免重复打断。| 等级 | 名称 | 积分/条 | 返回范围 |
|---|---|---|---|
| S1 | 纯名单筛选 | 1 | 基础身份、主页、联系方式存在性、最近发布时间;具体字段因平台而异 |
| S2 | 精准触达 | 3 | S1 + 国家、性别、粉丝/播放/互动、行业、邮箱等;具体字段因平台而异 |
| S3 | 深度画像 | 4 | S2 + 受众性别、国家、语言、年龄分布 |
Navos 用户:脚本会自动使用 S3(深度画像),无需手动指定。Navos 用户搜索结果可能不展示积分消耗信息(积分由 Navos 侧管控)。
服务等级不得作为静默补救手段。用户没有要求受众画像、年龄、性别、国家分布等 S3 字段时,不要为了"可能更准"而主动升高服务等级;如果当前运行 profile 自动注入更高等级,仍必须遵守上方的页数、平台和结果数量边界。
除 platform 为脚本路由参数外,其余字段会作为 JSON Body 发送到对应平台搜索接口。
| 参数 | 类型 | 说明 |
|---|---|---|
platform | string | 必填:tiktok / youtube / instagram |
union_user_ids | string[] | 可选:达人 union_user_id 批量精确查询,最多 200 条;可与 profile_urls 同传,两者取并集 |
profile_urls | string[] | 可选:达人主页链接批量精确查询,最多 200 条;可与其他筛选条件叠加 |
keyword | string | 搜索关键词 |
country_code | string | 国家代码,多选逗号分隔 |
gender | string | "0"=女性,"1"=男性 |
has_email | boolean | 是否有邮箱 |
language_code | string | 达人内容语言代码,多选逗号分隔 |
followers_cnt_gte / followers_cnt_lte | integer | 粉丝数/订阅数范围 |
industry | string | 行业类目;脚本支持类目 ID、中文/英文名称和常用别名 |
audience_country_code_list | string | 受众国家代码,多选逗号分隔 |
audience_age_list | string | 受众年龄,多选逗号分隔 |
audience_female_rate_gte / audience_female_rate_lte | number | 受众女性比例,传 0~100 百分比数值 |
page | integer | 页码,默认 1 |
size | integer | 每页数量,默认 50;普通 Open API 调用最大 100 |
sort_field | string | 排序字段,必须使用目标平台支持的字段 |
sort_order | string | asc / desc,默认 desc |
service_level | string | S1 / S2 / S3,默认 S2 |
lang | string | 响应显示语言:cn / en,默认 en,不参与筛选 |
| 参数 | 类型 | 说明 |
|---|---|---|
has_mcn / has_line / has_zalo | boolean | 是否绑定 MCN / 有 Line / 有 Zalo |
last10_avg_video_views_cnt_gte / _lte | number | 近 10 条视频平均播放量范围 |
last10_avg_video_interaction_rate_gte / _lte | number | 近 10 条视频平均互动率范围,传 0~100 |
last_video_publish_date_gte / _lte | string | 最近视频发布日期范围,YYYY-MM-DD |
product_category_id_array | string | 带货类目 ID,多选逗号分隔 |
audience_language_code_list | string | 受众语言代码,多选逗号分隔 |
last30day_gmv_gte / _lte | number | 近 30 天 GMV 范围 |
last30day_gpm_gte / _lte | number | 近 30 天 GPM 范围 |
last30day_gmv_per_buyer_gte / _lte | number | 近 30 天客单价范围 |
last30day_commission_rate_gte / _lte | number | 近 30 天佣金率范围,传 0~100 |
TikTok sort_field:followers_cnt / last10_avg_video_views_cnt / last10_avg_video_interaction_rate。
| 参数 | 类型 | 说明 |
|---|---|---|
has_whatsapp / is_ai_creator | boolean | 是否有 WhatsApp / 是否 AI 达人 |
last10_avg_video_view_count_all_gte / _lte | number | 近 10 条全部视频平均播放量范围 |
last10_avg_video_view_count_short_gte / _lte | number | 近 10 条短视频平均播放量范围 |
last10_avg_interaction_rate_all_gte / _lte | number | 近 10 条全部视频平均互动率范围,传 0~100 |
last10_avg_interaction_rate_short_gte / _lte | number | 近 10 条短视频平均互动率范围,传 0~100 |
last_video_publish_date_gte / _lte | string | 最近视频发布日期范围,YYYY-MM-DD |
audience_language_code_list | string | 受众语言代码,多选逗号分隔 |
YouTube 不要使用旧字段名 last10_avg_video_views_cnt_*、last10_avg_video_views_cnt_short_*、last10_avg_video_interaction_rate_*、last10_avg_video_interaction_rate_short_*。
| 参数 | 类型 | 说明 |
|---|---|---|
has_whatsapp / is_product_kol / is_ai_creator | boolean | 是否有 WhatsApp / 带货达人 / AI 达人 |
last10_avg_video_view_count_gte / _lte | number | 近 10 条视频平均播放量范围 |
last10_avg_video_interaction_rate_gte / _lte | number | 近 10 条视频平均互动率范围,传 0~100 |
last_video_publish_time_gte / _lte | string | 最近视频发布日期范围,YYYY-MM-DD |
female_ratio_gte / _lte | number | 受众女性占比范围,传 0~100(Instagram 专用,替代通用 audience_female_rate_*) |
audience_language_list | string | 受众语言,多选逗号分隔 |
Instagram 不要使用旧字段名 last10_avg_video_views_cnt_*、last_video_publish_date_*、audience_female_rate_*、is_top_creator。
industry 参数在 HTTP Open API 中要求传 level-3 数字类目 ID。通过本 skill 的脚本调用时,脚本支持以下输入并自动转换为 level-3 类目 ID:
5001001,25009001,24001001(真实 ID 可能为 7 位或 8 位)5,25(真实 ID 可能为 1 位或 2 位,自动展开为所有三级子类目)美妆,科技数码Skincare,Mobile PhonesFashion, Beauty, Sports, Tech, Food, Gaming, TravelFashion,Beauty(逐项解析)脚本会校验每个行业值是否存在于完整行业树中。只要有一项无法识别,搜索会在发送 HTTP 请求前失败,不会发送名称、未知数字 ID 或部分转换结果。
{"platform":"tiktok","country_code":"US","gender":"0","has_email":true,"followers_cnt_gte":100000,"last10_avg_video_interaction_rate_gte":3,"service_level":"S2"}{"platform":"youtube","country_code":"US","last10_avg_video_view_count_short_gte":50000,"audience_female_rate_gte":70,"service_level":"S3"}{"platform":"instagram","industry":"Beauty","is_product_kol":true,"audience_language_list":"en","service_level":"S2"}达人名单表格必须遵循以下原则,提升可读性与交互效率:
Markdown 表格安全清洗(防止 Navos 展示错位):
|,也不要用 \| 转义;统一替换为 / 或 /。例如 Gabe | Tech & Lifestyle 展示为 Gabe/Tech & Lifestyle。\r、\n、<br>;统一压成一个空格。| 分隔数量一致。多个值用 、 或 / 连接,不要用 |。scripts/search_creators.mjs 和 scripts/search_creators_nl.mjs 只补充 cv_list_url,用于在 Navos 内置浏览器无感登录 CreatiVault 并打开本次搜索结果快照列表;用户在 CV 原生列表中点击达人打开详情弹窗。对话区表格里的达人名/昵称仍链接到平台主页,平台主页链接必须保留为单独入口或引用链接。common profile 下不展示 CV 列表入口。固定语义列只保留这些:
#:序号头像:由 avatar_url 渲染用户名:由 username 渲染为主页链接昵称 / 频道名:由 nickname 渲染为主页链接其余列必须按实际返回字段展开:
null、空数组或空字符串时,可以省略该列是/否 或带文字的 ✅ 是、—avatar_url 已通过头像承载,无需重复放原始 URLuid 属于可追踪字段,S3 结果中如果返回必须展示,或至少在每行详情中展示,便于后续采集、建联、排障S3 字段强制覆盖:当 service_level=S3(Navos 默认)时,以下字段只要返回就必须展示,不得漏掉:
audience_female_rateaudience_country_code_listaudience_language_code_list,YouTube 用 audience_language_listaudience_age_id_list,YouTube 用 audience_age_listNavos 用户默认 S3,因此不要把 S3 结果压缩成少字段摘要表,也不要把同一批达人拆成“基础表 + 受众画像表”两张表。只要本次是 Navos profile、请求体包含 service_level=S3,或响应中出现任何 audience_* 字段,就必须默认输出一张动态宽表:
null、空数组或空字符串,可以省略该列;但不得把“字段过多”作为省略原因。粉丝星级(按粉丝量绝对值分 5 档,粉丝越多星越多):
属性列(图标+文字组合,根据返回字段显示,缺失则留空,不要凭空补):
is_verified=true)has_email=true 或 email 非空)product_categories 非空,或 has_showcase=true)is_ai_creator=true,平台返回该字段时)列值格式:
⭐⭐⭐⭐⭐ 超头部,不要只放星星✅ 已认证,邮箱列输出 ✉ 有邮箱,带货列输出 🛒 带货,AI 列输出 🤖 AI达人is_ai_creator=true 等有效值时才展示 AI 列;TikTok 结果通常不返回 is_ai_creator,不得凭空加 AI 列<span style="display:inline-flex;width:40px;height:40px;overflow:hidden;border-radius:4px;vertical-align:middle;"><img src="{avatar_url}" width="40" height="40" style="width:40px;height:40px;max-width:40px;min-width:40px;object-fit:cover;object-position:center;display:block;"></span>;avatar_url 来自 S1 字段,缺失时该格留空,禁止放占位图或编造 URL。不要用 Markdown ![](),也不要只裸写 <img src="{avatar_url}" width="36" height="36">uid、followers_count、likes_count、video_count、has_showcase、has_email、has_mcn、has_line、has_zalo、last_video_publish_date、country_code、gender、avg_views、engagement_rate、views_per_follower、is_verified、last10_video_views_per_sub、last10_med_video_views_cnt、last10_med_video_views_per_sub、product_categories、industry_categories、bio、hashtags、language、email、link_whatsapp、link_line、link_zalo、mcn、audience_female_rate、audience_country_code_list、audience_language_code_list、audience_age_id_listAI 列;除非响应里真实存在 AI 相关字段且有有效值<span style="display:inline-flex;width:40px;height:40px;overflow:hidden;border-radius:4px;vertical-align:middle;"><img src="{avatar_url}" width="40" height="40" style="width:40px;height:40px;max-width:40px;min-width:40px;object-fit:cover;object-position:center;display:block;"></span>;avatar_url 来自 S1 字段,缺失时该格留空,禁止放占位图或编造 URL。不要用 Markdown ![](),也不要只裸写 <img src="{avatar_url}" width="36" height="36">uid、has_email、has_whatsapp、last_video_publish_time、country_code、language、gender、bio、followers_count、video_count、view_count、avg_views、avg_views_short、avg_views_long、engagement_rate、engagement_rate_short、engagement_rate_long、is_verified、last10_video_views_per_sub、last10_video_views_per_sub_short、last10_video_views_per_sub_long、last10_med_video_views_cnt、last10_med_video_views_cnt_short、last10_med_video_views_cnt_long、last10_med_video_views_per_sub、last10_med_video_views_per_sub_short、last10_med_video_views_per_sub_long、industry_categories、hashtags、email、whatsapp、audience_female_rate、audience_country_code_list、audience_language_list、audience_age_listis_ai_creator 只在响应真实返回且有有效值时展示,不要固定输出空白 AI 列skincare, skin care, funny, home cleaning, pet supplies, kids toys, phone accessories.Home Cleaning; "funny creators" -> Comedy & Humor.Children's Toys, Pet Toys, Model Toys, or Adult Art Toys; "home" may mean Home Cleaning, Home Decoration, Home Appliances, or Kitchen & Tableware.suggestions, present those category names to the user and ask which one to use instead of sending a request with an unknown industry value.<span style="display:inline-flex;width:40px;height:40px;overflow:hidden;border-radius:4px;vertical-align:middle;"><img src="{avatar_url}" width="40" height="40" style="width:40px;height:40px;max-width:40px;min-width:40px;object-fit:cover;object-position:center;display:block;"></span>;avatar_url 来自 S1 字段,缺失时该格留空,禁止放占位图或编造 URL。不要用 Markdown ![](),也不要只裸写 <img src="{avatar_url}" width="36" height="36">uid、has_email、has_whatsapp、last_video_publish_time、country_code、language、gender、bio、followers_count、video_count、avg_views、engagement_rate、is_verified、last10_video_views_per_sub、last10_med_video_views_cnt、last10_med_video_views_per_sub、industry_categories、hashtags、email、link_whatsapp、audience_female_rate、audience_country_code_list、audience_language_code_list、audience_age_id_listis_product_kol / is_ai_creator 只在响应真实返回且有有效值时展示,不要固定输出空白带货或 AI 列profile_url(TikTok/Instagram)/ channel_url(YouTube)属于 S1 字段,S2/S3 同样返回[名称][linkN] 链接,指向该达人平台主页 URL,不再单独设置末列"主页链接"[linkN] 对应的完整 URLmeta.total 为 null 时不展示总匹配数avatar_url 属于 S1 字段,全平台全等级返回<span style="display:inline-flex;width:40px;height:40px;overflow:hidden;border-radius:4px;vertical-align:middle;"><img src="{avatar_url}" width="40" height="40" style="width:40px;height:40px;max-width:40px;min-width:40px;object-fit:cover;object-position:center;display:block;"></span>(外框固定、图片居中裁切,避免 Navos 表格列宽把竖图压窄)<img src="{avatar_url}" width="36" height="36"> 这类同时固定宽高但未设置 object-fit / 外层裁切框的格式,避免把竖图、横图头像压扁<img src> 内联 avatar_url,无需单独定义引用链接;达人名链接([linkN])在表格下方列出完整 URLavatar_url 为空或缺失时,该格留空,禁止编造头像 URL 或放占位图[必须] 展示搜索结果表格后,不要只丢出原始数据就结束。基于返回的数据,对头部达人(前 3-5 个)给出简短的专业分析,帮助用户快速理解匹配价值。
润色维度参考(根据返回字段灵活组织,不必逐条罗列):
示例(输入数据 → 润色输出):
原始数据:
rumah.cafe | 平均播放 52,686 | MY 受众 82.4% | 女性受众 62.94% | 主语言 en 90.2% | home cafe/coffee
润色输出:
🏆 [rumah.cafe][link1] — 最强推荐
真实数据:粉丝 320K | 平均播放 52,686 | 互动率 6.2% | MY 受众 82.4% | 女性受众 62.94% | 主语言 en 90.2%
推荐理由:平均播放 52,686,远高于其他账号;MY 受众 82.4%,本地转化潜力强
受众画像:女性受众 62.94%(适合女性向产品);主语言 en 90.2%,适合英文沟通
内容匹配:home cafe / coffee 场景,与咖啡杯/杯具产品高度契合
⚠️ 风险:像 home cafe 场景号,不一定是个人达人,合作方式建议:场景植入 / 咖啡杯种草 / home cafe setup注意:
[必须] 搜索结果展示完毕 + 达人分析润色后,主动给出 1-3 条下一步建议。建联建议必须按下面的确定性规则生成,不要只凭语感选择:
#### 建联建议判定规则
email 非空或 has_email=true 的达人数量大于等于 2,必须建议“批量建联这些有邮箱达人”,并说明可以先确认产品信息后生成个性化邮件。email 非空或 has_email=true,不要说“批量建联”;建议“先单独建联这个达人”,同时可建议“继续筛一批有邮箱达人后再批量建联”。email 且 has_email 不为 true,不要建议批量建联;改为建议“继续筛有邮箱达人 / 导出当前候选 / 基于优质账号找相似达人 lookalike”。#### 可选建议池
不要机械罗列所有建议——先按“建联建议判定规则”决定是否必须给建联建议,再根据用户的使用场景(建联/分析/采集)补充 1-2 条最相关的导出、lookalike 或进一步分析建议。
cv_list_url exists, never print the raw full URL in the final answer. Show it as [在 CreatiVault 查看完整列表]({cv_list_url}).~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.