2026-09-08 · 原文发布日
领英线索批量抓取、AI打分并起草土耳其语 outreach
手动运行一次:Apify的领英搜索抓取器按你配置的关键词拉一批个人资料,流程提取邮箱和网站域名等字段后,交给OpenRouter上的Gemini为每条线索打分、用土耳其语解释理由并给出个性化接触角度,解析成结构化记录后逐行写入Google Sheets。抓取关键词、条数上限和表格映射都可改,语言也可通过提示词换成中文。
原文要点
作者thealiilhan发布的免费n8n模板:手动执行后,用Apify的LinkedIn Profile Search Scraper按配置的搜索词和条数上限抓取领英个人资料,从资料文本提取邮箱和网站域名,再交给OpenRouter上的google/gemini-2.5-pro为每条线索打分、用土耳其语解释评分理由并给出土耳其语接触角度,解析成结构化记录后逐行追加到Google Sheets。需分别配置Apify、OpenRouter、Google Sheets OAuth三种凭据,并自行调整表格列映射。
这次做成什么
在n8n里搭一条手动触发的领英线索流水线:抓取→字段提取→AI土耳其语打分→写入表格,并用本站设计的合成测试数据先跑通解析和写表环节。
准备什么
- 一个n8n实例(云端或自托管均可),能创建凭据和手动执行工作流
- Apify账号及API令牌,且能使用LinkedIn Profile Search Scraper actor
- OpenRouter账号API Key,账户可使用google/gemini-2.5-pro模型
- Google账号,已建一张空白Google Sheet并开通OAuth凭据
- 遵守领英与目标地区数据合规要求,仅处理允许抓取的公开资料
具体怎么做
配置抓取节点
在Apify节点填入你的API令牌,actor选LinkedIn Profile Search Scraper,input里设置searchQuery(如“logistics manager Istanbul”)和maxItems(练习建议设3到5条,避免烧额度),保存后先单独执行该节点确认能返回资料数组。
提取与规范化字段
在Apify节点后接Code或Set节点,从每条资料中取出姓名、职位、公司,并用正则从简介文本提取邮箱(/[\w.+-]+@[\w-]+\.[\w.]+/)和网站域名(匹配https?://后的主机名,去掉www.),输出统一的JSON对象数组,字段名固定为name、title、company、email、domain、profileUrl。
AI打分与起草
接OpenRouter Chat Model节点,凭据填OpenRouter API Key,模型选google/gemini-2.5-pro,系统提示词用下方材料中的打分提示词,用户消息传入上一步的单条线索JSON;要求模型只输出JSON,字段为score、reason_tr、angle_tr。
解析并写入表格
用Code节点对模型输出做JSON.parse并包try/catch,解析失败时score置0、reason写“解析失败”;然后接Google Sheets节点的Append操作,选择你的表格和工作表,把name、title、company、email、domain、score、reason_tr、angle_tr逐列映射到表头,手动执行整条流程后在表格确认新增行。
可直接复制的材料
Gemini线索打分与土耳其语接触角度提示词
本站独立编写的示例提示词。把第3行的目标客户画像换成你的真实ICP;若要中文输出,把reason_tr、angle_tr改为reason_zh、angle_zh并把“土耳其语”改为“中文”,同时同步改解析和表格映射。
你是一名B2B销售线索评估助手。我会给你一条从领英抓取的潜在客户资料(JSON格式,含name、title、company、email、domain字段)。
我们的目标客户画像:土耳其及周边地区有国际物流或电商履约需求的中小企业决策人(创始人、运营总监、物流经理)。
请完成三件事:
1. 按0到100给这条线索的匹配度打分(整数)。
2. 用土耳其语写一句不超过40词的评分理由,说明打分依据。
3. 用土耳其语写一句不超过40词的个性化接触角度,作为首次外联邮件的切入点。
只输出如下JSON,不要输出任何其他文字:
{"score": 整数, "reason_tr": "土耳其语理由", "angle_tr": "土耳其语接触角度"}合成测试线索JSON(替代真实抓取)
本站虚构的练习数据,不含真实个人信息。在未配好Apify前,可用一个Set节点手动填入这份数组,先验证打分、解析和写表三段是否正常。
[
{"name": "Elif Kaya", "title": "Operations Director", "company": "Marmara Lojistik A.Ş.", "email": "elif.kaya@marlog.example", "domain": "marlog.example", "profileUrl": "https://www.linkedin.com/in/elif-kaya-example"},
{"name": "Deniz Arslan", "title": "Freelance Graphic Designer", "company": "Self-employed", "email": "", "domain": "", "profileUrl": "https://www.linkedin.com/in/deniz-arslan-example"}
]Google Sheets表头与列映射
本站建议的映射方案,需与你实际表格的工作表名和列名一致;原模板的具体映射请在其配置节点中核对。
表头顺序(第一行):name | title | company | email | domain | profileUrl | score | reason_tr | angle_tr | imported_at
映射说明:前六列来自提取节点,score/reason_tr/angle_tr来自AI解析结果,imported_at用表达式{{$now.toISO()}}生成导入时间。输入与输出示例
本站虚构演示,用于说明输入输出字段如何对应,并非调用Gemini的真实返回,也未实际运行该工作流。
输入
{"name": "Elif Kaya", "title": "Operations Director", "company": "Marmara Lojistik A.Ş.", "email": "elif.kaya@marlog.example", "domain": "marlog.example"} 这条合成线索连同上述ICP提示词一起发给模型。对应输出
{"score": 86, "reason_tr": "Operasyon direktörü olarak lojistik kararlarında yetkili; uluslararası nakliye ihtiyacı profiliyle örtüşüyor.", "angle_tr": "Marmara Lojistik'in ihracat hacmine atıfla, fulfillment maliyetlerini azaltan bir öneriyle açılış yapın."} 解析后追加为表格新行,score列写入86。做完检查这些
- Apify节点单独执行能返回至少一条含职位和公司的资料对象,否则先检查搜索词和令牌
- 解析节点对模型输出的JSON.parse有try/catch兜底,故意喂一段非JSON文本时不会让整个流程报错中断
- Google Sheets中新行的name、score、reason_tr等列与表头一一对应,无整行错位
- 把合成测试数据中无邮箱无域名的那条跑一遍,流程仍能打分并写表,不会因空字段崩溃
容易卡住的地方
- OpenRouter按模型用量计费,google/gemini-2.5-pro需账户余额或可用额度,并非免费
- 批量抓取领英资料受Apify计费与领英条款约束,条数上限别一上来设很大
- 正则从简介提取邮箱只能抓到公开写在文本里的地址,很多资料会提取不到,属正常边界
- 模型偶尔不输出纯JSON,若解析兜底缺失会导致写表环节批量失败
- Google Sheets OAuth凭据首次授权后可能过期,长时间未用需重新连接
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Qualify LinkedIn leads with Apify, Gemini via OpenRouter, and Google Sheets
- 原作者
- thealiilhan
- 原始发布日期
- 2026-09-08T11:04:12.737Z
- 来源
- https://n8n.io/workflows/19383