Bookmarklets for Social Media Automation

Streamline your social media workflow with powerful one-click automation tools.

Supercharge Your Social Media Workflow

Social media management can be time-consuming. Bookmarklets offer a lightweight solution to automate repetitive tasks, extract data, and enhance your social media experience across all platforms without installing heavy extensions.

⚡ Quick Benefits

  • • One-click sharing to multiple platforms
  • • Bulk operations without API limits
  • • Cross-platform compatibility
  • • No app permissions required

Universal Social Media Bookmarklets

🔗 Universal Share Button

Share current page to any social platform

javascript:(function(){
  var url = encodeURIComponent(window.location.href);
  var title = encodeURIComponent(document.title);
  var platform = prompt('Share to: (t)witter, (f)acebook, (l)inkedin, (r)eddit');
  
  var shareUrls = {
    't': 'https://twitter.com/intent/tweet?url=' + url + '&text=' + title,
    'f': 'https://www.facebook.com/sharer/sharer.php?u=' + url,
    'l': 'https://www.linkedin.com/sharing/share-offsite/?url=' + url,
    'r': 'https://reddit.com/submit?url=' + url + '&title=' + title
  };
  
  if(shareUrls[platform]) {
    window.open(shareUrls[platform], '_blank', 'width=600,height=400');
  }
})();

📸 Screenshot & Share

Capture page selection for visual sharing

javascript:(function(){
  var selection = window.getSelection().toString();
  if(!selection) {
    alert('Please select text to share');
    return;
  }
  
  var shareText = encodeURIComponent('"' + selection + '" - ' + document.title);
  var url = encodeURIComponent(window.location.href);
  
  window.open('https://twitter.com/intent/tweet?text=' + shareText + '&url=' + url, 
    '_blank', 'width=600,height=400');
})();

🏷️ Hashtag Generator

Generate relevant hashtags from page content

javascript:(function(){
  var text = document.body.innerText.toLowerCase();
  var words = text.match(/\b[a-z]{4,}\b/g);
  var frequency = {};
  
  words.forEach(word => {
    if(!['the','and','for','with','from','this','that','have','been'].includes(word)) {
      frequency[word] = (frequency[word] || 0) + 1;
    }
  });
  
  var hashtags = Object.entries(frequency)
    .sort((a,b) => b[1] - a[1])
    .slice(0, 10)
    .map(([word]) => '#' + word)
    .join(' ');
    
  prompt('Top hashtags for this page:', hashtags);
})();

Twitter/X Specific Bookmarklets

🐦 Tweet Thread Unroller

Convert thread to readable format

javascript:(function(){
  var tweets = document.querySelectorAll('[data-testid="tweet"]');
  var thread = [];
  
  tweets.forEach(tweet => {
    var text = tweet.querySelector('[data-testid="tweetText"]');
    if(text) thread.push(text.innerText);
  });
  
  var output = thread.join('\n\n---\n\n');
  var win = window.open('', 'Thread', 'width=600,height=400');
  win.document.write('<pre style="white-space:pre-wrap">' + output + '</pre>');
})();

📊 Engagement Calculator

Calculate engagement rate for visible tweets

javascript:(function(){
  var tweets = document.querySelectorAll('[data-testid="tweet"]');
  var totalEngagement = 0;
  var tweetCount = 0;
  
  tweets.forEach(tweet => {
    var likes = tweet.querySelector('[data-testid="like"] span');
    var retweets = tweet.querySelector('[data-testid="retweet"] span');
    
    if(likes && retweets) {
      totalEngagement += parseInt(likes.innerText || 0) + parseInt(retweets.innerText || 0);
      tweetCount++;
    }
  });
  
  alert('Average engagement: ' + Math.round(totalEngagement / tweetCount) + ' per tweet');
})();

🧹 Timeline Cleaner

Hide tweets with specific keywords

javascript:(function(){
  var keyword = prompt('Hide tweets containing:').toLowerCase();
  if(!keyword) return;
  
  var tweets = document.querySelectorAll('[data-testid="tweet"]');
  var hidden = 0;
  
  tweets.forEach(tweet => {
    if(tweet.innerText.toLowerCase().includes(keyword)) {
      tweet.style.display = 'none';
      hidden++;
    }
  });
  
  alert('Hidden ' + hidden + ' tweets containing "' + keyword + '"');
})();

LinkedIn Automation

💼 Connection Message Template

Auto-fill connection requests with personalized message

javascript:(function(){
  var name = document.querySelector('.pv-top-card--list li')?.innerText || 'there';
  var company = document.querySelector('.pv-top-card--experience-list-item')?.innerText || '';
  
  var message = `Hi ${name.split(' ')[0]},\n\nI came across your profile and was impressed by your work${company ? ' at ' + company : ''}. I'd love to connect and learn more about your experience.\n\nBest regards`;
  
  var noteButton = document.querySelector('button[aria-label*="Add a note"]');
  if(noteButton) noteButton.click();
  
  setTimeout(() => {
    var textarea = document.querySelector('textarea[name="message"]');
    if(textarea) textarea.value = message;
  }, 500);
})();

📋 Profile Data Extractor

Extract key profile information

javascript:(function(){
  var data = {
    name: document.querySelector('h1')?.innerText,
    headline: document.querySelector('.text-body-medium')?.innerText,
    location: document.querySelector('.pv-top-card--list-bullet li')?.innerText,
    connections: document.querySelector('.pv-top-card--list-bullet li:nth-child(2)')?.innerText
  };
  
  var output = Object.entries(data)
    .map(([key, value]) => key + ': ' + (value || 'N/A'))
    .join('\n');
    
  prompt('Profile Data:', output);
})();

Instagram Helper Bookmarklets

📷 Download Current Image

Get direct link to Instagram images

javascript:(function(){
  var img = document.querySelector('article img[srcset]');
  if(!img) {
    alert('No image found on this page');
    return;
  }
  
  var srcset = img.getAttribute('srcset');
  var highest = srcset.split(',').pop().trim().split(' ')[0];
  
  window.open(highest, '_blank');
})();

📝 Caption Copier

Copy post caption with formatting

javascript:(function(){
  var caption = document.querySelector('h1')?.parentElement?.parentElement?.innerText;
  
  if(caption) {
    navigator.clipboard.writeText(caption);
    alert('Caption copied to clipboard!');
  } else {
    alert('No caption found');
  }
})();

Multi-Platform Tools

📅 Social Media Scheduler

Generate Buffer/Hootsuite compatible post

javascript:(function(){
  var title = document.title;
  var url = window.location.href;
  var selection = window.getSelection().toString();
  
  var post = {
    text: selection || title,
    link: url,
    platforms: ['twitter', 'facebook', 'linkedin']
  };
  
  var bufferUrl = 'https://buffer.com/add?text=' + 
    encodeURIComponent(post.text) + '&url=' + encodeURIComponent(post.link);
    
  window.open(bufferUrl, '_blank', 'width=600,height=400');
})();

📊 Analytics Dashboard

Quick social metrics overview

javascript:(function(){
  var url = encodeURIComponent(window.location.href);
  
  var services = {
    'Facebook Shares': 'https://www.facebook.com/sharer/sharer.php?u=' + url,
    'Twitter Search': 'https://twitter.com/search?q=' + url,
    'LinkedIn Stats': 'https://www.linkedin.com/search/results/content/?keywords=' + url
  };
  
  var html = '<h2>Social Stats for this URL</h2><ul>';
  for(var service in services) {
    html += '<li><a href="' + services[service] + '" target="_blank">' + service + '</a></li>';
  }
  html += '</ul>';
  
  var win = window.open('', 'Stats', 'width=400,height=300');
  win.document.write(html);
})();

Best Practices for Social Media Bookmarklets

✅ Do's

  • • Respect rate limits and ToS
  • • Test on different page layouts
  • • Handle errors gracefully
  • • Keep automation ethical
  • • Update selectors regularly

❌ Don'ts

  • • Don't spam or abuse platforms
  • • Avoid storing credentials
  • • Don't bypass security features
  • • Never automate harassment
  • • Don't violate privacy

Advanced Techniques

🚀 Power User Tips

  • • Use MutationObserver for dynamic content
  • • Implement localStorage for preferences
  • • Chain multiple bookmarklets with setTimeout
  • • Create keyboard shortcuts for frequent actions
  • • Combine with browser automation tools

Platform-Specific Considerations

Twitter/X

Frequently changes DOM structure. Use data-testid attributes when available.

LinkedIn

Has anti-automation measures. Add delays between actions and randomize behavior.

Instagram

Limited web functionality. Many features require mobile app or API access.

Facebook

Complex React structure. Use React DevTools to understand component hierarchy.

Start Automating!

These bookmarklets are just the beginning. Customize them for your specific workflow or create entirely new ones using our generator.