lead-qualification
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseLead Qualification Engine
潜在客户资格审核引擎
Qualify leads against custom criteria through a structured intake process, then score lead lists in parallel with confidence ratings and reasoning.
通过结构化信息收集流程,根据自定义标准审核潜在客户,随后以并行方式为线索列表打分并给出置信度评级与审核理由。
Three Modes of Operation
三种运行模式
Mode 1: Full Intake + Qualify
模式1:完整信息收集 + 审核
No existing qualification prompt. Run intake to build one, save it, then qualify leads.
Trigger: User provides no qualification prompt file.
无现有资格审核提示词。运行信息收集流程构建提示词,保存后进行线索审核。
触发条件: 用户未提供资格审核提示词文件。
Mode 2: Reuse Prompt + Qualify
模式2:复用提示词 + 审核
User references an existing qualification prompt file — skip intake, go straight to scoring.
Trigger: User tags or references a file in .
skills/lead-qualification/qualification-prompts/用户引用现有资格审核提示词文件 —— 跳过信息收集,直接进入打分环节。
触发条件: 用户标记或引用路径下的文件。
skills/lead-qualification/qualification-prompts/Mode 3: Refine / Calibrate
模式3:优化 / 校准
User has seen results and wants to adjust criteria. Update the saved prompt, re-run.
Trigger: User says something like "refine", "adjust", "that's wrong", or provides feedback on qualification results.
用户已查看结果并希望调整审核标准。更新已保存的提示词,重新运行。
触发条件: 用户提及“优化”“调整”“结果有误”等词汇,或对审核结果提供反馈。
Phase 1: Intake (Mode 1 Only)
阶段1:信息收集(仅模式1)
The goal is to build a complete picture of who the user considers qualified vs disqualified. Present questions in bulk rounds so the user can answer efficiently.
目标是全面了解用户认定的合格与不合格潜在客户标准。分多轮批量提出问题,方便用户高效作答。
Round 1 — Core Questions (Present All at Once)
第一轮——核心问题(一次性全部呈现)
Present these questions as a numbered list. Tell the user: "Answer what's relevant, skip what's not. I'll follow up on anything I need to clarify."
Product & Campaign Context:
- What's your product/service in one sentence?
- What problem does it solve and for whom?
- What's the specific campaign or outreach angle? (e.g., "targeting companies that just raised Series A", "going after teams switching from Competitor X")
Company-Level Criteria:
4. What company sizes are you targeting? (e.g., 1-10, 11-50, 51-200, 201-1000, 1000+)
5. What industries or verticals are a good fit?
6. Any industries or company types to explicitly EXCLUDE?
7. Geographic targets? Or is this global?
8. Geographic exclusions?
9. Does company stage matter? (e.g., seed, Series A, Series B+, public)
10. Any revenue range or funding range that matters?
Person-Level Criteria:
11. What job titles or roles are your ideal buyers?
12. What titles are explicitly disqualified?
13. Does seniority level matter? (e.g., must be Director+, VP+, C-level)
14. What departments should they be in? (e.g., growth, marketing, sales, engineering)
15. Minimum tenure at current company? (e.g., 6+ months to have buying power)
16. Does total years of experience matter?
Behavioral & Situational Signals:
17. Are there tech stack signals that qualify or disqualify? (e.g., "uses Salesforce" = good fit)
18. Does recent company activity matter? (e.g., hiring spree, funding round, product launch)
19. Are there content/posting signals? (e.g., "posted about AI" = relevant)
20. Any other signals that indicate high intent or good fit?
Dealbreakers & Instant Qualifiers:
21. What are your HARD DISQUALIFIERS — things that instantly make someone a "no" regardless of other factors?
22. What are your STRONGEST QUALIFIERS — things that make someone an almost certain "yes"?
将以下问题以编号列表形式呈现。告知用户:“请回答相关问题,无关问题可跳过。我会跟进需要澄清的内容。”
产品与营销活动背景:
- 请用一句话描述您的产品/服务?
- 您的产品/服务解决什么问题,受众是谁?
- 本次营销活动或触达的具体方向是什么?(例如:“针对刚完成A轮融资的公司”“瞄准从竞品X切换的团队”)
公司层面标准:
4. 您的目标公司规模是?(例如:1-10人、11-50人、51-200人、201-1000人、1000人以上)
5. 哪些行业或垂直领域是合适的受众?
6. 有没有明确需要排除的行业或公司类型?
7. 目标地域是?还是面向全球?
8. 有没有需要排除的地域?
9. 公司发展阶段是否重要?(例如:种子轮、A轮、B轮及以后、上市公司)
10. 有没有需要关注的营收范围或融资范围?
个人层面标准:
11. 您的理想买家对应的职位头衔或角色是?
12. 哪些头衔会直接被排除?
13. 职位级别是否重要?(例如:必须是总监及以上、副总裁及以上、CXO级别)
14. 他们应该隶属于哪些部门?(例如:增长部、市场部、销售部、工程部)
15. 在当前公司的最低任职时长要求是?(例如:6个月以上以具备采购决策权)
16. 总工作经验年限是否重要?
行为与场景信号:
17. 有没有可用于合格/不合格判定的技术栈信号?(例如:“使用Salesforce”= 合适受众)
18. 公司近期动态是否重要?(例如:大规模招聘、融资、产品发布)
19. 有没有内容/发布信号?(例如:“发布过AI相关内容”= 相关受众)
20. 有没有其他表明高意向或适配度的信号?
否决项与直接合格项:
21. 您的硬性否决项是什么——无论其他因素如何,只要符合就直接判定为“不合格”的条件?
22. 您的核心合格项是什么——只要符合就几乎可以直接判定为“合格”的条件?
Round 2 — Follow-Up Probes
第二轮——跟进追问
Based on the user's answers, ask 5-10 targeted follow-ups to resolve ambiguity. Examples:
- "You said mid-market — does that mean 50-500 or 50-1000 employees?"
- "You mentioned VP of Growth — would a 'Head of Growth' also qualify, or only VP title?"
- "You didn't mention geography — should I treat this as global?"
- "For tenure, you said 6 months minimum. What about someone who's 4 months in but was promoted internally?"
- "You mentioned Series A companies. What about bootstrapped companies with equivalent revenue?"
根据用户的回答,提出5-10个针对性问题以消除歧义。示例:
- “您提到的中型市场——指的是50-500名员工还是50-1000名员工?”
- “您提到了增长副总裁——‘增长负责人’是否也符合要求,还是仅限副总裁头衔?”
- “您未提及地域——是否默认面向全球?”
- “关于任职时长,您要求至少6个月。那任职4个月但内部晋升的情况呢?”
- “您提到了A轮公司。那营收相当的自盈利公司是否符合要求?”
Round 3 — Edge Case Scenarios (Optional but Recommended)
第三轮:边缘案例场景(可选但推荐)
Present 3-5 hypothetical lead profiles that test boundary cases. Ask "Would you qualify this person?"
Example scenarios to construct (adapt based on the user's criteria):
- Someone who fits the title but is at a company that's slightly too large/small
- Someone at the right company but with a borderline title
- Someone who matches on everything but has low tenure
- Someone who doesn't match the title exactly but has high intent signals
- Someone at a competitor's customer
This round catches implicit criteria the user hasn't articulated.
呈现3-5个测试边界情况的假设潜在客户档案。询问“您会判定该客户合格吗?”
根据用户标准构建的示例场景:
- 职位符合但公司规模略超/略低于标准的客户
- 公司符合但职位处于边界的客户
- 所有条件都符合但任职时长不足的客户
- 职位不完全匹配但意向信号强烈的客户
- 竞品客户
这一轮可以捕捉用户未明确表述的隐含标准。
Generate & Save Qualification Prompt
生成并保存资格审核提示词
After intake is complete, synthesize all answers into a structured qualification prompt. Save it to:
skills/lead-qualification/qualification-prompts/[campaign-name].mdThe saved prompt MUST follow this structure:
markdown
undefined信息收集完成后,将所有回答整理为结构化的资格审核提示词。保存至:
skills/lead-qualification/qualification-prompts/[campaign-name].md保存的提示词必须遵循以下结构:
markdown
undefinedQualification Prompt: [Campaign Name]
Qualification Prompt: [Campaign Name]
Generated: [date]
Generated: [date]
Campaign Context
Campaign Context
- Product: [one-liner]
- Campaign Angle: [specific angle]
- Problem Solved: [what and for whom]
- Product: [one-liner]
- Campaign Angle: [specific angle]
- Problem Solved: [what and for whom]
Hard Disqualifiers (Instant No)
Hard Disqualifiers (Instant No)
- [list each with explanation]
- [list each with explanation]
Hard Qualifiers (Instant Yes)
Hard Qualifiers (Instant Yes)
- [list each with explanation]
- [list each with explanation]
Company Criteria
Company Criteria
| Criterion | Qualified | Disqualified | Notes |
|---|---|---|---|
| Size | [range] | [range] | |
| Industry | [list] | [list] | |
| Geography | [list] | [list] | |
| Stage | [list] | [list] | |
| Funding/Revenue | [range] | [range] |
| Criterion | Qualified | Disqualified | Notes |
|---|---|---|---|
| Size | [range] | [range] | |
| Industry | [list] | [list] | |
| Geography | [list] | [list] | |
| Stage | [list] | [list] | |
| Funding/Revenue | [range] | [range] |
Person Criteria
Person Criteria
| Criterion | Qualified | Disqualified | Notes |
|---|---|---|---|
| Titles | [list] | [list] | |
| Seniority | [level+] | [below level] | |
| Department | [list] | [list] | |
| Tenure | [minimum] | [below minimum] | |
| Experience | [range] | [range] |
| Criterion | Qualified | Disqualified | Notes |
|---|---|---|---|
| Titles | [list] | [list] | |
| Seniority | [level+] | [below level] | |
| Department | [list] | [list] | |
| Tenure | [minimum] | [below minimum] | |
| Experience | [range] | [range] |
Behavioral & Situational Signals
Behavioral & Situational Signals
- [list signals that boost qualification]
- [list signals that reduce qualification]
- [list signals that boost qualification]
- [list signals that reduce qualification]
Confidence Rules
Confidence Rules
- High Confidence: Enough data available for company size, title, tenure, and at least one signal.
- Medium Confidence: Missing one or two non-critical data points but core criteria are clear.
- Low Confidence: Missing critical data points (e.g., no company size, unclear title). Still make a yes/no call but flag it.
- High Confidence: Enough data available for company size, title, tenure, and at least one signal.
- Medium Confidence: Missing one or two non-critical data points but core criteria are clear.
- Low Confidence: Missing critical data points (e.g., no company size, unclear title). Still make a yes/no call but flag it.
Edge Case Guidance
Edge Case Guidance
- [specific guidance derived from Round 3 scenarios]
- [any nuanced rules from the intake conversation]
- [specific guidance derived from Round 3 scenarios]
- [any nuanced rules from the intake conversation]
Qualification Reasoning Instructions
Qualification Reasoning Instructions
When evaluating a lead, structure your reasoning as:
- Check hard disqualifiers first — if any match, immediately disqualify.
- Check hard qualifiers — if any match, lean strongly toward qualifying.
- Evaluate company criteria against thresholds.
- Evaluate person criteria against thresholds.
- Factor in behavioral/situational signals as tiebreakers.
- Assign confidence based on data completeness.
- Write 2-3 sentence reasoning summarizing the decision.
---When evaluating a lead, structure your reasoning as:
- Check hard disqualifiers first — if any match, immediately disqualify.
- Check hard qualifiers — if any match, lean strongly toward qualifying.
- Evaluate company criteria against thresholds.
- Evaluate person criteria against thresholds.
- Factor in behavioral/situational signals as tiebreakers.
- Assign confidence based on data completeness.
- Write 2-3 sentence reasoning summarizing the decision.
---Phase 2: Lead Qualification
阶段2:潜在客户资格审核
Step 1 — Parse Input
步骤1 — 解析输入
Accept any of these input formats:
- Google Sheet URL — Read via Rube MCP (or similar)
GOOGLESHEETS_GET_ALL_DATA_FROM_GOOGLE_SHEET - CSV file path — Read directly from filesystem
- LinkedIn profile URLs — One or more URLs provided inline
- Inline list — Names/companies listed in the message
Detect the format automatically. If it's a Google Sheet, use to find the right Google Sheets reading tool, then read the data.
RUBE_SEARCH_TOOLS支持以下任意输入格式:
- Google Sheet链接 — 通过Rube MCP读取(使用或类似工具)
GOOGLESHEETS_GET_ALL_DATA_FROM_GOOGLE_SHEET - CSV文件路径 — 直接从文件系统读取
- LinkedIn个人主页链接 — 直接提供一个或多个链接
- 内联列表 — 在消息中列出姓名/公司
自动检测格式。如果是Google Sheet,使用找到合适的Google Sheets读取工具,然后读取数据。
RUBE_SEARCH_TOOLSStep 1.5 — Batch Enrichment via Apify
步骤1.5 — 通过Apify批量补充信息
When: The input contains a column (or LinkedIn URLs are available).
Skip when: No LinkedIn URLs are present, or the user explicitly says to skip enrichment.
linkedin_urlBefore LLM qualification, batch-enrich all leads to gather structured profile data. This is MUCH faster and cheaper than per-lead web searches during qualification.
Run the enrichment script:
bash
python3 skills/lead-qualification/scripts/enrich_leads.py INPUT_CSV \
--output ENRICHED_CSV \
--cache-hours 24Use first to show the cost estimate without calling Apify.
--dry-runWhat this does:
- Reads all LinkedIn URLs from the input CSV
- Checks local cache (24h default) — skips profiles already enriched
- Sends uncached URLs to Apify in batches of 50
- Returns enriched CSV with: ,
enriched_title,enriched_company,enriched_industry,enriched_location,enriched_connections,enriched_education,enriched_experience_years,enriched_headline,enriched_aboutenrichment_status - Cost:
$3 per 1,000 profiles ($0.03 per 100 leads)
After enrichment, use the enriched CSV as input for Steps 2-4. The enriched data lets the LLM qualification step work from structured fields instead of doing web searches, dramatically improving speed and consistency.
If enrichment fails for some profiles: They'll have in the output. The LLM qualification step should fall back to web search for those leads only.
enrichment_status: failed适用场景: 输入包含列(或提供了LinkedIn链接)。
跳过场景: 无LinkedIn链接,或用户明确要求跳过补充。
linkedin_url在LLM审核前,批量补充所有潜在客户的结构化档案信息。这比审核时逐个进行网页搜索更快、成本更低。
运行补充脚本:
bash
python3 skills/lead-qualification/scripts/enrich_leads.py INPUT_CSV \
--output ENRICHED_CSV \
--cache-hours 24先使用参数预览成本,再实际调用Apify。
--dry-run脚本功能:
- 从输入CSV读取所有LinkedIn链接
- 检查本地缓存(默认24小时)—— 跳过已补充的档案
- 将未缓存的链接以50个为一批发送至Apify
- 返回包含以下字段的补充后CSV:,
enriched_title,enriched_company,enriched_industry,enriched_location,enriched_connections,enriched_education,enriched_experience_years,enriched_headline,enriched_aboutenrichment_status - 成本:约每1000个档案3美元(约每100个线索0.03美元)
补充完成后,使用补充后的CSV作为步骤2-4的输入。 补充后的数据让LLM审核环节可以基于结构化字段进行处理,而非网页搜索,大幅提升速度与一致性。
若部分档案补充失败: 输出中这些档案的为。LLM审核环节仅对这些线索回退至网页搜索。
enrichment_statusfailedStep 2 — Calibration Batch
步骤2 — 校准批次
Before processing the full list, run the first 5-10 leads and present results to the user in a table.
If batch enrichment was run (Step 1.5), use the enriched columns (, , etc.) as the primary data source. Only fall back to web search for leads where is or .
enriched_titleenriched_companyenrichment_statusfailedno_url| # | Name | Title | Company | Qualified | Confidence | Reasoning |
|---|------|-------|---------|-----------|------------|-----------|
| 1 | ... | ... | ... | Yes | High | ... |
| 2 | ... | ... | ... | No | Medium | ... |
| ... |Ask: "Do these look right? Should I adjust any criteria before processing the full list?"
If the user flags issues:
- Discuss what needs to change
- Update the saved qualification prompt file
- Re-run the calibration batch
- Confirm again before proceeding
Repeat until the user approves.
处理完整列表前,先运行前5-10个线索,并以表格形式向用户展示结果。
若已运行批量补充(步骤1.5),则以补充后的字段(, 等)作为主要数据源。仅当为或时,才回退至网页搜索。
enriched_titleenriched_companyenrichment_statusfailedno_url| # | 姓名 | 职位 | 公司 | 合格 | 置信度 | 审核理由 |
|---|------|-------|---------|-----------|------------|-----------|
| 1 | ... | ... | ... | 是 | 高 | ... |
| 2 | ... | ... | ... | 否 | 中 | ... |
| ... |询问:“这些结果是否符合预期?在处理完整列表前,是否需要调整任何标准?”
若用户指出问题:
- 讨论需要修改的内容
- 更新已保存的资格审核提示词文件
- 重新运行校准批次
- 再次确认后再继续
重复此流程直至用户确认无误。
Step 3 — Full Run (Parallelized)
步骤3 — 完整运行(并行处理)
Once calibration is approved, process ALL remaining leads using parallel subagents. You MUST parallelize — do NOT process leads sequentially.
Parallelization protocol (mandatory):
-
Calculate batch count:
- Total remaining leads / 15 = number of batches (round up)
- Target: ~15 leads per batch
- Minimum: 2 batches (even for small lists, to validate parallelism works)
- Maximum: 10 concurrent batches (to avoid overwhelming context)
-
Prepare batch inputs: For each batch, create a self-contained context package:
- The full qualification prompt (from file)
qualification-prompts/ - The batch of lead rows (with ALL columns including enriched data from Step 1.5)
- Instructions for output format: Name, Qualified (Yes/No), Confidence (High/Medium/Low), Reasoning (2-3 sentences)
- Instruction: "For leads with or
enrichment_status=failed, do a quick web search. Spend no more than 30 seconds per lead on search."no_url
- The full qualification prompt (from
-
Launch parallel Task agents: Use the Task tool to launch ALL batches simultaneously in a single message with multiple tool calls:
Task: "Qualify leads batch 1/N" Context: [qualification prompt] + [batch 1 lead rows] Task: "Qualify leads batch 2/N" Context: [qualification prompt] + [batch 2 lead rows] ... (launch ALL at once — do NOT wait for batch 1 before launching batch 2) -
Collect and merge results:
- Wait for all Task agents to complete
- Merge all batch results into a single list
- Preserve original row order from the input
- If any batch fails, retry that batch once. If it fails again, flag those leads as "qualification_failed" and proceed.
-
Validate completeness:
- Count: total qualified + disqualified + failed = total input leads
- If any leads are missing, identify and re-process them
Per-lead processing (within each batch agent):
- Read all available data from the input row (including enriched columns from Step 1.5)
- If enriched data is present (or
enrichment_status: success): usecached,enriched_title, etc.enriched_company - If enriched data is missing (or
enrichment_status: failed): do a quick web search (max 30 seconds)no_url - Apply the qualification prompt:
- Check hard disqualifiers first — if any match, immediately disqualify
- Check hard qualifiers — if any match, lean strongly toward qualifying
- Evaluate all criteria
- Determine: Qualified (Yes/No), Confidence (High/Medium/Low)
- Write 2-3 sentence reasoning
- Return the result
校准通过后,使用并行子代理处理所有剩余线索。必须采用并行处理——不得按顺序处理线索。
并行处理协议(强制要求):
-
计算批次数:
- 剩余线索总数 / 15 = 批次数(向上取整)
- 目标:每批约15条线索
- 最低要求:2个批次(即使列表很小,也要验证并行功能正常)
- 最高限制:10个并发批次(避免上下文过载)
-
准备批次输入: 为每个批次创建独立的上下文包:
- 完整的资格审核提示词(来自文件)
qualification-prompts/ - 该批次的线索行(包含所有列,包括步骤1.5的补充数据)
- 输出格式要求:姓名、合格(是/否)、置信度(高/中/低)、审核理由(2-3句话)
- 说明:“对于或
enrichment_status=failed的线索,进行快速网页搜索。每条线索的搜索时间不超过30秒。”no_url
- 完整的资格审核提示词(来自
-
启动并行Task代理: 使用Task工具在一条消息中同时启动所有批次的工具调用:
Task: "Qualify leads batch 1/N" Context: [qualification prompt] + [batch 1 lead rows] Task: "Qualify leads batch 2/N" Context: [qualification prompt] + [batch 2 lead rows] ... (一次性启动所有批次——不要等待批次1完成后再启动批次2) -
收集并合并结果:
- 等待所有Task代理完成
- 将所有批次结果合并为单个列表
- 保留输入的原始行顺序
- 若任何批次失败,重试一次。若仍失败,标记这些线索为“qualification_failed”后继续。
-
验证完整性:
- 计数:合格数 + 不合格数 + 失败数 = 输入线索总数
- 若有线索缺失,找出并重新处理
每个批次代理中的单线索处理流程:
- 读取输入行中的所有可用数据(包括步骤1.5的补充字段)
- 若有补充数据(或
enrichment_status: success):使用cached,enriched_title等字段enriched_company - 若无补充数据(或
enrichment_status: failed):进行快速网页搜索(最多30秒)no_url - 应用资格审核提示词:
- 首先检查硬性否决项——若匹配,直接判定不合格
- 检查核心合格项——若匹配,强烈倾向于判定合格
- 评估所有标准
- 确定:合格(是/否)、置信度(高/中/低)
- 撰写2-3句话的审核理由
- 返回结果
Step 4 — Output to Google Sheet
步骤4 — 输出至Google Sheet
Primary: Google Sheets via Rube MCP
Use to find Google Sheets tools, then:
RUBE_SEARCH_TOOLS- Create a new Google Sheet named:
[Campaign Name] - Qualified Leads - [Date] - Write all original columns PLUS three new columns:
- — Yes / No
Qualified - — High / Medium / Low
Confidence - — 2-3 sentence explanation
Reasoning
- Format the sheet:
- Bold header row with dark background
- Color-code the Qualified column: green for Yes, red for No
- Color-code Confidence: green for High, yellow for Medium, red for Low
- Auto-size columns for readability
- Add a filter row so the user can filter by Qualified/Confidence
- Present the Google Sheet link to the user
Fallback: CSV
If Rube MCP is unavailable or Google Sheets connection fails:
- Write a CSV to:
skills/lead-qualification/output/[campaign-name]-[date].csv - Include all original columns + Qualified, Confidence, Reasoning
- Tell the user the file path
首选方式:通过Rube MCP输出至Google Sheets
使用找到Google Sheets工具,然后:
RUBE_SEARCH_TOOLS- 创建新的Google Sheet,命名为:
[Campaign Name] - Qualified Leads - [Date] - 写入所有原始列,外加三列新内容:
- — 是 / 否
Qualified - — 高 / 中 / 低
Confidence - — 2-3句话의解释
Reasoning
- 格式化表格:
- 表头行加粗并设置深色背景
- 为“Qualified”列设置颜色标记:绿色表示“是”,红色表示“否”
- 为“Confidence”列设置颜色标记:绿色表示“高”,黄色表示“中”,红色表示“低”
- 自动调整列宽以提升可读性
- 添加筛选行,方便用户按合格状态/置信度筛选
- 向用户提供Google Sheet链接
备用方式:CSV文件
若Rube MCP不可用或Google Sheets连接失败:
- 将结果写入CSV文件,路径为:
skills/lead-qualification/output/[campaign-name]-[date].csv - 包含所有原始列 + Qualified、Confidence、Reasoning列
- 告知用户文件路径
Step 5 — Summary
步骤5 — 总结
After output is complete, present a summary:
undefined输出完成后,呈现总结内容:
undefinedQualification Results: [Campaign Name]
审核结果:[Campaign Name]
Total leads processed: X
Qualified: X (Y%)
Disqualified: X (Y%)
Confidence breakdown:
- High: X leads
- Medium: X leads
- Low: X leads (may need manual review)
Top disqualification reasons:
- [reason] — X leads
- [reason] — X leads
- [reason] — X leads
Output: [Google Sheet link or CSV path]
Qualification prompt saved to: skills/lead-qualification/qualification-prompts/[campaign-name].md
---处理的线索总数: X
合格: X(Y%)
不合格: X(Y%)
置信度分布:
- 高:X条线索
- 中:X条线索
- 低:X条线索(可能需要人工复核)
主要不合格原因:
- [原因] — X条线索
- [原因] — X条线索
- [原因] — X条线索
输出: [Google Sheet链接或CSV路径]
资格审核提示词保存至: skills/lead-qualification/qualification-prompts/[campaign-name].md
---Tools Required
所需工具
The qualification agent should have access to:
- Apify LinkedIn Enrichment — for batch profile enrichment before qualification
scripts/enrich_leads.py- Uses Apify actor ($3/1k profiles, no cookies)
supreme_coder~linkedin-profile-scraper - Requires environment variable
APIFY_API_TOKEN - Run with first to preview cost
--dry-run
- Uses
- Web Search — to research leads when enrichment data is sparse or missing
- Fetch (web page) — to pull LinkedIn profiles, company pages, etc.
- Rube MCP — for Google Sheets input/output
- — discover available tools
RUBE_SEARCH_TOOLS - — ensure Google Sheets connection is active
RUBE_MANAGE_CONNECTIONS - — execute sheet operations
RUBE_REMOTE_WORKBENCH
- Task tool — to parallelize lead processing across subagents (mandatory for Step 3)
- Read/Write — for CSV I/O and saving qualification prompts
- Glob/Grep — to find existing qualification prompt files
审核代理需要访问以下工具:
- Apify LinkedIn补充工具 — 用于审核前批量补充档案信息
scripts/enrich_leads.py- 使用Apify actor(每1000个档案3美元,无需Cookie)
supreme_coder~linkedin-profile-scraper - 需要环境变量
APIFY_API_TOKEN - 先使用参数预览成本
--dry-run
- 使用
- 网页搜索 — 当补充数据不足或缺失时,用于调研线索
- 网页抓取 — 用于获取LinkedIn档案、公司页面等
- Rube MCP — 用于Google Sheets的输入/输出
- — 发现可用工具
RUBE_SEARCH_TOOLS - — 确保Google Sheets连接正常
RUBE_MANAGE_CONNECTIONS - — 执行表格操作
RUBE_REMOTE_WORKBENCH
- Task工具 — 用于在子代理间并行处理线索(步骤3强制要求)
- 读写工具 — 用于CSV输入/输出和保存资格审核提示词
- Glob/Grep工具 — 用于查找现有资格审核提示词文件
Example Usage
使用示例
Full intake + qualify from Google Sheet:
完整信息收集 + 从Google Sheet审核:
Qualify leads for our outbound campaign. Here's the lead list: [Google Sheet URL]→ Agent detects no saved prompt, starts intake, builds prompt, then qualifies.
为我们的外呼营销活动审核潜在客户。线索列表链接:[Google Sheet URL]→ 代理检测到无已保存提示词,启动信息收集流程,构建提示词后进行审核。
Reuse existing prompt:
复用现有提示词:
Qualify these leads using @skills/lead-qualification/qualification-prompts/series-a-founders.md
— lead list: [Google Sheet URL]→ Agent skips intake, goes straight to calibration + qualification.
使用@skills/lead-qualification/qualification-prompts/series-a-founders.md提示词审核这些线索
—— 线索列表:[Google Sheet URL]→ 代理跳过信息收集,直接进入校准 + 审核环节。
Qualify LinkedIn profiles directly:
直接审核LinkedIn档案:
Using the series-a-founders qualification prompt, qualify these people:
- https://linkedin.com/in/person1
- https://linkedin.com/in/person2
- https://linkedin.com/in/person3使用series-a-founders资格审核提示词,审核以下人员:
- https://linkedin.com/in/person1
- https://linkedin.com/in/person2
- https://linkedin.com/in/person3Refine after seeing results:
查看结果后优化:
Those results look off — also disqualify anyone at a consulting firm, and lower the
tenure minimum to 3 months for Director+ titles.→ Agent updates the saved prompt and re-runs.
这些结果有问题——还要排除所有咨询公司的人员,并且将总监及以上头衔的最低任职时长要求降至3个月。→ 代理更新已保存的提示词并重新运行。