mcpField
A
analyzing-competitor-twitter-profile-content

analyzing-competitor-twitter-profile-content

github.com/apidojo-ioMarketing & growth1815 installsUpdated 24w ago
Repository

About analyzing-competitor-twitter-profile-content

A skill for analyzing competitors’ Twitter profiles by collecting tweets and ranking their competitive intelligence value using engagement, views, and media. It supports date ranges and filters for replies, images, and retweets.

Key features

  1. 01Scrape tweets by handle or profile URL
  2. 02Filter by date range
  3. 03Filter images, retweets, and replies
  4. 04Score engagement, views, and media
  5. 05Group tweets into three impact tiers

Use cases

  1. 01Compare multiple competitors’ tweet performance
  2. 02Find high-engagement or media-rich tweets
  3. 03Compile competitive intelligence for a date range

MCP support

Can call the apidojo~twitter-profile-scraper actor through Apify MCP’s call_actor tool.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill analyzing-competitor-twitter-profile-content

After installing, type/analyzing-competitor-twitter-profile-contentin Claude Code to confirm it loaded.

Details

From the project README

Analyzing Competitor Twitter Profile Content


Inputs

ParameterTypeRequiredDefaultNotes
startUrlsarrayOptional[]Twitter profile URLs (x.com or twitter.com formats)
twitterHandlesarrayOptional[]Twitter usernames (without @)
startstringOptional—Tweets after this date (YYYY-MM-DD or YYYY-MM-DD_HH:MM:SS_UTC)
endstringOptional—Tweets before this date (YYYY-MM-DD or YYYY-MM-DD_HH:MM:SS_UTC)
includeNativeRetweetsbooleanOptionalfalseInclude native retweets in results
onlyImagesbooleanOptionalfalseOnly tweets containing images
getRepliesbooleanOptionalfalseInclude tweet replies
minReplyCountnumberOptional—Minimum reply count threshold
getAboutDatabooleanOptionalfalseFetch full profile about data
maxItemsnumberOptionalUnlimitedMaximum tweets to return
customMapFunctionstringOptional—JavaScript function to transform each output object

How to Run

Using run_actor.js (recommended)
# Quick answer (table)
node scripts/run_actor.js --actor "apidojo~twitter-profile-scraper" --input '{"twitterHandles": ["competitor_handle"], "maxItems": 100}'

# Save as CSV
node scripts/run_actor.js --actor "apidojo~twitter-profile-scraper" --input '{"twitterHandles": ["competitor_handle"], "maxItems": 100}' --output results.csv --format csv

# Save as JSON
node scripts/run_actor.js --actor "apidojo~twitter-profile-scraper" --input '{"twitterHandles": ["competitor_handle"], "maxItems": 100}' --output results.json --format json
REST API fallback
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}'

If Apify MCP is available: Use the Apify MCP call_actor tool with actor apidojo~twitter-profile-scraper and the input above.


Scoring & Ranking

Score each tweet for competitive intelligence value:

  • engagement_total = likeCount + retweetCount + replyCount + quoteCount → normalized 0-1 (cap at 10K), weight 0.50
  • viewCount → normalized 0-1 (cap at 500K), weight 0.30
  • has_media (contains image or video) → 0 or 1, weight 0.20
score = 0.50 * min(engagement_total / 10000, 1.0) + 0.30 * min(viewCount / 500000, 1.0) + 0.20 * int(has_media)

Classification

ScoreTierLabel
≥ 0.70AHIGH_IMPACT_TWEET
0.40–0.69BNOTABLE_TWEET
< 0.40CLOW_ENGAGEMENT

Edge Cases

  • Private account: Returns 0 tweets. Check if competitor locked their account.
  • Minimum 40 tweets: First 40 are included at base pricing. For more, cost is $0.0004/tweet.
  • Retweets included: Results include RTs. Filter by checking if text starts with "RT @".
  • Date range + few results: Some accounts tweet rarely — widen date range or remove filter.
  • Multiple competitors: Run for each handle separately and combine datasets.

Comments

Markdown supported