Open-source YouTube creator outreach — from finding creators to closing deals.
100% local. Your data, emails, and credentials never leave your machine. Nothing is sent to any server, ever. No API keys, no cloud services, no tracking. Just curl + python3.
- Scan your brand's website → auto-detect product category & niche
- Search YouTube for creators in matching niches
- Extract channel stats: subscribers, views, emails, descriptions
- Discover related channels via YouTube's recommendation algorithm
- Score every channel against your brand's audience profile (0-100)
- Email the best matches — personalized, mentions their actual videos
- Follow up automatically — day 3 and day 8 if no reply
- Negotiate autonomously — reads replies, counters, closes deals
- All data stays on your device — CSVs, emails, credentials, campaign state
- Gmail credentials stored locally (
~/.config/fameclaw/gmail.json, mode 600) - No external APIs, no cloud services, no telemetry, no tracking
- Emails sent directly from your mailbox via SMTP — no middleman
- Works with Gmail, Outlook, iCloud, Yahoo, Zoho, Fastmail, or any SMTP server
- Open source — read every line of code yourself
bash scripts/extract_channel_data.sh "https://youtube.com/@handle" output.csvbash scripts/prospect.sh \
--queries "tiktok shop tutorial" "dropshipping beginner" \
--target 100 \
--output channels.csv \
--max-subs 100000# 1. Scan brand site
bash scripts/onboard.sh --brand "MyBrand" --url "https://mybrand.com" --output scan.json
# 2. Create audience profile (edit the generated template)
# Sets target categories, demographics, authority preferences
# 3. Prospect
bash scripts/prospect.sh --config config.json
# 4. Score & rank
python3 scripts/score_channels.py --csv channels.csv --profile audience.json --output scored.csvFameClaw scores creators using three dimensions:
| Dimension | Points | What It Checks |
|---|---|---|
| Category match | 0-50 | Does the channel's content match your niche? |
| Demographic match | 0-30 | Does the creator match your target customer? |
| Authority match | 0-20 | Does the creator have professional credibility? |
14 content categories: Beauty & Skincare, Fitness & Health, Tech & Gadgets, Fashion & Lifestyle, Food & Cooking, E-commerce & Business, TikTok & Social Media, Finance & Investing, Gaming, Education & Tutorial, Home & DIY, Parenting & Family, Pets & Animals, Travel & Outdoor
Match types:
demographic— creator looks like your buyer (age, gender, lifestyle match)authority— creator has credibility (doctor, coach, certified expert, founder)demographic+authority— both signals present
Send personalized emails to scraped creators using Google's official Workspace CLI.
# 1. Google Account → Security → 2-Step Verification → ON
# 2. Google Account → Security → App passwords → Generate
# 3. Create gmail_creds.json:
echo '{"email": "you@gmail.com", "app_password": "xxxx xxxx xxxx xxxx", "display_name": "Your Name"}' > gmail_creds.json
# 4. Test connection
python3 scripts/gmail.py test --creds gmail_creds.json{
"brand": "MyBrand",
"website": "https://mybrand.com",
"sender_name": "Alex",
"gmail_creds": "gmail_creds.json",
"current_partnerships": ["@CreatorA", "@CreatorB", "@CreatorC"],
"rate": 30,
"min_score": 25,
"max_per_run": 50
}# Send first emails (auto-fetches recent videos per creator)
python3 scripts/outreach.py send --csv scored.csv --config outreach.json --dry-run
python3 scripts/outreach.py send --csv scored.csv --config outreach.json
# Check for replies → moves responders to NEGOTIATE
python3 scripts/outreach.py check-replies --config outreach.json
# Auto follow-ups (day 3 + day 8)
python3 scripts/outreach.py followup --config outreach.json
# Campaign dashboard
python3 scripts/outreach.py status --config outreach.jsonThree auto-generated emails per creator:
- Initial — short, mentions their specific video by name, drops 2-3 current partnerships
- Follow-up (day 3) — bump, references a different video
- Final (day 8) — last touch, respects their time
All emails stop automatically when the creator replies.
| Script | Purpose |
|---|---|
onboard.sh |
Scan a brand's website, extract niche signals |
scan_site.py |
Site intelligence extraction (title, description, industry, social links) |
prospect.sh |
Batch prospecting pipeline with cron support |
extract_channel_data.sh |
Single channel → stats + email → CSV row |
extract_email.sh |
Email-only extraction from a channel |
find_related_channels.sh |
Discover related channels via YouTube recommendations |
score_channels.py |
Score & rank channels against audience profile |
outreach.py |
Multi-stage outreach pipeline (send, follow-up, reply detection) |
gmail.py |
Gmail client — SMTP send + IMAP reply tracking |
outreach.sh |
Simple one-shot email sender (legacy, uses gws CLI) |
get_videos.sh |
Fetch recent video titles for personalization |
negotiate.py |
Autonomous negotiation engine (classify, counter, close) |
{
"queries": ["tiktok shop affiliate tutorial", "faceless youtube channel"],
"target_emails": 100,
"output": "channels.csv",
"max_subs": 100000,
"batch_size": 200,
"work_dir": "./prospect-run",
"cron_name": "my-prospect-job"
}{
"brand": "MyBrand",
"url": "https://mybrand.com",
"target_categories": ["Beauty & Skincare", "Fashion & Lifestyle"],
"target_demographics": {
"age_range": "25-40",
"gender": "female",
"interests": ["skincare", "clean beauty"],
"location": "US"
},
"authority_preferred": true
}channel_name, handle, subscribers, total_videos, avg_views, median_views,
min_views, max_views, videos_sampled, email, description, external_links,
channel_url, content_category, match_score, match_type, match_reasons
For large targets, run on a schedule:
# Using OpenClaw
openclaw cron add --name "my-prospect" --every 30m \
--session isolated --model haiku --timeout-seconds 1800 \
--message "Run: bash scripts/prospect.sh --config config.json"
# Using system cron
*/30 * * * * bash /path/to/scripts/prospect.sh --config /path/to/config.jsonThe script auto-removes the cron job when the email target is reached.
- Scan YouTube channel page for emails in metadata/description
- Derive vanity domain from handle (strips "live", "official", "hq")
- Check vanity domain: root,
/contact,/about,/contact-us - Filter junk (image files, google/youtube domains, noreply)
FameClaw works as a skill for both major personal AI agent platforms:
Drop the skill into your OpenClaw workspace and the agent handles the entire pipeline conversationally — onboarding, prospecting, scoring, outreach. Uses OpenClaw's cron system for automated runs.
FameClaw ships with a NanoClaw-compatible skill in the nanoclaw/ directory. Copy it to your NanoClaw's .claude/skills/fameclaw/ directory:
cp -r nanoclaw/ /path/to/nanoclaw/.claude/skills/fameclaw/The scripts run inside NanoClaw's container sandbox. Mount ~/.config/fameclaw/ for credentials and your working directory for CSV output. Uses NanoClaw's task scheduler for recurring runs.
Both integrations use the same core scripts — zero divergence, zero API keys, fully local.
MIT — most of FameClaw is fully open source.
FSL-1.1-MIT — the scoring engine (score_channels.py) and negotiation engine (negotiate.py) are licensed under the Functional Source License. You can use and modify them for any purpose except building a competing product. Redistribution is not permitted. Companies under $1M/year revenue can use them freely, including commercially. Companies over $1M/year need a commercial license.
