tracking-hiring-signals-from-company-tweets

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Tracking Hiring Signals from Company Tweets

跟踪企业推文中的招聘信号

Monitors company Twitter accounts for hiring announcements and growth signals. Companies tweet about openings before jobs.page or LinkedIn posts go live — Twitter is an early signal channel.
监控企业Twitter账号的招聘公告与增长信号。企业会在Jobs.page或LinkedIn发布职位之前先在Twitter推文——Twitter是一个早期信号渠道。

Prerequisites

前提条件

  • APIFY_TOKEN
    environment variable set
  • Optional: Apify MCP server installed
  • 已设置
    APIFY_TOKEN
    环境变量
  • 可选:已安装Apify MCP服务器

Inputs

输入参数

ParameterTypeRequiredDefaultNotes
searchTerms
array
[]
Twitter advanced search queries (e.g.
["#AI lang:en", "from:NASA"]
)
sort
stringOptional
Top
Sort order:
Latest
,
Top
, or
Latest+Top
tweetLanguage
stringOptionalISO 639-1 language code (e.g.
en
)
maxItems
numberOptionalUnlimitedMaximum tweets to return
onlyVerifiedUsers
booleanOptional
false
Only tweets from verified users
onlyTwitterBlue
booleanOptional
false
Only Twitter Blue subscribers
onlyImage
booleanOptional
false
Only tweets with images
onlyVideo
booleanOptional
false
Only tweets with videos
onlyQuote
booleanOptional
false
Only quote tweets
author
stringOptionalFilter to a specific author handle
inReplyTo
stringOptionalTweets replying to a specific handle
mentioning
stringOptionalTweets mentioning a specific handle
geotaggedNear
stringOptionalTweets near a location
withinRadius
stringOptionalRadius around geotaggedNear
geocode
stringOptionalLat/lng + radius string
placeObjectId
stringOptionalTweets tagged with a place
minimumRetweets
numberOptionalMinimum retweet count
minimumFavorites
numberOptionalMinimum like count
minimumReplies
numberOptionalMinimum reply count
start
stringOptionalTweets after this date (YYYY-MM-DD)
end
stringOptionalTweets before this date (YYYY-MM-DD)
includeSearchTerms
booleanOptional
false
Add the matched search term to each tweet
customMapFunction
stringOptionalJavaScript function to transform each output object
参数类型是否必填默认值说明
searchTerms
数组
[]
Twitter高级搜索查询语句(例如:
["#AI lang:en", "from:NASA"]
sort
字符串可选
Top
排序方式:
Latest
Top
Latest+Top
tweetLanguage
字符串可选ISO 639-1语言代码(例如:
en
maxItems
数字可选无限制返回的最大推文数量
onlyVerifiedUsers
布尔值可选
false
仅返回已认证用户的推文
onlyTwitterBlue
布尔值可选
false
仅返回Twitter Blue订阅用户的推文
onlyImage
布尔值可选
false
仅返回带图片的推文
onlyVideo
布尔值可选
false
仅返回带视频的推文
onlyQuote
布尔值可选
false
仅返回引用推文
author
字符串可选筛选特定作者账号
inReplyTo
字符串可选筛选回复特定账号的推文
mentioning
字符串可选筛选提及特定账号的推文
geotaggedNear
字符串可选筛选特定地点附近的推文
withinRadius
字符串可选
geotaggedNear
对应的半径范围
geocode
字符串可选纬度/经度 + 半径字符串
placeObjectId
字符串可选筛选标记特定地点的推文
minimumRetweets
数字可选最小转发量
minimumFavorites
数字可选最小点赞量
minimumReplies
数字可选最小回复量
start
字符串可选筛选此日期之后的推文(格式:YYYY-MM-DD)
end
字符串可选筛选此日期之前的推文(格式:YYYY-MM-DD)
includeSearchTerms
布尔值可选
false
为每条推文添加匹配的搜索词
customMapFunction
字符串可选用于转换输出对象的JavaScript函数

Workflow

工作流程

Progress:
- [ ] Step 1: Search for hiring-signal tweets in sector
- [ ] Step 2: (Optional) Scrape specific company accounts
- [ ] Step 3: Extract role and team info from tweet text
- [ ] Step 4: Score growth signal strength
- [ ] Step 5: Deliver hiring intelligence report
进度:
- [ ] 步骤1:搜索特定领域内的招聘信号推文
- [ ] 步骤2:(可选)抓取特定企业账号的内容
- [ ] 步骤3:从推文中提取岗位与团队信息
- [ ] 步骤4:为增长信号评分
- [ ] 步骤5:生成招聘情报报告

Step 1: Search Hiring Signals

步骤1:搜索招聘信号

Recommended — run_actor.js (handles waiting, output, and file saving automatically):
bash
undefined
推荐方式 —— run_actor.js(自动处理等待、输出与文件保存):
bash
undefined

Quick answer (prints table to chat)

快速输出(在聊天窗口打印表格)

node scripts/run_actor.js
--actor "apidojo~tweet-scraper"
--input '{"param": "value"}'
node scripts/run_actor.js
--actor "apidojo~tweet-scraper"
--input '{"param": "value"}'

Save as CSV

保存为CSV格式

node scripts/run_actor.js
--actor "apidojo~tweet-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
node scripts/run_actor.js
--actor "apidojo~tweet-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv

Save as JSON

保存为JSON格式

node scripts/run_actor.js
--actor "apidojo~tweet-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> `APIFY_TOKEN` must be set in environment or `.env` file.

**If Apify MCP is available:**
Tool: apify:run-actor Actor: "apidojo~tweet-scraper" Input: { "searchTerms": ["we're hiring [SECTOR]", "join our team [SECTOR]", "[ROLE] hiring [SECTOR]"], "maxItems": 300 }

**REST API fallback:**
```bash
curl -X POST   "https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{
    "searchTerms": ["we are hiring fintech", "join our team SaaS startup", "software engineer hiring"],
    "maxItems": 300
  }'
node scripts/run_actor.js
--actor "apidojo~tweet-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> 必须在环境变量或`.env`文件中设置`APIFY_TOKEN`。

**若Apify MCP可用:**
工具: apify:run-actor Actor: "apidojo~tweet-scraper" 输入: { "searchTerms": ["we're hiring [SECTOR]", "join our team [SECTOR]", "[ROLE] hiring [SECTOR]"], "maxItems": 300 }

**REST API备选方案:**
```bash
curl -X POST   "https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{
    "searchTerms": ["we are hiring fintech", "join our team SaaS startup", "software engineer hiring"],
    "maxItems": 300
  }'

Step 2: Extract Role Signals from Tweet Text

步骤2:从推文中提取岗位信号

role_mentioned = extract noun phrases after "hiring a/an", "looking for a/an", "seeking a"
team_mentioned = extract from: "engineering team", "sales team", "marketing", "product team"
urgency = "immediately", "ASAP", "urgent" → HIGH; "growing team" → MEDIUM; general → LOW
role_mentioned = 提取"hiring a/an"、"looking for a/an"、"seeking a"后的名词短语
team_mentioned = 从以下内容提取:"engineering team"、"sales team"、"marketing"、"product team"
urgency = 出现"immediately"、"ASAP"、"urgent" → 高优先级;出现"growing team" → 中优先级;通用表述 → 低优先级

Step 3: Growth Signal Score

步骤3:增长信号评分

hiring_signal_score = (is_confirmed_company_account ? 1 : 0.5) * 0.30
                    + (role_is_specific ? 1 : 0.5) * 0.25
                    + (post_is_recent: ≤7 days = 1, 8-14 = 0.7, 15-30 = 0.4) * 0.25
                    + (link_to_job_page ? 1 : 0) * 0.20
Growth tier: Multiple hiring tweets in 30 days = HIGH_GROWTH; 1-2 = STEADY_HIRE; no link = SIGNAL_ONLY
hiring_signal_score = (是否为已认证企业账号 ? 1 : 0.5) * 0.30
                    + (岗位是否具体 ? 1 : 0.5) * 0.25
                    + (推文发布时间: ≤7天 = 1, 8-14天 = 0.7, 15-30天 = 0.4) * 0.25
                    + (是否包含职位页面链接 ? 1 : 0) * 0.20
增长等级: 30天内发布多条招聘推文 = 高增长;1-2条 = 稳定招聘;无链接 = 仅信号

Step 4: Edge Cases

步骤4:边缘情况处理

  • Retweets from employee accounts: If a company employee retweets a job post, keep — it's still a valid signal; note it's not the company's official account
  • Job boards posting on behalf of company: Filter out accounts named "JobsAt[Company]", staffing agencies, or accounts posting > 10 hiring tweets/day (aggregators)
  • Role extraction fails: Note the tweet verbatim and mark
    role = "unspecified"
    — still a growth signal
  • Same company posts 5 roles: Deduplicate by
    author.username
    ; count unique companies, not unique tweets
  • 员工账号转发的招聘信息:若企业员工转发职位发布内容,保留该信号——仍为有效信息;需标注非企业官方账号
  • 代发招聘信息的求职平台:过滤名为"JobsAt[Company]"的账号、人力中介或每日发布超过10条招聘推文的账号(聚合平台)
  • 岗位提取失败:保留推文原文并标记
    role = "unspecified"
    ——仍视为增长信号
  • 同一企业发布5个岗位:按
    author.username
    去重;统计独特企业数量,而非独特推文数量

Output Format

输出格式

undefined
undefined

Hiring Signal Intelligence: [SECTOR/ROLE]

招聘信号情报: [领域/岗位]

Tweets analyzed: [N] | Companies with hiring signals: [N] | Date: [DATE]
分析推文数量: [N] | 存在招聘信号的企业数量: [N] | 日期: [DATE]

High-Growth Companies (Multiple Roles Posted)

高增长企业(发布多个岗位)

Company@HandleRoles MentionedTeamsPostsLink to JobsScore
[name]@[handle][role list][eng/mktg][N][Yes/No][0.XX]
企业@账号提及岗位团队发布数量职位链接评分
[名称]@[账号][岗位列表][技术/营销][N][是/否][0.XX]

Single Hire Signals

单次招聘信号

Company@HandleRoleTeamTweet DateJob Link
企业@账号岗位团队推文日期职位链接

Role Distribution Across All Companies

全企业岗位分布

Role Category# Companies HiringUrgency
Engineering[N][High/Med]
Marketing[N]
Sales[N]
undefined
岗位类别招聘企业数量紧急程度
技术[N][高/中]
营销[N]
销售[N]
undefined

Troubleshooting

故障排除

Results dominated by job boards: Add negative terms to search:
-jobs -jobboard -staffing -recruiting
Sector too broad: Narrow with a sub-sector or specific stage: "Series A fintech" instead of "fintech". Job links are broken/expired: Hiring tweets are posted in real-time; check within 48h for best link validity.
结果被求职平台主导:在搜索词中添加排除项:
-jobs -jobboard -staffing -recruiting
领域范围过宽:缩小至细分领域或特定阶段:例如用"A轮金融科技"代替"金融科技" 职位链接失效/过期:招聘推文为实时发布;建议在48小时内查看以获得最佳链接有效性。