monitoring-twitter-for-competitor-job-posts

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Monitoring Twitter For Competitor Job Posts

监控Twitter上的竞品职位发布

Executes monitoring twitter for competitor job posts using apidojo scrapers. Part of the apidojo intelligence skills library.
借助apidojo的抓取工具执行Twitter竞品职位发布监控,属于apidojo情报技能库的一部分。

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: Define parameters
- [ ] Step 2: Run tweet-scraper
- [ ] Step 3: Filter and classify results
- [ ] Step 4: Score by quality and relevance
- [ ] Step 5: Deliver output
进度:
- [ ] 步骤1:定义参数
- [ ] 步骤2:运行tweet-scraper
- [ ] 步骤3:过滤并分类结果
- [ ] 步骤4:按质量和相关性评分
- [ ] 步骤5:交付输出

Step 2: Run the Actor

步骤2:运行Actor

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": ["[COMPETITOR] hiring", "[COMPETITOR] join our team", "[COMPETITOR] job opening"], "maxItems": 100 }

**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": ["[COMPETITOR] hiring", "[COMPETITOR] join our team", "[COMPETITOR] job opening"], "maxItems": 100}'
Wait for
SUCCEEDED
. Fetch dataset:
bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"
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": ["[COMPETITOR] hiring", "[COMPETITOR] join our team", "[COMPETITOR] job opening"], "maxItems": 100 }

**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": ["[COMPETITOR] hiring", "[COMPETITOR] join our team", "[COMPETITOR] job opening"], "maxItems": 100}'
等待状态变为
SUCCEEDED
。获取数据集:
bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"

Step 3: Classify Results

步骤3:分类结果

classification: AGGRESSIVE_GROWTH (> 5 roles/month) | STEADY_GROWTH (2-5 roles/month) | OPPORTUNISTIC (1-2 roles) | REPLACEMENT_ONLY (role title identical to recent departure signal)
分类: AGGRESSIVE_GROWTH(每月发布超5个岗位)| STEADY_GROWTH(每月2-5个岗位)| OPPORTUNISTIC(1-2个岗位)| REPLACEMENT_ONLY(岗位名称与近期离职信号一致)

Step 4: Score Each Result

步骤4:为每个结果评分

score = growth_signal_score = (roles_posted_in_30_days / 5, max 1) * 0.50 + (engineering_role ? 1.2 : 1) * department_weight * 0.30 + (urgency_language ? 1 : 0.5) * 0.20
score = growth_signal_score = (近30天发布岗位数 / 5,最大值为1) * 0.50 + (若为技术岗位则乘1.2否则乘1) * 部门权重 * 0.30 + (若包含紧急表述则乘1否则乘0.5) * 0.20

Step 5: Edge Cases

步骤5:边缘情况

  • Competitor may post jobs across many channels but only announce key roles on Twitter — Twitter hiring posts often signal strategic priorities, not routine backfills
Additional fallbacks:
  • < 20 results: Broaden search terms; remove secondary filters
  • No results: Verify the search terms are correct; try alternate phrasings
  • Data quality issues: Remove entries with missing key fields; note count in output
  • 竞品可能在多个渠道发布职位,但仅在Twitter上宣布关键岗位——Twitter上的招聘推文通常代表战略优先级,而非常规补位
其他备选方案:
  • 结果少于20条:扩大搜索词范围;移除次要过滤条件
  • 无结果:验证搜索词是否正确;尝试其他表述方式
  • 数据质量问题:移除缺少关键字段的条目;在输出中注明数量

Output Format

输出格式

undefined
undefined

Monitoring Twitter For Competitor Job Posts

监控Twitter上的竞品职位发布

Results: [N] | Date: [DATE]
#[Key Field][Metric 1][Metric 2][Classification][Score]
1[value][value][value][type][0.XX]
结果数量: [N] | 日期: [DATE]
序号[关键字段][指标1][指标2][分类][评分]
1[值][值][值][类型][0.XX]

Summary

总结

Top result: [description] Key finding: [insight]
undefined
最佳结果: [描述] 关键发现: [洞察]
undefined

Troubleshooting

故障排除

Too few results: Broaden the primary search term; remove restrictive filters. Low quality results: Apply minimum score threshold (≥ 0.50) to filter noise. Actor fails to run: Verify API key; check actor status at apify.com/apidojo.
结果过少:扩大主搜索词范围;移除限制性过滤条件。 结果质量低:应用最低评分阈值(≥ 0.50)过滤无效信息。 Actor运行失败:验证API密钥;在apify.com/apidojo查看Actor状态。