RSS Amplifier

Tool Monsters · Jan 29, 2026

Turn Viral TikTok Videos Into LinkedIn Posts

0
Sign in to vote or save

Yonathan Cohen · Tool Monsters

TikTok viral video → AI analysis → LinkedIn post → Slack notification

This workflow finds the top 20 viral TikTok videos each week on topics you care about, analyzes them with Claude AI, generates ready-to-post LinkedIn content with viral hooks, and drops everything in Slack for one-click publishing.

Get the n8n workflow

  • Scroll TikTok for hours looking for trending topics

  • Watch 50+ videos to find 3 usable ones

  • Take notes manually on your phone

  • Try to write a viral hook (usually fails)

  • Spend 30-60 min per post

  • Post inconsistently (2-3x per month)

  • Engagement is hit-or-miss

  • Piggyback on proven viral content - If it’s trending on TikTok, it’ll work on LinkedIn

  • AI does the heavy lifting - Claude analyzes video, extracts key points, writes hook

  • Viral hook formulas built-in

  • Consistent posting schedule - Weekly automation = never miss a post

  • Pre-filtered for quality - Only videos with high engagement make it through

  • Short-form = quick insights - TikTok forces concision, perfect for LinkedIn

  • 20 posts per week (80+ per month vs 2-3 manual)

  • 10x faster content creation (10 min vs 2 hours)

  • Higher engagement (proven viral topics)

  • Build authority in your niche automatically

  • Fresh, trending content (TikTok = cutting edge)

Get the TikTok Scraper

Node: Schedule Trigger
Type: Interval
Frequency: Every week

Configuration:

{
  "rule": {
    "interval": [
      {
        "field": "weeks"
      }
    ]
  }
}

Pro tip: Run it Monday morning so you have fresh content for the week ahead. Or run it Sunday evening to prep for Monday posting.

What this does: Kicks off the entire workflow once per week. Set it and forget it.

Node: Apify - Run an Actor
Actor: TikTok Scraper (clockworks/tiktok-scraper)
Action: Search and filter videos

Configuration:

{
  "excludePinnedPosts": false,
  "proxyCountryCode": "None",
  "resultsPerPage": 10,
  "scrapeRelatedVideos": false,
  "searchDatePosted": "1",
  "searchQueries": [
    "Automation",
    "AI agents"
  ],
  "searchSection": "/video",
  "searchSorting": "1",
  "shouldDownloadAvatars": false,
  "shouldDownloadCovers": false,
  "shouldDownloadMusicCovers": false,
  "shouldDownloadSlideshowImages": false,
  "shouldDownloadSubtitles": false,
  "shouldDownloadVideos": false,
  "profileScrapeSections": [
    "videos"
  ],
  "profileSorting": "latest",
  "maxProfilesPerQuery": 10
}

Customize search queries for your niche:

"searchQueries": [
  "ChatGPT tutorial",
  "sales automation",
  "productivity hacks",
  "AI tools"
]

Key parameters:

  • searchDatePosted: "1" = videos from last 24h (ultra fresh)

  • searchSorting: "1" = sort by relevance + engagement

  • resultsPerPage: 10 = fetches 10 top performers

Node: Apify - Get Dataset Items
Resource: Datasets
Action: Retrieve items

Configuration:

{
  "datasetId": "={{ $json.defaultDatasetId }}"
}

How it works: The TikTok scraper (Step 2) stores results in an Apify dataset. This step fetches all 10 videos from that dataset.

What this does: Pulls the complete video data (caption, URL, views, likes, comments, shares, creator profile, hashtags) into n8n for processing.

Node: Sort
Type: Single field sort

Configuration:

{
  "sortFieldsUi": {
    "sortField": [
      {
        "fieldName": "playCount",
        "order": "descending"
      }
    ]
  }
}

Why sort by playCount? On TikTok, views are the best initial indicator of virality. We refine further with the top 20.

What this does: Re-ranks the 10 videos by view count (highest first). Most-watched videos rise to the top.

Node: Code (JavaScript)
Action: Slice array

Code:

return $input.all().slice(0, 20);
```
**Why 20 instead of 3?** With TikTok, you want volume. 20 posts/week = 3 posts/day in batch mode, perfect for maintaining constant LinkedIn presence.
---
### Step 6: Loop Through Each Video
**Node:** Loop Over Items (Split in Batches)
**Type:** Batch processing
**Settings:**
- **Batch size:** 1 (process one video at a time)
- **Reset:** After all items processed
**How the loop works:**
1. Takes video #1 → processes it through Claude → sends to Slack
2. Returns to loop → takes video #2 → repeats
3. Continues until video #20
4. Loop ends
**What this does:** Processes each of the 20 videos individually through the AI analysis and Slack notification steps.
---
### Step 7: Analyze Video with Claude AI
**Node:** Anthropic - Message a model
**Model:** claude-haiku-4-5-20251001
**Action:** Generate LinkedIn post
**Prompt:**
```
You are a LinkedIn content strategist specialized in viral posts.
Analyze the TikTok video data below and transform it into a LinkedIn post concept.
---
TIKTOK VIDEO DATA
- Author: {{$json.authorMeta.nickName}} (@{{$json.authorMeta.name}})
- Followers: {{$json.authorMeta.fans}}
- Caption: {{$json.text}}
- Video URL: {{$json.webVideoUrl}}
- Engagement:
  * Views: {{$json.playCount}}
  * Likes: {{$json.diggCount}}
  * Comments: {{$json.commentCount}}
  * Shares: {{$json.shareCount}}
- Hashtags: {{$json.hashtags[0].name}}, {{$json.hashtags[1].name}}, {{$json.hashtags[2].name}}
- Duration: {{$json.videoMeta.duration}}s
- Posted: {{$json.createTimeISO}}
---
OUTPUT FORMAT:
HOOK:
[2 lines - must stop the scroll]
CONTENT SUMMARY:
[3-5 bullet points describing what the LinkedIn post should cover]
CONTEXT:
[1 line explaining the TikTok trend/topic relevance for LinkedIn audience]
---
HOOK RULES:
- 2 lines maximum (hard limit)
- Concrete and specific, not generic
- Leverage engagement metrics if impressive (views, engagement rate)
- Create urgency or challenge common beliefs
- NO questions, NO vague statements, NO clickbait
- Translate TikTok energy into LinkedIn professionalism
Effective patterns for TikTok → LinkedIn:
- "This TikTok got [X] views in [Y] days. Here's the strategy:"
- "Everyone's doing [X] on TikTok. Here's how to apply it to [business context]:"
- "I analyzed [X] viral TikToks. [Y] pattern emerged:"
- "[Creator] cracked the code on [topic]. Here's what businesses miss:"
- "Stop ignoring TikTok for [business use case]. Here's why:"
---
SUMMARY RULES:
- Extract the core value/lesson from the TikTok
- Translate TikTok tactics into LinkedIn-friendly insights
- Focus on actionable takeaways for business audience
- Mention specific tools, strategies, or frameworks
- Keep it scannable (short bullet points)
- 3-5 points maximum
- Bridge the gap between TikTok trend and professional application
- End with clear CTA (save, share, or try the tactic)
---
CONTEXT ANALYSIS (Internal - don't output):
Before generating, analyze:
1. What's the core topic/trend in the TikTok?
2. Why would LinkedIn professionals care about this?
3. What's the business application or lesson?
4. Are the engagement metrics impressive enough to mention?
5. What hashtags reveal about the niche?
6. How to make TikTok content credible for LinkedIn audience?
---
ADAPTATION STRATEGY:
- If TikTok is about automation → Frame as productivity/efficiency for businesses
- If TikTok is entertainment → Extract the underlying strategy or psychology
- If TikTok is educational → Reframe for professional development context
- Always add "business value" layer to TikTok content
- Maintain authenticity while elevating the tone
---
OUTPUT EXAMPLE:
HOOK:
This automation TikTok got 50K views in 3 days.
Most LinkedIn creators ignore this platform. Big mistake.
CONTENT SUMMARY:
- Break down the automation workflow shown in the TikTok
- Explain why TikTok is becoming a goldmine for B2B creators
- Share 3 tactics to repurpose TikTok content for LinkedIn
- Include the specific tools/platforms mentioned
- CTA: "Which TikTok automation hack should I break down next?"
CONTEXT:
Automation content is trending on TikTok with 2M+ posts. Here's how B2B companies can leverage these tactics for content scaling.

Why Haiku instead of Sonnet? For 20 posts/run, Haiku is 20x cheaper and perfectly adequate for this type of structured generation. You save approximately $15/run.

Node: Code (JavaScript)
Action: Create formatted Slack message

Code:

// Access all input items
const inputItems = $input.all();
const videoDataItems = $("Loop Over Items").all();
const output = inputItems.map((item, idx) => {
  const claudeResponse = item.json;
  const linkedinPost = (claudeResponse.content && claudeResponse.content[0] && claudeResponse.content[0].text) || '';
  const videoData = videoDataItems[idx]?.json || {};
  // Extract TikTok data from the actual flow structure
  const authorName = videoData.authorMeta?.nickName || 'Unknown';
  const authorHandle = videoData.authorMeta?.name || '';
  const followers = videoData.authorMeta?.fans || 0;
  const views = videoData.playCount || 0;
  const likes = videoData.diggCount || 0;
  const comments = videoData.commentCount || 0;
  const shares = videoData.shareCount || 0;
  const videoUrl = videoData.webVideoUrl || '';
  const caption = videoData.text || '';
  const hashtags = videoData.hashtags?.map(h => h.name).join(', ') || '';
  // Format message for Slack
  const slackMessage = `
*New LinkedIn Post Generated!*
TikTok: @${authorHandle}
Creator: ${authorName} (${followers.toLocaleString()} followers)
Engagement:
   - Views: ${views.toLocaleString()}
   - Likes: ${likes.toLocaleString()}
   - Comments: ${comments}
   - Shares: ${shares}
Hashtags: ${hashtags}
LINKEDIN POST:
${linkedinPost}
Original TikTok: ${videoUrl}
Caption: ${caption.substring(0, 100)}${caption.length > 100 ? '...' : ''}
Generated: ${new Date().toLocaleString('en-US', { timeZone: 'America/New_York' })}
  `.trim();
  return {
    json: {
      // For Slack
      text: slackMessage,
      // Structured TikTok data
      tiktokAuthor: authorName,
      tiktokHandle: authorHandle,
      tiktokFollowers: followers,
      tiktokViews: views,
      tiktokLikes: likes,
      tiktokComments: comments,
      tiktokShares: shares,
      tiktokUrl: videoUrl,
      tiktokCaption: caption,
      tiktokHashtags: hashtags,
      // Generated LinkedIn post
      linkedinPost: linkedinPost,
      // Metadata
      generatedAt: new Date().toISOString(),
      engagementRate: followers > 0 ? ((likes / views) * 100).toFixed(2) : 0
    }
  };
});
return output;

What this creates:

A richly formatted Slack message with all TikTok metrics and the LinkedIn post ready to publish.

Node: Slack - Send a Message
Channel: #social

Settings:

  • Authentication: OAuth2

  • Select: channel

  • Channel ID: C098Z696RFF (#social)

  • Text: ={{ $json.text }}

Node: Loop Over Items (return)
Action: Process next video

After sending to Slack, the workflow returns to Step 6 and processes the next video (#2, then #3... until #20).

What this does: Ensures all 20 videos are analyzed and posted to Slack. After the 20th video, the workflow completes.

You now have:

  • Weekly TikTok scraping (top 20 viral videos)

  • Intelligent engagement sorting (playCount)

  • AI-powered content analysis (Claude Haiku 4.5)

  • TikTok → LinkedIn professional translation

  • Viral hook generation (proven patterns)

  • Slack notifications (ready to publish)

  • 20 LinkedIn posts per week (automated)

  • AI & Automation (your niche)

  • Productivity hacks

  • Sales techniques

  • Entrepreneurship mindset

  • Marketing strategies

  • Dances and Gen Z trends

  • Too casual/meme content

  • Videos without actionable insights

  • Pure entertainment content

1. Smart duration filter - Change searchDatePosted from "1" (24h) to "7" (7 days) if you want to expand the pool

2. Track best performers - Add a Google Sheet node to log which TikTok → which LinkedIn engagement

3. A/B test hooks - Generate 2 hook versions per video, post both on LinkedIn on different days, keep the best pattern

4. Upgrade to Sonnet 4.5 if budget allows - Better understanding of TikTok nuances, sharper hooks

© 2026 Yonathan Cohen

Subscribe for weekly automation workflows that 10x your sales output

Tool Monsters is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.

No posts

Read the original on yonathantoolmonsters.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.