Skip to content
cccskills
FreePublished on GitHub

social-media-account-audit

Audit social media accounts (TikTok, IG, etc.): scrape profiles, calculate engagement metrics, diagnose performance drops, interpret analytics screenshots.

The English summary is being prepared. Showing the original description.

Works withInstagramTikTok

Run score Not tested

See how to install

Files included (3)

  • SKILL.md8.2 KB
  • references/tiktok-analytics-terms-id.md3.0 KB
  • references/tiktok-profile-fields.md3.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Social Media Account Audit

When to Use

  • User shares analytics screenshots (LIVE stats, dashboard data, engagement metrics)
  • User asks "why is my account/LIVE performing badly?"
  • User shares a TikTok/Instagram profile link for review
  • User wants to compare past vs current performance
  • User asks for growth strategy based on data

Workflow Overview

1. Scrape profile data (if link provided)
2. Extract metrics from screenshots (if provided)
3. Calculate health ratios
4. Diagnose root causes
5. Deliver actionable recommendations

Step 1: Scrape TikTok Profile Data

Fetch HTML

curl -s -L -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
  "https://www.tiktok.com/@USERNAME" -o /tmp/tiktok_profile.html

Extract Basic Stats (grep approach — fast)

grep -oP '"uniqueId":"[^"]*"|"nickname":"[^"]*"|"signature":"[^"]*"|"followerCount":\d+|"followingCount":\d+|"heartCount":\d+|"videoCount":\d+|"verified":[a-z]+' /tmp/tiktok_profile.html

Extract Full Profile (Python — comprehensive)

import json, re
from datetime import datetime

with open('/tmp/tiktok_profile.html') as f:
    html = f.read()

match = re.search(
    r'<script id="__UNIVERSAL_DATA_FOR_REHYDRATION__"[^>]*>(.*?)</script>',
    html, re.DOTALL
)
data = json.loads(match.group(1))
scope = data['__DEFAULT_SCOPE__']
user_info = scope['webapp.user-detail']['userInfo']
user = user_info['user']
stats = user_info['stats']

# Key fields
print(f"Username: @{user['uniqueId']}")
print(f"Bio: {user['signature']}")
print(f"Created: {datetime.fromtimestamp(int(user['createTime']))}")
print(f"Category: {user.get('commerceUserInfo', {}).get('category', 'N/A')}")
print(f"Commerce User: {user.get('commerceUserInfo', {}).get('commerceUser', False)}")
print(f"TT Seller: {user.get('ttSeller', False)}")
print(f"Verified: {user['verified']}")
print(f"Followers: {stats['followerCount']:,}")
print(f"Following: {stats['followingCount']:,}")
print(f"Likes: {stats['heartCount']:,}")
print(f"Videos: {stats['videoCount']}")

Additional Metadata to Extract

# Commerce info, seller status, room ID, account settings
grep -oP '"commerceUserInfo":\{[^}]*\}|"category":"[^"]*"|"ttSeller":[a-z]+|"roomId":"[^"]*"|"privateAccount":[a-z]+|"nickNameModifyTime":\d+|"openFavorite":[a-z]+' /tmp/tiktok_profile.html

Get secUid (needed for API calls)

grep -oP '"secUid":"[^"]*"' /tmp/tiktok_profile.html | head -1

Step 2: Calculate Health Metrics

MetricFormulaHealthy RangeWarning
Engagement Rate(avg_likes / followers) × 1004-8%<3% is low
Likes-to-Follower Ratiototal_likes / followers10-20+<5 = ghost followers
Follower:Following Ratiofollowers / following50:1+ for brands<10:1 = follow-for-follow
Video Outputvideos / account_age_months30-90/month (1-3/day)<10/month is too low
LIVE Retention Rateavg_viewers / total_viewers × 1005-15%<1% = bounce problem
LIVE PCU RatioPCU / avg_viewers2-4x>10x = spike then crash

Step 3: Interpret LIVE Analytics Screenshots

Key Metrics to Look For (TikTok LIVE)

  • Rata-Rata Penonton = Average concurrent viewers
  • PCU = Peak Concurrent Users
  • Penonton = Total unique viewers
  • GMV = Gross Merchandise Value (sales)
  • CTR LIVE = Click-through rate on products
  • Barang terjual = Items sold

Trend Graph Interpretation

  • Menonton (red) = Currently watching — should stay stable or rise
  • Masuk (blue) = Entering — inflow rate
  • Keluar (green) = Leaving — outflow rate
  • Healthy pattern: Masuk > Keluar, Menonton rises over time
  • Unhealthy pattern: Keluar > Masuk early, Menonton drops and flatlines

Traffic Sources (Sumber Penonton)

  • Feed Untuk Anda (FYP) — Algorithmic reach (usually 60-90%)
  • Tombol LIVE — Followers clicking LIVE notification
  • Tab Shop — Discovery via TikTok Shop tab
  • Lainnya — Other sources (search, profile visits, shares)

Buyer Profile (Profil Pembeli)

  • Jenis kelamin = Gender split
  • Usia = Age demographics
  • Pengikut = Follower vs non-follower buyers

Step 4: Common Diagnoses

Pattern: High Total Viewers, Low Average (Bounce Problem)

  • Cause: Hook is weak — viewers enter and leave within seconds
  • Evidence: Keluar line tracks Masuk line closely; Menonton stays flat/low
  • Fix: Stronger first-3-second hook, engaging title, immediate interaction

Pattern: FYP Traffic High % but Low Absolute Numbers

  • Cause: Algorithm has "cooled" the account — still sending FYP traffic but to fewer people
  • Evidence: FYP % similar to before but total viewers way down
  • Fix: Rebuild algorithm trust via consistent posting + high-retention content

Pattern: Performance Cliff (Was Good, Now Bad)

  • Causes (check in order):
    1. Posting frequency dropped → algorithm deprioritized
    2. Content/niche changed → audience mismatch
    3. Community guidelines violation/warning → shadow restriction
    4. Ghost followers accumulated → engagement rate tanked
    5. Increased competition in niche

Pattern: Commerce User but Not TT Seller

  • Impact: Doesn't get seller-tier algorithm priority for LIVE shopping
  • Fix: Register as official TikTok Shop seller if eligible

Step 5: Recommendation Framework

Bio Optimization Template

[Emoji] [What you sell — specific]
[Emoji] LIVE [Schedule — day + time]
[Emoji] [Value prop / price hook]

Example:

👗 Fashion Wanita Murah & Berkualitas
🔴 LIVE Setiap Hari Jam 19:00-21:00
💰 Harga Mulai 25rb!

Recovery Timeline

PhaseDurationFocus
FoundationWeek 1-2Fix bio, clean following list, post 2-3 videos/day
Warm-upWeek 3-4Daily LIVE at consistent time, video teasers before LIVE
ScaleMonth 2+TikTok Promote, collaborations, flash sales during LIVE

LIVE Retention Tactics

  • Giveaway/games every 15-20 minutes
  • Greet every viewer by name
  • "Surprise coming in 5 minutes" hooks
  • Flash sales with countdown timers
  • Pin products and mention them regularly

Pitfalls

  1. TikTok anti-bot detection: curl fetches may return empty itemList (videos). The profile metadata still comes through in __UNIVERSAL_DATA_FOR_REHYDRATION__. Video-level data requires a real browser or authenticated API.
  2. Bot classification: TikTok sets "botType": "others" and "needFix": true on bot-detected requests. Profile stats are still accurate; video lists are withheld.
  3. API endpoints blocked: Direct API calls like /api/post/item_list/ return empty responses without proper cookies/tokens. Don't waste time on these.
  4. Indonesian language: TikTok Shop analytics in Indonesia use Bahasa. Key terms: Penonton=Viewers, Keterlibatan=Engagement, Jangkauan=Reach, Konversi=Conversion, Barang terjual=Items sold, Pesanan=Orders.
  5. Timestamp conversion: createTime and nickNameModifyTime are Unix timestamps. Use datetime.fromtimestamp().
  6. Screenshot analysis: When user sends analytics screenshots, the image description provides structured data. Cross-reference multiple screenshots to build the full picture.

Output Format

Present audit results as:

  1. Data table — Profile stats with health indicators (✅/⚠️/🔴)
  2. Ratio analysis — Calculated metrics vs benchmarks
  3. Root cause chain — Visual cause→effect flow showing why performance dropped
  4. Prioritized action plan — Phased recommendations (Foundation → Warm-up → Scale)

References

  • references/tiktok-profile-fields.md — All extractable fields from TikTok profile HTML
  • references/tiktok-analytics-terms-id.md — Indonesian↔English analytics terminology

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Drives development with tests. Use when implementing any logic, fixing any bug, or changing any behavior. Use when you need to prove that code works, when a bug report arrives, or when you're about to modify existing functionality.

The English summary is being prepared. Showing the original description.

kevinnft/ai-agent-skills14Updated Aug 1, 2026

Airtable REST API via curl. Records CRUD, filters, upserts.

The English summary is being prepared. Showing the original description.

kevinnft/ai-agent-skills14Updated Aug 1, 2026

Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend.

The English summary is being prepared. Showing the original description.

kevinnft/ai-agent-skills14Updated Aug 1, 2026

Build monitoring bots that poll APIs and send notifications on state changes (new listings, price alerts, status updates)

The English summary is being prepared. Showing the original description.

kevinnft/ai-agent-skills14Updated Aug 1, 2026

REST/GraphQL API testing with automated validation — test endpoints, validate responses, check status codes, and ensure API contracts

The English summary is being prepared. Showing the original description.

kevinnft/ai-agent-skills14Updated Aug 1, 2026

Manage Apple Notes via memo CLI: create, search, edit.

The English summary is being prepared. Showing the original description.

kevinnft/ai-agent-skills14Updated Aug 1, 2026

See all skills by kevinnft

Report a problem with this skill