
whatsapp-instagram-tiktok-mass-sender-marketing
Automated social media mass messaging and group marketing system for WhatsApp, Instagram, and TikTok customer acquisition
- Installs
- 790
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/reason-machines/marketing-skills --skill whatsapp-instagram-tiktok-mass-sender-marketing- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads whatsapp-instagram-tiktok-mass-sender-marketing automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
WhatsApp Instagram TikTok Mass Sender Marketing
Skill by ara.so — Marketing Skills collection.
This project provides automated mass messaging and group marketing capabilities across WhatsApp, Instagram, and TikTok platforms. It enables scraping competitor followers, hashtag-based user extraction, automated engagement (likes, comments, follows), and bulk direct messaging for customer acquisition and traffic generation.
What It Does
- Competitor Follower Scraping: Extract follower lists from competitor accounts on Instagram and TikTok
- Hashtag & Keyword Targeting: Find users posting or engaging with specific hashtags/keywords
- Automated Engagement: Auto-follow, auto-like, auto-comment on target user content
- Bulk Messaging: Send personalized direct messages at scale across platforms
- AI-Powered Filtering: Filter users by demographics, engagement level, account quality
- Multi-Account Management: Operate multiple accounts simultaneously for matrix marketing
- WhatsApp Group Marketing: Bulk send to WhatsApp groups and contacts
Installation
This is a commercial/proprietary system accessed through the vendor's platform rather than self-hosted code. Based on the repository structure:
Access Setup
-
Register for Service
# Visit official platform https://sites.google.com/view/facebook-script-custom/ -
Technical Support Channel
# Online support https://sites.google.com/view/instagram-keyword-hashtag-lead/ -
Account Configuration
// Typical configuration structure for multi-platform automation const config = { platforms: ['instagram', 'tiktok', 'whatsapp'], accounts: [ { platform: 'instagram', username: process.env.IG_USERNAME, password: process.env.IG_PASSWORD, proxy: process.env.IG_PROXY }, { platform: 'tiktok', username: process.env.TT_USERNAME, password: process.env.TT_PASSWORD, proxy: process.env.TT_PROXY } ], automation: { delayBetweenActions: 3000, // ms dailyFollowLimit: 150, dailyMessageLimit: 50, randomizeDelays: true } };
Key Features & API Patterns
1. Follower Scraping
// Scrape competitor followers on Instagram
const scraperConfig = {
targetAccount: '@competitor_username',
platform: 'instagram',
filters: {
minFollowers: 100,
maxFollowers: 10000,
activeWithinDays: 30,
location: 'United States',
verifiedOnly: false
},
maxResults: 5000
};
// Execute scrape
async function scrapeFollowers(config) {
const results = await api.scrape({
type: 'followers',
target: config.targetAccount,
platform: config.platform,
filters: config.filters,
limit: config.maxResults
});
return results.users; // Array of user objects
}
2. Hashtag-Based Lead Generation
// Find users by hashtag on TikTok
const hashtagConfig = {
hashtags: ['#skincare', '#beautyproducts', '#antiaging'],
platform: 'tiktok',
filters: {
engagement: 'high', // high/medium/low
accountAge: 90, // days
followerRange: [500, 50000]
},
limit: 3000
};
async function getHashtagUsers(config) {
const users = await api.extractByHashtag({
tags: config.hashtags,
platform: config.platform,
filters: config.filters,
maxUsers: config.limit
});
// AI filtering
const filtered = await api.aiFilter(users, {
detectGender: true,
estimateAge: true,
removeBusinessAccounts: false,
removeBots: true
});
return filtered;
}
3. Automated Engagement
// Auto-engage with scraped users
const engagementConfig = {
users: [], // Array from scraping
actions: {
follow: true,
like: { enabled: true, postsCount: 3 },
comment: {
enabled: true,
templates: [
"Love this! 😍",
"Amazing content! 🔥",
"Great post! 💯"
],
randomize: true
}
},
timing: {
delayBetweenUsers: [5000, 15000], // Random delay range (ms)
dailyLimit: 100,
stopOnError: false
}
};
async function autoEngage(config) {
for (const user of config.users) {
try {
if (config.actions.follow) {
await api.follow(user.username);
await delay(random(config.timing.delayBetweenUsers));
}
if (config.actions.like.enabled) {
const posts = await api.getUserPosts(user.username, config.actions.like.postsCount);
for (const post of posts) {
await api.like(post.id);
await delay(random(2000, 5000));
}
}
if (config.actions.comment.enabled) {
const comment = randomChoice(config.actions.comment.templates);
await api.comment(posts[0].id, comment);
}
await delay(random(config.timing.delayBetweenUsers));
} catch (error) {
console.error(`Error engaging with ${user.username}:`, error);
if (config.timing.stopOnError) break;
}
}
}
4. Bulk Direct Messaging
// Mass DM campaign
const dmConfig = {
recipients: [], // User list from scraping
message: {
text: "Hi {name}! 👋 Noticed you're into {interest}. Check out our exclusive offer: {link}",
variables: {
link: process.env.LANDING_PAGE_URL,
interest: 'skincare' // Dynamic per user
},
personalize: true
},
schedule: {
messagesPerHour: 10,
startTime: '09:00',
endTime: '18:00',
timezone: 'America/New_York'
},
tracking: {
enabled: true,
trackClicks: true,
trackReplies: true
}
};
async function sendBulkDMs(config) {
const queue = [...config.recipients];
while (queue.length > 0) {
const batch = queue.splice(0, config.schedule.messagesPerHour);
for (const user of batch) {
const personalizedMsg = config.message.text
.replace('{name}', user.name || user.username)
.replace('{interest}', user.interests?.[0] || config.message.variables.interest)
.replace('{link}', config.message.variables.link);
await api.sendDM({
to: user.username,
message: personalizedMsg,
platform: user.platform,
trackingId: config.tracking.enabled ? generateTrackingId(user) : null
});
await delay(random(5000, 10000));
}
// Wait before next batch
if (queue.length > 0) {
await delay(3600000 / config.schedule.messagesPerHour);
}
}
}
5. WhatsApp Group Marketing
// WhatsApp bulk sending
const whatsappConfig = {
mode: 'group', // 'group' or 'individual'
groups: [
{ id: 'group-id-1', name: 'Marketing Group' },
{ id: 'group-id-2', name: 'Sales Team' }
],
message: {
text: "🎉 New Product Launch! Check it out: {link}",
media: {
type: 'image',
url: process.env.PRODUCT_IMAGE_URL
}
},
schedule: {
sendAt: '2026-06-01T10:00:00Z',
timezone: 'UTC'
}
};
async function sendWhatsAppBulk(config) {
if (config.mode === 'group') {
for (const group of config.groups) {
await api.whatsapp.sendToGroup({
groupId: group.id,
text: config.message.text.replace('{link}', process.env.LANDING_PAGE_URL),
media: config.message.media,
scheduleTime: config.schedule.sendAt
});
await delay(random(30000, 60000)); // Delay between groups
}
}
}
Configuration Best Practices
Environment Variables
# Platform Credentials
IG_USERNAME=your_instagram_username
IG_PASSWORD=your_instagram_password
TT_USERNAME=your_tiktok_username
TT_PASSWORD=your_tiktok_password
WA_PHONE=your_whatsapp_number
# Proxies (recommended to avoid bans)
IG_PROXY=http://proxy1.example.com:8080
TT_PROXY=http://proxy2.example.com:8080
# Campaign Settings
LANDING_PAGE_URL=https://yoursite.com/offer
PRODUCT_IMAGE_URL=https://yoursite.com/product.jpg
DAILY_FOLLOW_LIMIT=150
DAILY_MESSAGE_LIMIT=50
Rate Limiting & Safety
// Recommended rate limits to avoid platform detection
const safeLimits = {
instagram: {
followsPerHour: 20,
likesPerHour: 60,
commentsPerHour: 15,
dmsPerHour: 10,
dailyFollowLimit: 150,
dailyUnfollowLimit: 150
},
tiktok: {
followsPerHour: 30,
likesPerHour: 100,
commentsPerHour: 20,
dmsPerHour: 15
},
whatsapp: {
messagesPerHour: 30,
groupsPerHour: 5
}
};
// Implement delays
function getRandomDelay(min = 3000, max = 8000) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
Common Patterns
Pattern 1: Competitor Traffic Hijacking
// Complete workflow: Scrape → Filter → Engage → Convert
async function competitorHijackingCampaign() {
// Step 1: Scrape competitor followers
const followers = await scrapeFollowers({
targetAccount: '@main_competitor',
platform: 'instagram',
filters: { minFollowers: 500, maxFollowers: 20000 },
maxResults: 2000
});
// Step 2: AI filter for quality
const qualified = await api.aiFilter(followers, {
removeBusinessAccounts: true,
removeBots: true,
estimateAge: true,
ageRange: [18, 45]
});
// Step 3: Soft engagement
await autoEngage({
users: qualified.slice(0, 100), // Start with 100
actions: {
follow: true,
like: { enabled: true, postsCount: 2 }
},
timing: { dailyLimit: 100 }
});
// Step 4: Wait 24-48h, then DM engaged users
setTimeout(async () => {
const engaged = await api.getFollowBacks(qualified);
await sendBulkDMs({
recipients: engaged,
message: {
text: "Hey {name}! Saw you follow @main_competitor. We have a better deal 😊 {link}"
}
});
}, 86400000 * 2); // 48 hours
}
Pattern 2: Hashtag-Based Funnel
// Find hot leads via trending hashtags
async function hashtagFunnel() {
const leads = await getHashtagUsers({
hashtags: ['#needthis', '#wheretobuy', '#recommendations'],
platform: 'tiktok',
filters: { engagement: 'high' },
limit: 1000
});
// Immediate soft touch
await autoEngage({
users: leads,
actions: {
follow: true,
like: { enabled: true, postsCount: 1 },
comment: {
enabled: true,
templates: ["Check your DMs! 💌"]
}
}
});
// Same-day DM with solution
await sendBulkDMs({
recipients: leads,
message: {
text: "Hi! Saw your post about {interest}. We've got exactly what you need: {link}"
},
schedule: { messagesPerHour: 20 }
});
}
Pattern 3: Multi-Platform Matrix
// Coordinate campaigns across IG + TikTok + WhatsApp
async function multiPlatformBlitz() {
const igUsers = await scrapeFollowers({
targetAccount: '@competitor_ig',
platform: 'instagram',
maxResults: 1000
});
const ttUsers = await getHashtagUsers({
hashtags: ['#productniche'],
platform: 'tiktok',
limit: 1000
});
// Parallel engagement
await Promise.all([
autoEngage({ users: igUsers, actions: { follow: true, like: { enabled: true, postsCount: 2 } } }),
autoEngage({ users: ttUsers, actions: { follow: true, comment: { enabled: true } } })
]);
// Collect phone numbers from bio scraping (if available)
const phoneNumbers = await api.extractPhoneNumbers([...igUsers, ...ttUsers]);
// WhatsApp retargeting
if (phoneNumbers.length > 0) {
await api.whatsapp.sendBulk({
recipients: phoneNumbers,
message: "Special offer for our social followers! {link}"
});
}
}
Troubleshooting
Issue: Account Getting Banned/Restricted
Solution: Implement stricter rate limits and human-like behavior
// Add randomization and longer delays
const conservativeConfig = {
delayBetweenActions: [10000, 30000], // 10-30 seconds
dailyFollowLimit: 50, // Reduce from 150
dailyMessageLimit: 20, // Reduce from 50
randomizeDelays: true,
useProxy: true,
rotateProxies: true,
sessionDuration: [1800000, 3600000] // 30-60 min sessions
};
// Add session breaks
async function engageWithBreaks(users) {
const sessionSize = 20;
for (let i = 0; i < users.length; i += sessionSize) {
const batch = users.slice(i, i + sessionSize);
await autoEngage({ users: batch });
// Break between sessions (15-30 min)
if (i + sessionSize < users.length) {
await delay(random(900000, 1800000));
}
}
}
Issue: Low DM Response Rate
Solution: Improve message personalization and timing
// Better personalization
async function improvePersonalization(user) {
const recentPosts = await api.getUserPosts(user.username, 5);
const interests = await api.extractInterests(recentPosts);
const templates = {
skincare: "Hey {name}! Your skin looks amazing in your recent posts! Have you tried {product}?",
fitness: "Hi {name}! Loved your workout content. Check out our fitness supplement: {link}",
fashion: "Hey {name}! Your style is 🔥 You'd love our new collection: {link}"
};
const category = interests[0] || 'general';
return templates[category] || templates.general;
}
// Send at optimal times
const optimalTimes = {
instagram: ['10:00', '14:00', '19:00'], // Peak engagement hours
tiktok: ['12:00', '17:00', '21:00']
};
Issue: Scraping Returns Duplicate Users
Solution: Implement deduplication
// Deduplicate across campaigns
const seenUsers = new Set();
function deduplicateUsers(users) {
return users.filter(user => {
const key = `${user.platform}:${user.username}`;
if (seenUsers.has(key)) return false;
seenUsers.add(key);
return true;
});
}
// Persist to avoid re-contacting
const fs = require('fs');
function saveContactedUsers(users) {
const existing = JSON.parse(fs.readFileSync('contacted.json', 'utf8') || '[]');
const updated = [...existing, ...users.map(u => u.username)];
fs.writeFileSync('contacted.json', JSON.stringify([...new Set(updated)]));
}
Issue: API Rate Limits from Platform
Solution: Use proxy rotation and account rotation
// Proxy rotation
const proxyPool = [
process.env.PROXY_1,
process.env.PROXY_2,
process.env.PROXY_3
];
let currentProxyIndex = 0;
function getNextProxy() {
const proxy = proxyPool[currentProxyIndex];
currentProxyIndex = (currentProxyIndex + 1) % proxyPool.length;
return proxy;
}
// Account rotation for high-volume
const accountPool = [
{ username: process.env.IG_USER_1, password: process.env.IG_PASS_1 },
{ username: process.env.IG_USER_2, password: process.env.IG_PASS_2 }
];
async function distributeLoad(users, action) {
const perAccount = Math.ceil(users.length / accountPool.length);
for (let i = 0; i < accountPool.length; i++) {
const batch = users.slice(i * perAccount, (i + 1) * perAccount);
await api.switchAccount(accountPool[i]);
await action(batch);
}
}
Legal & Ethical Considerations
Important: This type of automation may violate platform Terms of Service. Use responsibly:
- Respect user privacy and platform policies
- Implement opt-out mechanisms in DMs
- Comply with anti-spam regulations (CAN-SPAM, GDPR)
- Use only for legitimate business purposes
- Monitor and respect platform rate limits
- Ensure proxy/account usage complies with local laws
// Add opt-out footer to all DMs
const compliantMessage = `
${originalMessage}
---
Reply STOP to opt out of future messages.
`;
// Track opt-outs
async function checkOptOut(username) {
const optOuts = JSON.parse(fs.readFileSync('optouts.json', 'utf8') || '[]');
return optOuts.includes(username);
}
FAQ
What does the whatsapp-instagram-tiktok-mass-sender-marketing skill do?
Automated social media mass messaging and group marketing system for WhatsApp, Instagram, and TikTok customer acquisition
How do I install whatsapp-instagram-tiktok-mass-sender-marketing?
Run npx skills add https://github.com/reason-machines/marketing-skills --skill whatsapp-instagram-tiktok-mass-sender-marketing in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/whatsapp-instagram-tiktok-mass-sender-marketing/ (personal) or .claude/skills/whatsapp-instagram-tiktok-mass-sender-marketing/ (project).
Which AI agents can use whatsapp-instagram-tiktok-mass-sender-marketing?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is whatsapp-instagram-tiktok-mass-sender-marketing safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains whatsapp-instagram-tiktok-mass-sender-marketing?
It is published by reason-machines in reason-machines/marketing-skills. It has 790 recorded installs.
More from reason-machines/marketing-skills
marketing-for-founders-saas-growth
reason-machines/marketing-skills
Access curated marketing strategies and channels to acquire the first 10/100/1000 users for SaaS products and startups
agentkits-marketing-automation
reason-machines/marketing-skills
Enterprise AI marketing automation toolkit with 18 agents, 93 commands, and 28 skills for campaign planning, content creation, SEO, CRO, and growth workflows
composiohq-awesome-claude-skills-seo-content-marketing
reason-machines/marketing-skills
SEO & content marketing skill suite with keyword research, content audits, technical SEO, competitor analysis, and AI-powered content workflows
ai-marketing-skills-automation
reason-machines/marketing-skills
Open-source AI marketing automation skills for growth experiments, sales pipeline, content ops, outbound, SEO, and finance automation
marketingskills-ai-agent-collection
reason-machines/marketing-skills
Marketing skills collection for AI agents - CRO, copywriting, SEO, analytics, and growth engineering
ai-marketing-claude-suite
reason-machines/marketing-skills
Comprehensive AI marketing automation suite for Claude Code with 15 skills including website audits, copywriting, email sequences, ad campaigns, competitive analysis, and PDF reporting
Popular marketing & seo skills
reddit-automation
flowkit-labs/skills
Find Reddit threads where people are genuinely asking for what you offer, then draft short, genuinely helpful replies — disclosing your affiliation honestly and naming your product only when it truly answers the question. Two moves: discovery — scan the right subreddits for real needs (recommendation asks, expressed pain, competitor mentions) and rank the few threads where you can actually help; drafting — write from real experience, respect each community's self-promo rules, and keep a human in the loop to review and post. This markets on Reddit the honest way: contribute value, disclose who you are, never astroturf. Distilled from the playbook behind doany.ai's Reddit agent. Triggers on "find reddit opportunities", "reddit marketing", "reddit automation", "reply on reddit for my product", "reddit community engagement", "reddit lead gen", or any ask to turn Reddit threads into genuine, disclosed marketing replies.
twitter-automation
101-skills/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
twitter-automation
magentosh/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
twitter-automation
qu-skills/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
product-launch-video
heygen-com/hyperframes
Turn a product or marketing URL, pasted script, or brief into a product launch / promo video — SaaS promos, feature reveals, product demos, app and company launches. Use when the user wants to market, launch, promote, or reveal a product; the default for any commercial URL. Site tours / showcases of a website route here too — the brief carries the show-it-as-is intent. Unclear → /hyperframes.
twitter-automation
skills-shell/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet