npx skills add ...
npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-twitter-profile-content
Extracts and analyzes tweet history from competitor or brand Twitter profiles using apidojo's Twitter Profile Scraper on Apify. Triggers when the user asks to: get all tweets from a competitor's Twitter account, analyze what a company posts on Twitter, audit a brand's tweet history, track what topics a competitor covers on X, compare Twitter content strategy between brands, extract posts from a company's Twitter timeline, or monitor a competitor's messaging and announcements on Twitter. Returns tweet text, engagement metrics (likes, retweets, replies, views), and author data. Ideal for competitive intelligence teams, PR analysts, and brand strategists.
npx skills add apidojo-io/apidojo-skills --skill analyzing-competitor-twitter-profile-content
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls | array | Optional | [] | Twitter profile URLs (x.com or twitter.com formats) |
twitterHandles | array | Optional | [] | Twitter usernames (without @) |
start | string | Optional | — | Tweets after this date (YYYY-MM-DD or YYYY-MM-DD_HH:MM:SS_UTC) |
end | string | Optional | — | Tweets before this date (YYYY-MM-DD or YYYY-MM-DD_HH:MM:SS_UTC) |
includeNativeRetweets | boolean | Optional | false | Include native retweets in results |
onlyImages | boolean | Optional | false | Only tweets containing images |
getReplies | boolean | Optional | false | Include tweet replies |
minReplyCount | number | Optional | — | Minimum reply count threshold |
getAboutData | boolean | Optional | false | Fetch full profile about data |
maxItems | number | Optional | Unlimited | Maximum tweets to return |
customMapFunction | string | Optional | — | JavaScript function to transform each output object |
If Apify MCP is available:
Use the Apify MCP call_actor tool with actor apidojo~twitter-profile-scraper and the input above.
Score each tweet for competitive intelligence value:
engagement_total = likeCount + retweetCount + replyCount + quoteCount → normalized 0-1 (cap at 10K), weight 0.50viewCount → normalized 0-1 (cap at 500K), weight 0.30has_media (contains image or video) → 0 or 1, weight 0.20| Score | Tier | Label |
|---|---|---|
| ≥ 0.70 | A | HIGH_IMPACT_TWEET |
| 0.40–0.69 | B | NOTABLE_TWEET |
| < 0.40 | C | LOW_ENGAGEMENT |
curl -X POST "https://api.apify.com/v2/acts/apidojo~twitter-profile-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"twitterHandles": ["competitor_handle"], "maxItems": 100}'score = 0.50 * min(engagement_total / 10000, 1.0) + 0.30 * min(viewCount / 500000, 1.0) + 0.20 * int(has_media)