Creator Watchlist Skill
Manage a curated list of Twitter/X creators worth learning from. Batch scrape their content, import to a database, and extract patterns from high-performing posts.
Watchlist
Tier 1: Solopreneur / Indie Hacker (Priority)
| Username |
Followers |
Domain |
Tags |
thedankoe |
804K |
Personal growth / creator economy |
writing, philosophy |
levelsio |
795K |
Indie Hacker |
nomad, shipping, bootstrapped |
naval |
3M |
Philosophy / investing |
philosophy, wealth, startups |
thejustinwelsh |
560K |
Solopreneur |
linkedin, one-person-business |
AlexHormozi |
1M |
Business / fitness |
offers, sales |
ShaanVP |
458K |
Podcast / startups |
ideas, newsletter |
arvidkahl |
188K |
Bootstrapping |
audience, zero-to-sold |
tibo_maker |
178K |
Maker |
product, distribution |
tdinh_me |
176K |
Indie Hacker |
saas, products |
noahkagan |
170K |
Marketing |
growth, appsumo |
dannypostma |
167K |
AI Products |
maker, ai-tools |
yongfook |
147K |
SaaS |
bootstrapped, design |
nathanbarry |
146K |
Creator Economy |
newsletters, convertkit |
thepatwalls |
134K |
Startups |
interviews, stories |
csallen |
68K |
Community |
indie-hackers, founder |
Tier 2: Tech / AI Thought Leaders
| Username |
Followers |
Domain |
Tags |
karpathy |
1.6M |
AI education |
deep-learning, youtube |
lexfridman |
4.5M |
Podcast / AI |
interviews, research |
ylecun |
1M |
AI Research |
meta, deep-learning |
DrJimFan |
351K |
AI Research |
embodied-ai, nvidia |
lilianweng |
183K |
AI Research |
openai, blog |
mattpocockuk |
230K |
TypeScript |
tutorials, ts |
Tier 3: Writing / Content
| Username |
Followers |
Domain |
Tags |
SahilBloom |
1M+ |
Writing / investing |
threads, frameworks |
JamesClear |
2M+ |
Habits / productivity |
habits, atomic |
dickiebush |
400K |
Writing instruction |
writing, ship30 |
david_perell |
500K |
Writing |
essays |
Quick Commands
Scrape One Creator
# Using rnet_twitter.py (async Twitter GraphQL client)
python twitter_scraper.py <username> --limit 200
python db_import.py storage/twitter/<username>.json
Scrape Batch by Tier
# Tier 1: Solopreneur / Indie Hacker (Priority)
TIER1="thedankoe levelsio naval thejustinwelsh AlexHormozi ShaanVP arvidkahl tibo_maker tdinh_me noahkagan dannypostma yongfook nathanbarry thepatwalls csallen"
# Tier 2: Tech / AI
TIER2="karpathy lexfridman ylecun DrJimFan lilianweng"
# Tier 3: Writing
TIER3="SahilBloom JamesClear dickiebush david_perell"
for user in $TIER1; do
echo "=== Scraping @$user ==="
python twitter_scraper.py $user --limit 200
python db_import.py storage/twitter/$user.json
echo "Waiting 30s to avoid rate limit..."
sleep 30
done
Scraping Schedule
| Frequency |
Creators |
Why |
| Weekly |
thedankoe, naval, SahilBloom |
High volume, trending content |
| Bi-weekly |
AlexHormozi, JamesClear |
Medium volume |
| Monthly |
Others |
Reference / archive |
Database Schema
CREATE TABLE twitter_content (
id TEXT PRIMARY KEY,
username TEXT NOT NULL,
text TEXT,
created_at TIMESTAMPTZ,
likes INTEGER DEFAULT 0,
retweets INTEGER DEFAULT 0,
replies INTEGER DEFAULT 0,
views BIGINT,
url TEXT,
is_retweet BOOLEAN DEFAULT FALSE,
imported_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX idx_twitter_content_username ON twitter_content(username);
Analysis Queries
Top Performing Tweets by Likes
SELECT username, text, likes, retweets, url
FROM twitter_content
WHERE likes > 1000
ORDER BY likes DESC
LIMIT 20;
Engagement Rate by Creator
SELECT
username,
COUNT(*) as tweets,
AVG(likes) as avg_likes,
AVG(retweets) as avg_retweets,
MAX(likes) as top_tweet_likes
FROM twitter_content
GROUP BY username
ORDER BY avg_likes DESC;
Find Viral Threads (High Engagement)
SELECT username, text, likes, retweets, views, url
FROM twitter_content
WHERE likes > 5000
AND text NOT LIKE 'RT @%'
ORDER BY likes DESC;
Content Patterns (Time Analysis)
SELECT
EXTRACT(DOW FROM created_at) as day_of_week,
EXTRACT(HOUR FROM created_at) as hour,
AVG(likes) as avg_likes
FROM twitter_content
GROUP BY day_of_week, hour
ORDER BY avg_likes DESC
LIMIT 10;
Topic Frequency (Simple Text Search)
-- Find posts mentioning a topic
SELECT username, text, likes, url
FROM twitter_content
WHERE text ILIKE '%indie hacker%'
ORDER BY likes DESC
LIMIT 20;
Adding New Creators
To add a creator to the watchlist:
- Research first — Check follower count, content quality, posting frequency
- Test scrape —
python twitter_scraper.py <username> --limit 50
- Add to watchlist — Update the table in this file with tier, follower count, domain, tags
- Import —
python db_import.py storage/twitter/<username>.json
Criteria for Watchlist
- 100K+ followers (established audience)
- Consistent posting (at least weekly)
- High engagement rate (likes/followers > 0.1%)
- Content relevant to: creator economy, solopreneurship, personal growth, writing, AI, or technical building
Analysis Workflow
When user says "analyze [creator]":
- Query database for that creator's recent tweets
- Find top-performing content (sorted by likes)
- Identify patterns:
- Topics: What subjects get the most engagement?
- Formats: Threads vs single tweets vs lists
- Timing: What day/hour performs best?
- Hook types: Questions, contrarian takes, stats, stories
- Summarize insights with specific examples
Analysis output format:
## @[username] Content Analysis
### Top Performing Formats
1. [Format] — avg [X] likes
2. [Format] — avg [X] likes
### Highest Engagement Topics
1. [Topic] — [N] posts, avg [X] likes
2. [Topic] — [N] posts, avg [X] likes
### Best Posting Times
- [Day] at [Hour] — avg [X] likes
### Hook Patterns That Work
- [Hook type]: "[example]" ([X] likes)
- [Hook type]: "[example]" ([X] likes)
### Key Takeaways
- [Insight 1]
- [Insight 2]
- [Insight 3]
When user says "update creator database":
- Check which creators have not been scraped recently (> 7 days for Tier 1)
- Run scrape for each with 30-second delay between users
- Import each to database
- Report summary: creators updated, tweets imported, any errors
Current Status Tracking
Track scrape status in this format:
| Username |
Status |
Tweets |
Last Scraped |
| @thedankoe |
Done |
200 |
2026-01-27 |
| @levelsio |
Done |
200 |
2026-02-05 |
| @naval |
Done |
200 |
2026-02-05 |
| @thejustinwelsh |
Done |
200 |
2026-02-05 |
| @AlexHormozi |
Partial |
18 |
2026-02-05 (rate limited) |
| @karpathy |
Pending |
— |
— |
Status values:
Done — Full scrape completed
Partial — Rate limited, partial data
Pending — Not yet scraped
Error — Scrape failed, needs investigation
Rate Limiting Strategy
Twitter/X has aggressive rate limiting. Follow these rules:
- 30-second delay between user scrapes in batch mode
- Max 10 users per scraping session
- If rate limited mid-batch, wait 15 minutes before continuing
- Prefer scraping during off-peak hours (early morning or late night)
- Do not run two scraping sessions simultaneously
Cross-Creator Pattern Analysis
To find patterns across the entire watchlist:
-- What topics go viral across all creators?
SELECT
-- extract common words/phrases manually or with NLP
username,
text,
likes
FROM twitter_content
WHERE likes > 5000
AND is_retweet = FALSE
ORDER BY likes DESC
LIMIT 50;
-- Which creator has the most consistent engagement?
SELECT
username,
AVG(likes) as avg_likes,
STDDEV(likes) as stddev_likes,
AVG(likes) / NULLIF(STDDEV(likes), 0) as consistency_score
FROM twitter_content
GROUP BY username
ORDER BY consistency_score DESC;
Insight Applications
Use creator analysis to:
- Content inspiration — Find angles that work in your niche
- Hook formulas — Extract winning opening lines to adapt
- Posting timing — Learn optimal days/hours for your audience
- Topic validation — See which topics get traction before writing
- Competitive intelligence — Understand what resonates in your market
1---2name: creator-watch3description: Manage and analyze a curated watchlist of Twitter/X creators for learning and research. Tracks solopreneurs, thought leaders, AI researchers, and content creators. Scrape their content, import to a database, and analyze patterns. Triggers on "creator watchlist", "scrape creators", "update creator database", "who should I follow", "analyze creator", "track influencer", or any creator monitoring request.4---56# Creator Watchlist Skill78Manage a curated list of Twitter/X creators worth learning from. Batch scrape their content, import to a database, and extract patterns from high-performing posts.910---1112## Watchlist1314### Tier 1: Solopreneur / Indie Hacker (Priority)1516| Username | Followers | Domain | Tags |17|----------|-----------|--------|------|18| `thedankoe` | 804K | Personal growth / creator economy | writing, philosophy |19| `levelsio` | 795K | Indie Hacker | nomad, shipping, bootstrapped |20| `naval` | 3M | Philosophy / investing | philosophy, wealth, startups |21| `thejustinwelsh` | 560K | Solopreneur | linkedin, one-person-business |22| `AlexHormozi` | 1M | Business / fitness | offers, sales |23| `ShaanVP` | 458K | Podcast / startups | ideas, newsletter |24| `arvidkahl` | 188K | Bootstrapping | audience, zero-to-sold |25| `tibo_maker` | 178K | Maker | product, distribution |26| `tdinh_me` | 176K | Indie Hacker | saas, products |27| `noahkagan` | 170K | Marketing | growth, appsumo |28| `dannypostma` | 167K | AI Products | maker, ai-tools |29| `yongfook` | 147K | SaaS | bootstrapped, design |30| `nathanbarry` | 146K | Creator Economy | newsletters, convertkit |31| `thepatwalls` | 134K | Startups | interviews, stories |32| `csallen` | 68K | Community | indie-hackers, founder |3334### Tier 2: Tech / AI Thought Leaders3536| Username | Followers | Domain | Tags |37|----------|-----------|--------|------|38| `karpathy` | 1.6M | AI education | deep-learning, youtube |39| `lexfridman` | 4.5M | Podcast / AI | interviews, research |40| `ylecun` | 1M | AI Research | meta, deep-learning |41| `DrJimFan` | 351K | AI Research | embodied-ai, nvidia |42| `lilianweng` | 183K | AI Research | openai, blog |43| `mattpocockuk` | 230K | TypeScript | tutorials, ts |4445### Tier 3: Writing / Content4647| Username | Followers | Domain | Tags |48|----------|-----------|--------|------|49| `SahilBloom` | 1M+ | Writing / investing | threads, frameworks |50| `JamesClear` | 2M+ | Habits / productivity | habits, atomic |51| `dickiebush` | 400K | Writing instruction | writing, ship30 |52| `david_perell` | 500K | Writing | essays |5354---5556## Quick Commands5758### Scrape One Creator5960```bash61# Using rnet_twitter.py (async Twitter GraphQL client)62python twitter_scraper.py <username> --limit 20063python db_import.py storage/twitter/<username>.json64```6566### Scrape Batch by Tier6768```bash69# Tier 1: Solopreneur / Indie Hacker (Priority)70TIER1="thedankoe levelsio naval thejustinwelsh AlexHormozi ShaanVP arvidkahl tibo_maker tdinh_me noahkagan dannypostma yongfook nathanbarry thepatwalls csallen"7172# Tier 2: Tech / AI73TIER2="karpathy lexfridman ylecun DrJimFan lilianweng"7475# Tier 3: Writing76TIER3="SahilBloom JamesClear dickiebush david_perell"7778for user in $TIER1; do79 echo "=== Scraping @$user ==="80 python twitter_scraper.py $user --limit 20081 python db_import.py storage/twitter/$user.json82 echo "Waiting 30s to avoid rate limit..."83 sleep 3084done85```8687---8889## Scraping Schedule9091| Frequency | Creators | Why |92|-----------|----------|-----|93| Weekly | thedankoe, naval, SahilBloom | High volume, trending content |94| Bi-weekly | AlexHormozi, JamesClear | Medium volume |95| Monthly | Others | Reference / archive |9697---9899## Database Schema100101```sql102CREATE TABLE twitter_content (103 id TEXT PRIMARY KEY,104 username TEXT NOT NULL,105 text TEXT,106 created_at TIMESTAMPTZ,107 likes INTEGER DEFAULT 0,108 retweets INTEGER DEFAULT 0,109 replies INTEGER DEFAULT 0,110 views BIGINT,111 url TEXT,112 is_retweet BOOLEAN DEFAULT FALSE,113 imported_at TIMESTAMPTZ DEFAULT NOW()114);115116CREATE INDEX idx_twitter_content_username ON twitter_content(username);117```118119---120121## Analysis Queries122123### Top Performing Tweets by Likes124125```sql126SELECT username, text, likes, retweets, url127FROM twitter_content128WHERE likes > 1000129ORDER BY likes DESC130LIMIT 20;131```132133### Engagement Rate by Creator134135```sql136SELECT137 username,138 COUNT(*) as tweets,139 AVG(likes) as avg_likes,140 AVG(retweets) as avg_retweets,141 MAX(likes) as top_tweet_likes142FROM twitter_content143GROUP BY username144ORDER BY avg_likes DESC;145```146147### Find Viral Threads (High Engagement)148149```sql150SELECT username, text, likes, retweets, views, url151FROM twitter_content152WHERE likes > 5000153 AND text NOT LIKE 'RT @%'154ORDER BY likes DESC;155```156157### Content Patterns (Time Analysis)158159```sql160SELECT161 EXTRACT(DOW FROM created_at) as day_of_week,162 EXTRACT(HOUR FROM created_at) as hour,163 AVG(likes) as avg_likes164FROM twitter_content165GROUP BY day_of_week, hour166ORDER BY avg_likes DESC167LIMIT 10;168```169170### Topic Frequency (Simple Text Search)171172```sql173-- Find posts mentioning a topic174SELECT username, text, likes, url175FROM twitter_content176WHERE text ILIKE '%indie hacker%'177ORDER BY likes DESC178LIMIT 20;179```180181---182183## Adding New Creators184185To add a creator to the watchlist:1861871. **Research first** — Check follower count, content quality, posting frequency1882. **Test scrape** — `python twitter_scraper.py <username> --limit 50`1893. **Add to watchlist** — Update the table in this file with tier, follower count, domain, tags1904. **Import** — `python db_import.py storage/twitter/<username>.json`191192### Criteria for Watchlist193194- 100K+ followers (established audience)195- Consistent posting (at least weekly)196- High engagement rate (likes/followers > 0.1%)197- Content relevant to: creator economy, solopreneurship, personal growth, writing, AI, or technical building198199---200201## Analysis Workflow202203### When user says "analyze [creator]":2042051. Query database for that creator's recent tweets2062. Find top-performing content (sorted by likes)2073. Identify patterns:208 - **Topics**: What subjects get the most engagement?209 - **Formats**: Threads vs single tweets vs lists210 - **Timing**: What day/hour performs best?211 - **Hook types**: Questions, contrarian takes, stats, stories2124. Summarize insights with specific examples213214**Analysis output format:**215```216## @[username] Content Analysis217218### Top Performing Formats2191. [Format] — avg [X] likes2202. [Format] — avg [X] likes221222### Highest Engagement Topics2231. [Topic] — [N] posts, avg [X] likes2242. [Topic] — [N] posts, avg [X] likes225226### Best Posting Times227- [Day] at [Hour] — avg [X] likes228229### Hook Patterns That Work230- [Hook type]: "[example]" ([X] likes)231- [Hook type]: "[example]" ([X] likes)232233### Key Takeaways234- [Insight 1]235- [Insight 2]236- [Insight 3]237```238239### When user says "update creator database":2402411. Check which creators have not been scraped recently (> 7 days for Tier 1)2422. Run scrape for each with 30-second delay between users2433. Import each to database2444. Report summary: creators updated, tweets imported, any errors245246---247248## Current Status Tracking249250Track scrape status in this format:251252| Username | Status | Tweets | Last Scraped |253|----------|--------|--------|--------------|254| @thedankoe | Done | 200 | 2026-01-27 |255| @levelsio | Done | 200 | 2026-02-05 |256| @naval | Done | 200 | 2026-02-05 |257| @thejustinwelsh | Done | 200 | 2026-02-05 |258| @AlexHormozi | Partial | 18 | 2026-02-05 (rate limited) |259| @karpathy | Pending | — | — |260261**Status values:**262- `Done` — Full scrape completed263- `Partial` — Rate limited, partial data264- `Pending` — Not yet scraped265- `Error` — Scrape failed, needs investigation266267---268269## Rate Limiting Strategy270271Twitter/X has aggressive rate limiting. Follow these rules:272273- **30-second delay** between user scrapes in batch mode274- **Max 10 users** per scraping session275- If rate limited mid-batch, wait 15 minutes before continuing276- Prefer scraping during off-peak hours (early morning or late night)277- Do not run two scraping sessions simultaneously278279---280281## Cross-Creator Pattern Analysis282283To find patterns across the entire watchlist:284285```sql286-- What topics go viral across all creators?287SELECT288 -- extract common words/phrases manually or with NLP289 username,290 text,291 likes292FROM twitter_content293WHERE likes > 5000294 AND is_retweet = FALSE295ORDER BY likes DESC296LIMIT 50;297298-- Which creator has the most consistent engagement?299SELECT300 username,301 AVG(likes) as avg_likes,302 STDDEV(likes) as stddev_likes,303 AVG(likes) / NULLIF(STDDEV(likes), 0) as consistency_score304FROM twitter_content305GROUP BY username306ORDER BY consistency_score DESC;307```308309---310311## Insight Applications312313Use creator analysis to:3143151. **Content inspiration** — Find angles that work in your niche3162. **Hook formulas** — Extract winning opening lines to adapt3173. **Posting timing** — Learn optimal days/hours for your audience3184. **Topic validation** — See which topics get traction before writing3195. **Competitive intelligence** — Understand what resonates in your market