job-posting-intent

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Job Posting Intent Detection

招聘信息意向检测

Find companies that are hiring for roles related to the problem you solve. A job posting is a budget signal — the company has allocated money to solve a problem your product addresses.
Results are automatically exported to a Google Sheet with signal strength, decision-maker suggestions, outreach angles, and personalization context.
寻找正在招聘与你业务解决领域相关岗位的企业。招聘信息是一种预算信号——意味着该企业已经划拨资金,用于解决你的产品能够应对的问题。
结果会自动导出到Google Sheet中,包含信号强度、决策人建议、客户开发沟通角度以及个性化背景信息。

Why This Works

为什么这种方法有效

When a company posts a job, they've:
  • Allocated budget (headcount is expensive)
  • Acknowledged the problem exists
  • Started actively solving it
If your product helps solve that problem faster, cheaper, or better than a hire alone, the timing is perfect.
当企业发布招聘信息时,说明他们已经:
  • 划拨了预算(招聘员工成本高昂)
  • 意识到问题的存在
  • 开始积极解决问题
如果你的产品能够比单独招聘员工更快、更便宜、更好地解决该问题,那么现在就是绝佳的触达时机。

Cost

成本说明

Apify Actor:
harvestapi/linkedin-job-search
(pay-per-event)
ComponentCost
Actor start (per run)$0.001
Per job result$0.001
Apify platform fee+20%
Typical run costs:
ScenarioTitlesJobs/titleRunsEst. Cost
Quick scan3253~$0.09
Standard5255~$0.16
Deep search51005~$0.60
Multi-location5×32515~$0.47
Google Sheet creation is free (uses Rube/Composio integration).
Always run
--estimate-only
first to see the Apify cost before executing.
Apify Actor:
harvestapi/linkedin-job-search
(按事件付费)
组件成本
Actor启动(每次运行)$0.001
每条招聘信息结果$0.001
Apify平台服务费+20%
典型运行成本:
场景岗位数量每个岗位的招聘信息数运行次数预估成本
快速扫描3253~$0.09
标准扫描5255~$0.16
深度搜索51005~$0.60
多地区搜索5×32515~$0.47
Google Sheet创建是免费的(使用Rube/Composio集成)。
执行前请务必先运行
--estimate-only
查看Apify成本预估。

Setup

配置步骤

1. Apify API Token

1. Apify API 令牌

bash
undefined
bash
undefined
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"
undefined
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"
undefined

2. Install dependencies

2. 安装依赖

bash
pip3 install requests
bash
pip3 install requests

3. Rube/Composio (for Google Sheets)

3. Rube/Composio(用于Google Sheet)

Google Sheet creation uses Rube MCP with Composio. The token is preconfigured. If it stops working, update the
RUBE_TOKEN
env var or the default in
search_jobs.py
.
Google Sheet创建使用Rube MCP与Composio集成,令牌已预先配置。 如果令牌失效,请更新
RUBE_TOKEN
环境变量或
search_jobs.py
中的默认值。

Usage

使用方法

Step 1: Define your ICP and target titles

步骤1:定义你的理想客户画像(ICP)和目标岗位名称

Think about it this way: "If a company is hiring for [role], it means they're investing in [problem area you solve]."
Examples:
  • GTM agency: "Growth Marketing Manager", "SDR Manager", "RevOps Engineer", "GTM Engineer"
  • AI dev tools: "AI Engineer", "ML Ops Engineer", "Prompt Engineer", "LLM Engineer"
  • Sales automation: "SDR", "BDR Manager", "Sales Ops", "Revenue Operations"
你可以这样思考:"如果某企业正在招聘[岗位],说明他们正在投入资源解决[你业务覆盖的问题领域]。"
示例:
  • GTM代理机构:"Growth Marketing Manager", "SDR Manager", "RevOps Engineer", "GTM Engineer"
  • AI开发工具:"AI Engineer", "ML Ops Engineer", "Prompt Engineer", "LLM Engineer"
  • 销售自动化:"SDR", "BDR Manager", "Sales Ops", "Revenue Operations"

Step 2: Estimate cost

步骤2:预估成本

bash
python3 scripts/search_jobs.py \
  --titles "GTM Engineer,SDR Manager,Head of Demand Gen" \
  --locations "United States" \
  --max-per-title 25 \
  --estimate-only
bash
python3 scripts/search_jobs.py \
  --titles "GTM Engineer,SDR Manager,Head of Demand Gen" \
  --locations "United States" \
  --max-per-title 25 \
  --estimate-only

Step 3: Run the search

步骤3:运行搜索

The script searches LinkedIn Jobs, groups results by company, qualifies leads, and creates a Google Sheet automatically.
bash
undefined
脚本会搜索LinkedIn Jobs,按企业分组结果,对线索进行资质审核,并自动创建Google Sheet。
bash
undefined

Standard search (creates Google Sheet)

标准搜索(创建Google Sheet)

python3 scripts/search_jobs.py
--titles "GTM Engineer,SDR Manager,RevOps Engineer"
--locations "United States"
--max-per-title 25
python3 scripts/search_jobs.py
--titles "GTM Engineer,SDR Manager,RevOps Engineer"
--locations "United States"
--max-per-title 25

Deep search with custom sheet name

深度搜索并自定义Sheet名称

python3 scripts/search_jobs.py
--titles "AI Engineer,ML Ops Engineer,Prompt Engineer"
--locations "United States"
--max-per-title 50
--sheet-name "AI Hiring Signals - Feb 2026"
python3 scripts/search_jobs.py
--titles "AI Engineer,ML Ops Engineer,Prompt Engineer"
--locations "United States"
--max-per-title 50
--sheet-name "AI Hiring Signals - Feb 2026"

Filter results to only relevant titles (LinkedIn search is fuzzy)

过滤结果至真正相关的招聘信息(LinkedIn搜索为模糊匹配)

python3 scripts/search_jobs.py
--titles "GTM Engineer,Growth Marketing Manager,SDR Manager"
--locations "United States"
--relevance-keywords "gtm,growth,sdr,marketing,demand gen,revops"
python3 scripts/search_jobs.py
--titles "GTM Engineer,Growth Marketing Manager,SDR Manager"
--locations "United States"
--relevance-keywords "gtm,growth,sdr,marketing,demand gen,revops"

Also save raw JSON alongside the sheet

同时将原始JSON保存至文件

python3 scripts/search_jobs.py
--titles "GTM Engineer,SDR Manager"
--locations "United States"
--output results.json
python3 scripts/search_jobs.py
--titles "GTM Engineer,SDR Manager"
--locations "United States"
--output results.json

Skip Google Sheet, console + JSON only

跳过Google Sheet,仅输出至控制台和JSON

python3 scripts/search_jobs.py
--titles "GTM Engineer"
--no-sheet --json
undefined
python3 scripts/search_jobs.py
--titles "GTM Engineer"
--no-sheet --json
undefined

What the Script Does

脚本功能说明

  1. Searches LinkedIn Jobs for each title/location combination via Apify
  2. Groups results by company (deduplicates)
  3. Computes signal strength based on number of relevant postings + seniority
  4. Extracts personalization context from job descriptions (tech stack, growth signals, pain points)
  5. Suggests decision-maker title (one level above the hired role)
  6. Suggests outreach angle (accelerate / replace / multiply the hire)
  7. Creates a Google Sheet with all qualified leads
  8. Prints a console summary of all companies found
  1. 搜索:通过Apify在LinkedIn Jobs中搜索每个岗位名称/地点组合
  2. 分组:按企业对结果进行分组(去重)
  3. 计算信号强度:根据相关招聘信息数量和岗位级别计算
  4. 提取个性化背景信息:从招聘描述中提取技术栈、增长信号、痛点等
  5. 建议决策人岗位:建议联系的岗位(比招聘岗位高一级)
  6. 建议客户开发沟通角度:加速招聘成果/替代招聘/放大招聘价值
  7. 创建Google Sheet:包含所有合格线索
  8. 控制台汇总:打印所有找到的企业的汇总信息

Options Reference

参数选项参考

Required:
  --titles              Comma-separated job titles to search

Optional:
  --locations           Comma-separated locations (default: no filter)
  --max-per-title       Max jobs per title per location (default: 25)
  --posted-limit        Recency: 1h, 24h, week, month (default: week)
  --output, -o          Also save raw JSON to this file path
  --json                Print JSON output to console
  --estimate-only       Show cost estimate without running
  --no-sheet            Skip Google Sheet creation
  --sheet-name          Custom Google Sheet title (default: "Job Posting Intent Signals - {date}")
  --relevance-keywords  Comma-separated keywords to filter truly relevant postings
Required:
  --titles              Comma-separated job titles to search

Optional:
  --locations           Comma-separated locations (default: no filter)
  --max-per-title       Max jobs per title per location (default: 25)
  --posted-limit        Recency: 1h, 24h, week, month (default: week)
  --output, -o          Also save raw JSON to this file path
  --json                Print JSON output to console
  --estimate-only       Show cost estimate without running
  --no-sheet            Skip Google Sheet creation
  --sheet-name          Custom Google Sheet title (default: "Job Posting Intent Signals - {date}")
  --relevance-keywords  Comma-separated keywords to filter truly relevant postings

Google Sheet Columns

Google Sheet 列说明

ColumnDescription
SignalHIGH / MEDIUM / LOW based on # postings + seniority
CompanyCompany name
EmployeesEmployee count
IndustryCompany industry
WebsiteCompany website
LinkedInCompany LinkedIn URL
# PostingsNumber of relevant job postings found
Job TitlesThe actual job titles posted
Job URLLink to the primary job posting
LocationJob location(s)
Decision MakerSuggested title of person to contact
Outreach AngleAccelerate / Replace / Multiply the hire
Tech StackTechnologies mentioned in job descriptions
Growth SignalsGrowth indicators (first hire, scaling, series stage)
Pain PointsPain indicators (automate, optimize, manual processes)
DescriptionCompany description snippet
列名说明
信号强度根据招聘信息数量+岗位级别分为HIGH/MEDIUM/LOW
企业名称企业全称
员工数量企业员工规模
行业企业所属行业
官网企业官方网站
LinkedIn企业LinkedIn主页链接
招聘信息数量找到的相关招聘信息总数
岗位名称实际发布的岗位名称
招聘链接主要招聘信息的链接
地点招聘岗位的工作地点
建议决策人建议联系的岗位名称
沟通角度加速招聘成果/替代招聘/放大招聘价值
技术栈招聘描述中提到的技术栈
增长信号增长指标(首次招聘、规模扩张、融资阶段)
痛点痛点指标(自动化、优化、手动流程)
企业简介企业简介片段

AI Agent Integration

AI Agent 集成

When using this skill as an agent, the typical flow is:
  1. User describes their product and the types of roles that signal intent
  2. Agent runs
    --estimate-only
    and confirms cost with user
  3. Agent runs the search (Google Sheet is created automatically)
  4. Agent shares the Google Sheet link with the user
  5. Agent provides a brief summary of top leads and why they're qualified
Example prompt:
"Find companies hiring growth marketers and SDRs in the US this week. These are signals they need GTM help. We sell AI-powered GTM systems to Series A-C B2B SaaS companies with 20-200 employees."
The agent should NOT:
  • Do any outreach
  • Send any emails or messages
  • Contact anyone
The agent SHOULD:
  • Present cost estimate before running
  • Run the search (sheet is created automatically)
  • Share the Google Sheet link
  • Provide a brief summary of the top leads with reasoning
将该技能作为Agent使用时,典型流程如下:
  1. 用户描述其产品以及能够体现意向的岗位类型
  2. Agent运行
    --estimate-only
    并与用户确认成本
  3. Agent运行搜索(自动创建Google Sheet)
  4. Agent与用户分享Google Sheet链接
  5. Agent提供优质线索的简要汇总及资质判定依据
示例提示词:
"寻找本周在美国招聘增长营销人员和SDR的企业。这些信号表明他们需要GTM支持。我们为A-C轮、员工规模20-200人的B2B SaaS企业提供AI驱动的GTM系统。"
Agent不应:
  • 执行任何客户开发动作
  • 发送任何邮件或消息
  • 联系任何人员
Agent应该:
  • 运行前展示成本预估
  • 执行搜索(自动创建Sheet)
  • 分享Google Sheet链接
  • 提供优质线索的简要汇总及判定依据

Outreach Angle Templates

客户开发沟通角度模板

The script auto-assigns an angle based on job posting context:
"Accelerate while you hire" — Best when: posting is recent, role is junior/mid
They're looking for someone to do X. Your product can deliver X outcomes while they ramp the hire.
"Replace the hire" — Best when: small company, "first hire" signals, building from scratch
They want the output of a [role] but may not need a full-time person if they use your product.
"Multiply the hire" — Best when: company is clearly scaling, multiple related roles
When their new hire starts, your product makes them 10x more effective from day one.
脚本会根据招聘信息背景自动分配沟通角度:
"在招聘期间加速成果" — 适用场景:招聘信息发布时间较近,岗位为初级/中级
他们正在寻找能够完成X任务的人员。你的产品可以在他们完成招聘前,快速交付X成果。
"替代招聘需求" — 适用场景:小型企业,"首次招聘"信号,从零搭建团队
他们需要[岗位]的产出,但如果使用你的产品,可能无需全职招聘该岗位人员。
"放大招聘价值" — 适用场景:企业明显在扩张,有多个相关岗位招聘
当新员工入职后,你的产品可以从第一天起就让他们的工作效率提升10倍。

Troubleshooting

问题排查

"No jobs found"

"未找到招聘信息"

  • Try broader titles (e.g., "marketing" instead of "demand generation specialist")
  • Extend the time window:
    --posted-limit month
  • Remove location filter to search globally
  • 尝试更宽泛的岗位名称(例如用"marketing"替代"demand generation specialist")
  • 扩大时间范围:
    --posted-limit month
  • 移除地点限制,进行全球搜索

"Too many irrelevant results"

"无关结果过多"

  • Use
    --relevance-keywords
    to filter by title keywords
  • LinkedIn's search is fuzzy — the grouping and qualification step helps filter
  • 使用
    --relevance-keywords
    过滤真正相关的招聘信息
  • LinkedIn搜索为模糊匹配——分组和资质审核步骤会帮助过滤结果

"Google Sheet creation failed"

"Google Sheet创建失败"

  • Check that Rube MCP is accessible (the token may have expired)
  • Use
    --no-sheet --json --output results.json
    to save results without a sheet
  • You can create the sheet later with
    scripts/create_sheet_mcp.py
  • 检查Rube MCP是否可访问(令牌可能已过期)
  • 使用
    --no-sheet --json --output results.json
    保存结果而不创建Sheet
  • 你可以稍后使用
    scripts/create_sheet_mcp.py
    创建Sheet

High cost estimate

成本预估过高

  • Reduce
    --max-per-title
    (25 is usually enough)
  • Search fewer titles
  • Use
    --posted-limit 24h
    for a quick daily scan
  • 减少
    --max-per-title
    (通常25个足够)
  • 减少搜索的岗位数量
  • 使用
    --posted-limit 24h
    进行每日快速扫描

Links

相关链接