<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Romain Rabreau</title>
    <description>The latest articles on DEV Community by Romain Rabreau (@romainrabreau).</description>
    <link>https://dev.to/romainrabreau</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3815578%2Fe72ca233-3903-4ddf-ada4-948431473a35.png</url>
      <title>DEV Community: Romain Rabreau</title>
      <link>https://dev.to/romainrabreau</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/romainrabreau"/>
    <language>en</language>
    <item>
      <title>My AI agent texts me when I make money in my sleep (and here's how I built it)</title>
      <dc:creator>Romain Rabreau</dc:creator>
      <pubDate>Tue, 10 Mar 2026 06:52:07 +0000</pubDate>
      <link>https://dev.to/romainrabreau/my-ai-agent-texts-me-when-i-make-money-in-my-sleep-and-heres-how-i-built-it-knh</link>
      <guid>https://dev.to/romainrabreau/my-ai-agent-texts-me-when-i-make-money-in-my-sleep-and-heres-how-i-built-it-knh</guid>
      <description>&lt;p&gt;I'm a solo developer. I used to check Stripe obsessively — every hour, sometimes every 10 minutes.&lt;/p&gt;

&lt;p&gt;Then I built an AI agent that does it for me.&lt;/p&gt;

&lt;p&gt;Now I get a Telegram message when I make a sale. While I'm asleep. While I'm cooking. While I'm doing literally anything else.&lt;/p&gt;

&lt;p&gt;Here's what changed, and why I think every solo builder should have one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with being a solo founder
&lt;/h2&gt;

&lt;p&gt;When you're building alone, you're wearing every hat:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developer&lt;/li&gt;
&lt;li&gt;Marketer&lt;/li&gt;
&lt;li&gt;Customer support&lt;/li&gt;
&lt;li&gt;Finance guy&lt;/li&gt;
&lt;li&gt;The person who checks analytics 47 times a day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The last one is the killer. Every context switch costs you 20 minutes of deep work. And most of the time, you're checking for nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;I've been building with &lt;a href="https://github.com/openclaw/openclaw" rel="noopener noreferrer"&gt;OpenClaw&lt;/a&gt; — an open-source personal AI agent framework that runs on your own machine. Think of it as your own private AI assistant that has access to your tools, your files, your APIs.&lt;/p&gt;

&lt;p&gt;I wrote a simple skill (plugin) that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Checks my Stripe account every 3 hours&lt;/li&gt;
&lt;li&gt;Compares the count to the last check&lt;/li&gt;
&lt;li&gt;If there's a new sale → sends me a Telegram notification with the amount&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it. 50 lines of code. But the psychological shift was massive.&lt;/p&gt;

&lt;p&gt;I stopped checking. I started trusting the system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then I went further
&lt;/h2&gt;

&lt;p&gt;Once I had the Stripe monitor, I built more:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LinkedIn Prospector&lt;/strong&gt; — scans LinkedIn for potential customers matching a profile, drafts personalized outreach&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Morning Briefing&lt;/strong&gt; — every morning at 8am, my agent sends me: weather, top 3 priority tasks, any urgent emails, calendar for the day&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dev.to Analytics&lt;/strong&gt; — tracks article performance and suggests what to write next based on what got traction&lt;/p&gt;

&lt;p&gt;Each skill is maybe 50-100 lines. But together, they form a system that works while I don't.&lt;/p&gt;

&lt;h2&gt;
  
  
  The meta thing
&lt;/h2&gt;

&lt;p&gt;I published these skills on &lt;a href="https://clawhub.ai/romainrabreau/linkedin-prospector" rel="noopener noreferrer"&gt;ClawhHub&lt;/a&gt; — the marketplace for OpenClaw skills. Other people are using them now.&lt;/p&gt;

&lt;p&gt;And then someone asked me: "How do you build these? Can you teach me?"&lt;/p&gt;

&lt;p&gt;So I did. I documented the whole thing — how to set up OpenClaw, how to write skills, how to connect it to Stripe/Telegram/whatever, and most importantly: &lt;strong&gt;how to structure an agent that actually helps you make money instead of just being a fancy chatbot&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openclaw-courses-fawn.vercel.app" rel="noopener noreferrer"&gt;The course is here&lt;/a&gt;. It's €14.99. That's less than a coffee subscription.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get out of it
&lt;/h2&gt;

&lt;p&gt;Not just the technical setup. The mindset shift:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stop checking → start trusting&lt;/li&gt;
&lt;li&gt;Stop doing → start delegating (to your agent)&lt;/li&gt;
&lt;li&gt;Stop reacting → start getting pinged when it matters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're a solo builder, a freelancer, or anyone who's tired of being the one who has to do everything — this is for you.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I'm Romain, a French developer who builds with AI agents. I publish my skills openly on ClawhHub and document everything I learn. If you have questions about OpenClaw or agent-first development, drop them in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>My AI agent monitors Stripe and texts me when I make money in my sleep</title>
      <dc:creator>Romain Rabreau</dc:creator>
      <pubDate>Tue, 10 Mar 2026 06:51:56 +0000</pubDate>
      <link>https://dev.to/romainrabreau/my-ai-agent-monitors-stripe-and-texts-me-when-i-make-money-in-my-sleep-1482</link>
      <guid>https://dev.to/romainrabreau/my-ai-agent-monitors-stripe-and-texts-me-when-i-make-money-in-my-sleep-1482</guid>
      <description>&lt;p&gt;It was 2am when my phone buzzed.&lt;/p&gt;

&lt;p&gt;Not an alarm. Not a message from a friend. A Telegram notification from an agent I built: &lt;em&gt;"New Stripe payment: €14.99. Sleep well 💸"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I'd been asleep for two hours.&lt;/p&gt;

&lt;p&gt;That was the moment I realized I'd fundamentally changed how I work.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I got here
&lt;/h2&gt;

&lt;p&gt;I'm Romain. Solo developer. I've been building web apps for years — the usual stack, the usual grind. Client work, feature requests, deadlines, the occasional 3am bug fix.&lt;/p&gt;

&lt;p&gt;A year ago, I started obsessing over AI agents. Not the hype. The actual mechanics: how do you make an autonomous system that &lt;em&gt;does real things&lt;/em&gt; — reads emails, monitors APIs, makes decisions, takes actions — without you in the loop?&lt;/p&gt;

&lt;p&gt;I started small. A script that checked my inbox and summarized unread newsletters. Then a bot that watched my GitHub issues and drafted replies. Then something that monitored my Stripe dashboard and sent me daily revenue summaries.&lt;/p&gt;

&lt;p&gt;Each one taught me something. Each one failed in interesting ways. Each one made the next one better.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Stripe agent
&lt;/h2&gt;

&lt;p&gt;Here's the one that changed my mind about what's possible.&lt;/p&gt;

&lt;p&gt;I built an agent that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Listens for Stripe webhook events&lt;/li&gt;
&lt;li&gt;Parses payment data (amount, product, customer country)&lt;/li&gt;
&lt;li&gt;Sends a formatted Telegram message within seconds&lt;/li&gt;
&lt;li&gt;Logs everything to a simple dashboard&lt;/li&gt;
&lt;li&gt;Flags anomalies (refunds, disputes, unusual amounts)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Total build time: one weekend.&lt;br&gt;
Lines of code: ~300.&lt;br&gt;
Cost to run: essentially zero.&lt;/p&gt;

&lt;p&gt;But the &lt;em&gt;real&lt;/em&gt; value isn't the notification. It's what it represents: &lt;strong&gt;a system that works while you sleep, that doesn't get tired, that never misses an event.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I stopped checking Stripe obsessively. I stopped wondering "did that payment go through?" The agent handles it. I get the signal when it matters.&lt;/p&gt;


&lt;h2&gt;
  
  
  What I replaced
&lt;/h2&gt;

&lt;p&gt;Let me be honest about what I was doing before agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual monitoring:&lt;/strong&gt; I was checking dashboards 10-15 times a day. Stripe, analytics, error logs. Context-switching hell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repetitive responses:&lt;/strong&gt; Same emails, same questions, same onboarding sequences. I'd write variations of the same thing over and over.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delayed reactions:&lt;/strong&gt; Something would break at night. I'd find out the next morning. By then, users had already churned.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agents didn't replace my &lt;em&gt;thinking&lt;/em&gt;. They replaced my &lt;em&gt;watching&lt;/em&gt;. The boring vigilance work that drains you without producing anything.&lt;/p&gt;


&lt;h2&gt;
  
  
  The architecture that made it click
&lt;/h2&gt;

&lt;p&gt;After a lot of trial and error, I settled on a pattern I now use for almost everything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Trigger → Context → Decision → Action → Report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Trigger:&lt;/strong&gt; Something happens (webhook, schedule, user message, file change)&lt;br&gt;
&lt;strong&gt;Context:&lt;/strong&gt; Agent gathers relevant information&lt;br&gt;
&lt;strong&gt;Decision:&lt;/strong&gt; LLM or rule-based logic decides what to do&lt;br&gt;
&lt;strong&gt;Action:&lt;/strong&gt; Agent does the thing (send message, update DB, call API)&lt;br&gt;
&lt;strong&gt;Report:&lt;/strong&gt; Human gets notified of what happened&lt;/p&gt;

&lt;p&gt;This pattern is stupidly simple. But getting the &lt;em&gt;implementation&lt;/em&gt; right — error handling, rate limits, auth, persistence, cost control — that's where most people get stuck.&lt;/p&gt;




&lt;h2&gt;
  
  
  The tool I built around this
&lt;/h2&gt;

&lt;p&gt;I got obsessed enough with agent infrastructure that I built &lt;a href="https://openclaw-courses-fawn.vercel.app" rel="noopener noreferrer"&gt;OpenClaw&lt;/a&gt; — a platform for running and managing AI agents. It's the scaffolding I wished existed when I started.&lt;/p&gt;

&lt;p&gt;I've been running it for my own projects for months. It handles the boring parts: agent scheduling, tool registration, channel routing (Telegram, Discord, email), memory, and more.&lt;/p&gt;

&lt;p&gt;Recently I started teaching what I've learned. Not the theory — the actual patterns, the real failures, the architecture decisions that matter. I packaged everything into a practical course for developers who want to build agents that &lt;em&gt;actually work in production&lt;/em&gt;, not just demos.&lt;/p&gt;

&lt;p&gt;If you're tired of building toys that don't survive contact with reality, &lt;a href="https://openclaw-courses-fawn.vercel.app" rel="noopener noreferrer"&gt;it might be worth checking out&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I'd tell myself a year ago
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Start with a real problem you have.&lt;/strong&gt; Don't build a "general AI assistant." Build something that solves your specific annoying problem. The Stripe notifier worked because I genuinely hated checking Stripe manually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Embrace the boring parts.&lt;/strong&gt; Error handling, logging, rate limiting — this is where amateur agents die. Production agents are mostly plumbing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make it observable.&lt;/strong&gt; If your agent does something wrong and you can't tell &lt;em&gt;what&lt;/em&gt; or &lt;em&gt;why&lt;/em&gt;, you'll never fix it. Log everything. Send yourself summaries. Make the invisible visible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Small and reliable beats big and flaky.&lt;/strong&gt; A 50-line agent that runs perfectly every time is worth 10x more than a complex agent that sometimes works.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 2am buzz
&lt;/h2&gt;

&lt;p&gt;I still get that notification sometimes. Agent detects a payment, fires a message, I see it the next morning.&lt;/p&gt;

&lt;p&gt;It's a small thing. But it represents something bigger: &lt;strong&gt;a system that works whether I'm paying attention or not.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's what I'm chasing. That's what I'm teaching. Bit by bit, building the infrastructure for a business that doesn't need me to be awake 24/7.&lt;/p&gt;

&lt;p&gt;If you're building something similar — or trying to — I'd love to hear what you're working on. Drop a comment or &lt;a href="https://openclaw-courses-fawn.vercel.app" rel="noopener noreferrer"&gt;come check out what I've put together&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I write about AI agents, solo dev life, and building in public. Follow if that's your thing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>automation</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Reddit organic growth: the comment strategy that does not get you banned</title>
      <dc:creator>Romain Rabreau</dc:creator>
      <pubDate>Mon, 09 Mar 2026 23:19:05 +0000</pubDate>
      <link>https://dev.to/romainrabreau/reddit-organic-growth-the-comment-strategy-that-does-not-get-you-banned-57b8</link>
      <guid>https://dev.to/romainrabreau/reddit-organic-growth-the-comment-strategy-that-does-not-get-you-banned-57b8</guid>
      <description>&lt;h1&gt;
  
  
  Reddit organic growth: the comment strategy that does not get you banned
&lt;/h1&gt;

&lt;p&gt;Reddit bans bots. It removes spam. It shadowbans accounts that push products.&lt;/p&gt;

&lt;p&gt;The accounts that survive and grow do the opposite of what most marketers try.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Reddit traffic is worth this
&lt;/h2&gt;

&lt;p&gt;A well-placed Reddit comment does three things traditional ads cannot:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Gets indexed by Google (Reddit threads rank, sometimes for years)&lt;/li&gt;
&lt;li&gt;Reaches people in a buying state - they are asking about your specific problem&lt;/li&gt;
&lt;li&gt;Gets trusted by default - community members trust other members, not ads&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The catch: Reddit communities are brutal about self-promotion. Do it wrong and the account is gone in 72 hours.&lt;/p&gt;




&lt;h2&gt;
  
  
  The signal that matters: intent posts
&lt;/h2&gt;

&lt;p&gt;Most Reddit growth advice says "find your audience on Reddit." That is too vague.&lt;/p&gt;

&lt;p&gt;The useful version: find posts where someone is experiencing your problem right now and asking for a solution.&lt;/p&gt;

&lt;p&gt;These posts have specific patterns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Title asks a direct question about the problem&lt;/li&gt;
&lt;li&gt;Posted within the last 24 hours (still on front page of subreddit)&lt;/li&gt;
&lt;li&gt;OP is actively replying to comments&lt;/li&gt;
&lt;li&gt;5+ comments already (engaged thread)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are the only posts worth engaging with. A thread from 3 weeks ago with no new activity drives zero traffic even if your comment is excellent.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 80/20 rule
&lt;/h2&gt;

&lt;p&gt;80% of your reply: answer the question directly and well.&lt;br&gt;
20% of your reply: soft product mention (or nothing at all).&lt;/p&gt;

&lt;p&gt;This ratio is not a suggestion. It is what determines whether your comment gets upvoted or removed.&lt;/p&gt;

&lt;p&gt;Reddit users upvote genuinely helpful comments. They downvote comments that feel like ads. The platform itself deprioritizes accounts with high promotional ratios.&lt;/p&gt;

&lt;p&gt;A reply that helps without mentioning your product still builds:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Account karma (gives future comments more visibility)&lt;/li&gt;
&lt;li&gt;Community trust (future product mentions land better)&lt;/li&gt;
&lt;li&gt;Google indexing (your comment gets indexed if it gets upvotes)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What actually kills accounts
&lt;/h2&gt;

&lt;p&gt;The comment style that gets accounts removed within days:&lt;/p&gt;

&lt;p&gt;"Hey! I built [product] that solves exactly this. Check it out: [link]. 14-day free trial available!"&lt;/p&gt;

&lt;p&gt;Every mod has seen this 500 times. It gets removed in under an hour.&lt;/p&gt;

&lt;p&gt;The account behaviors that trigger shadowbans:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only posting product mentions (no neutral helpful posts)&lt;/li&gt;
&lt;li&gt;Same comment structure posted to 5 different threads&lt;/li&gt;
&lt;li&gt;New account with zero karma suddenly promoting a product&lt;/li&gt;
&lt;li&gt;Posting from a username that looks like a brand&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The warmup protocol (not optional)
&lt;/h2&gt;

&lt;p&gt;First 7 days on any new Reddit account: zero product mentions. Zero links. Zero self-promotion.&lt;/p&gt;

&lt;p&gt;Only: genuine, helpful replies in your target subreddits.&lt;/p&gt;

&lt;p&gt;The goal is 15+ karma from upvoted comments before you mention anything.&lt;/p&gt;

&lt;p&gt;Accounts with no karma history that suddenly start promoting products get shadowbanned immediately. Reddit can see the pattern. Warmup is not optional.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hard limits (stay under these)
&lt;/h2&gt;

&lt;p&gt;Per day:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maximum 5 comments with any product mention&lt;/li&gt;
&lt;li&gt;Maximum 2 comments per day in any single subreddit&lt;/li&gt;
&lt;li&gt;Minimum 25 minutes between any two comments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a comment gets removed by mods: pause that subreddit for 7 days. Read the rules again. Do not appeal unless you are certain it was a mistake.&lt;/p&gt;




&lt;h2&gt;
  
  
  The comment that works
&lt;/h2&gt;

&lt;p&gt;Thread: "Why does my LinkedIn outreach get 2% reply rate?"&lt;/p&gt;

&lt;h2&gt;
  
  
  Reply that generates clicks:
&lt;/h2&gt;

&lt;p&gt;The main issue is usually the signal, not the message.&lt;/p&gt;

&lt;p&gt;Most people send to their full prospect list. The ones worth contacting right now are about 10-15% of that list - people who just changed jobs, companies that just raised funding, or people who posted about the exact problem you solve in the last 7 days.&lt;/p&gt;

&lt;p&gt;Send to those 10-15% only. Same message. Reply rate goes from 2% to 25%+ in most cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you want the exact scoring criteria I use, I can drop it here.
&lt;/h2&gt;

&lt;p&gt;Why this works: answers the actual question first, gives a specific number, ends with offer to help more. No link, no product name. Gets upvoted. Gets replies. Builds trust.&lt;/p&gt;




&lt;h2&gt;
  
  
  The pack
&lt;/h2&gt;

&lt;p&gt;4 files covering the complete Reddit growth system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;signal-finder.md - intent keyword strategy, post scoring, subreddit tiers&lt;/li&gt;
&lt;li&gt;engagement-rules.md - 80/20 rule, comment templates, hard limits, recovery protocol&lt;/li&gt;
&lt;li&gt;growth-examples.md - 10 annotated comments with explanations&lt;/li&gt;
&lt;li&gt;setup-guide.md - 30-day sequence from account creation to scaled engagement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pack coming to &lt;a href="https://openclaw-courses-fawn.vercel.app" rel="noopener noreferrer"&gt;https://openclaw-courses-fawn.vercel.app&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Romain Rabreau, Recon0x. &lt;a href="mailto:romain@recon0x.com"&gt;romain@recon0x.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tutorial</category>
      <category>marketing</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Cold email in 2026: why 97% of campaigns fail before the first send</title>
      <dc:creator>Romain Rabreau</dc:creator>
      <pubDate>Mon, 09 Mar 2026 23:18:31 +0000</pubDate>
      <link>https://dev.to/romainrabreau/cold-email-in-2026-why-97-of-campaigns-fail-before-the-first-send-3c52</link>
      <guid>https://dev.to/romainrabreau/cold-email-in-2026-why-97-of-campaigns-fail-before-the-first-send-3c52</guid>
      <description>&lt;h1&gt;
  
  
  Cold email in 2026: why 97% of campaigns fail before the first send
&lt;/h1&gt;

&lt;p&gt;Most cold email fails before you write a single word.&lt;/p&gt;

&lt;p&gt;The message is fine. The targeting might even be decent.&lt;br&gt;
The problem is the infrastructure.&lt;/p&gt;




&lt;h2&gt;
  
  
  The spam filter problem
&lt;/h2&gt;

&lt;p&gt;Gmail alone blocks approximately 100 million spam emails every day.&lt;br&gt;
Legitimate cold outreach gets caught in the crossfire constantly.&lt;/p&gt;

&lt;p&gt;Your email lands in spam not because of what you wrote. It lands there because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your domain is less than 30 days old with no warmup&lt;/li&gt;
&lt;li&gt;Your SPF/DKIM/DMARC is misconfigured or missing&lt;/li&gt;
&lt;li&gt;You sent 200 emails on day 1 from a fresh mailbox&lt;/li&gt;
&lt;li&gt;Your list has a 6%+ bounce rate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these is a separate blacklist trigger. Most cold emailers hit 3 out of 4.&lt;/p&gt;




&lt;h2&gt;
  
  
  The three technical requirements
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Authentication (SPF, DKIM, DMARC)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SPF tells receiving servers which IPs are authorized to send from your domain.&lt;br&gt;
DKIM puts a cryptographic signature on each email proving it was not modified in transit.&lt;br&gt;
DMARC combines both and tells servers what to do when authentication fails.&lt;/p&gt;

&lt;p&gt;Without all three configured correctly: spam folder, regardless of copy quality.&lt;/p&gt;

&lt;p&gt;Verify yours at mxtoolbox.com before sending anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Domain warmup&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;New domain = zero sender reputation. Spam filters see you as unknown.&lt;/p&gt;

&lt;p&gt;The warmup process: send small volumes of emails that get replied to naturally, building engagement history over 4-6 weeks.&lt;/p&gt;

&lt;p&gt;Week 1-2: 5 emails/day&lt;br&gt;
Week 3-4: 15 emails/day&lt;br&gt;
Week 5-6: 30 emails/day&lt;br&gt;
Week 7+: 50 emails/day per mailbox (do not exceed this)&lt;/p&gt;

&lt;p&gt;Warmup services (Instantly Warmup, Mailwarm, Lemwarm) automate this by sending emails between a network of accounts and generating replies. Manual warmup works but takes significantly longer.&lt;/p&gt;

&lt;p&gt;Do not skip warmup. Sending 100 emails/day from a 3-day-old domain triggers blacklists within 24 hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. List verification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every undeliverable email is a bounce. Bounce rate above 2% = sender score damage. Above 5% = blacklist.&lt;/p&gt;

&lt;p&gt;Verify every email before import using NeverBounce, ZeroBounce, or Hunter.io verifier.&lt;/p&gt;

&lt;p&gt;Remove:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Invalid/non-existent emails (hard bounces)&lt;/li&gt;
&lt;li&gt;Role-based addresses: info@, contact@, admin@, support@&lt;/li&gt;
&lt;li&gt;Disposable email addresses&lt;/li&gt;
&lt;li&gt;Catch-all emails (high risk)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A purchased list from 2 years ago has a 40-60% invalid rate. Build lists fresh, verify before every campaign.&lt;/p&gt;




&lt;h2&gt;
  
  
  The copy benchmarks (what actually moves the needle)
&lt;/h2&gt;

&lt;p&gt;Once infrastructure is solid, copy matters. The numbers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hyper-personalized subject lines: 86.6% open rate&lt;/li&gt;
&lt;li&gt;Generic subject lines: 37% open rate&lt;/li&gt;
&lt;li&gt;Elite campaigns: 10.7%+ reply rate with under 80 words per email&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Subject line rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;36-50 characters (shows fully on mobile)&lt;/li&gt;
&lt;li&gt;Include name OR company - not both&lt;/li&gt;
&lt;li&gt;Never: "Free", "% off", "Limited time", "Guaranteed"&lt;/li&gt;
&lt;li&gt;Reference something specific to that person&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Body rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Under 80 words total&lt;/li&gt;
&lt;li&gt;4-6 lines maximum&lt;/li&gt;
&lt;li&gt;One CTA - under 10 words&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The opener must pass this test: delete the prospect name and company. If the email still makes sense, rewrite it. It means you could send it to 10,000 people unchanged. That is what gets filtered.&lt;/p&gt;




&lt;h2&gt;
  
  
  Reply rate benchmarks (2026)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Below 1%: message relevance problem&lt;/li&gt;
&lt;li&gt;1-3%: industry average&lt;/li&gt;
&lt;li&gt;3-7%: good&lt;/li&gt;
&lt;li&gt;7%+: elite (requires signal-based targeting + correct infrastructure)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most campaigns hitting "industry average" are not doing the infrastructure work. 3% is achievable for any B2B campaign with correct setup.&lt;/p&gt;




&lt;h2&gt;
  
  
  The full cold email pack
&lt;/h2&gt;

&lt;p&gt;I put together 6 files covering the complete setup:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;domain-setup.md - SPF/DKIM/DMARC, secondary domains, warmup sequence&lt;/li&gt;
&lt;li&gt;email-copy.md - subject line rules, body structure, opener test&lt;/li&gt;
&lt;li&gt;list-hygiene.md - verification, suppression, list sources that kill deliverability&lt;/li&gt;
&lt;li&gt;quality-check.md - 5-point scoring system, pre-send checklist&lt;/li&gt;
&lt;li&gt;sequences.md - 4-email sequence templates that work&lt;/li&gt;
&lt;li&gt;setup-guide.md - week-by-week setup from zero to first campaign&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pack: &lt;a href="https://openclaw-courses-fawn.vercel.app" rel="noopener noreferrer"&gt;https://openclaw-courses-fawn.vercel.app&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Romain Rabreau, Recon0x. &lt;a href="mailto:romain@recon0x.com"&gt;romain@recon0x.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tutorial</category>
      <category>automation</category>
      <category>webdev</category>
    </item>
    <item>
      <title>OpenClaw LinkedIn outreach: avoid bans, stay under limits, protect your account</title>
      <dc:creator>Romain Rabreau</dc:creator>
      <pubDate>Mon, 09 Mar 2026 22:36:50 +0000</pubDate>
      <link>https://dev.to/romainrabreau/openclaw-linkedin-outreach-avoid-bans-stay-under-limits-protect-your-account-5bi</link>
      <guid>https://dev.to/romainrabreau/openclaw-linkedin-outreach-avoid-bans-stay-under-limits-protect-your-account-5bi</guid>
      <description>&lt;h1&gt;
  
  
  OpenClaw LinkedIn outreach: avoid bans, stay under limits, protect your account
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; openclaw, productivity, automation, security&lt;/p&gt;




&lt;p&gt;Running LinkedIn outreach with OpenClaw is powerful. Getting your account restricted is not. This is the safety guide.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why LinkedIn restricts accounts
&lt;/h2&gt;

&lt;p&gt;LinkedIn monitors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Message volume per day&lt;/li&gt;
&lt;li&gt;Connection request acceptance rate&lt;/li&gt;
&lt;li&gt;Profile visit frequency&lt;/li&gt;
&lt;li&gt;Message response rate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If any of these look automated or spammy, LinkedIn restricts your account. Restriction starts with a temporary block. Repeat violations = permanent ban.&lt;/p&gt;

&lt;p&gt;Most OpenClaw users get restricted because they skip signal scoring and message everyone. Low reply rate + high volume = automated behavior flag.&lt;/p&gt;




&lt;h2&gt;
  
  
  Hard limits to respect
&lt;/h2&gt;

&lt;p&gt;Build these into your outreach-sequence.md:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Daily limit&lt;/th&gt;
&lt;th&gt;Weekly limit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Connection requests&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Direct messages&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;150&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Profile visits&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;InMail (paid)&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Stay 20% below these limits at all times. If your account is new (&amp;lt;3 months), use 50% of these limits.&lt;/p&gt;




&lt;h2&gt;
  
  
  The warmup phase
&lt;/h2&gt;

&lt;p&gt;If your LinkedIn account is new or has been inactive:&lt;/p&gt;

&lt;p&gt;Week 1-2: 5 connections/day, 5 messages/day&lt;br&gt;&lt;br&gt;
Week 3-4: 10 connections/day, 15 messages/day&lt;br&gt;&lt;br&gt;
Week 5+: full limits&lt;/p&gt;

&lt;p&gt;Do not skip warmup. An account that jumps from 0 to 20 connections/day in one day gets flagged.&lt;/p&gt;




&lt;h2&gt;
  
  
  Signal scoring is a safety mechanism
&lt;/h2&gt;

&lt;p&gt;The signal-lead-finder.md skill does two things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Improves reply rate (35%+ on strong signals)&lt;/li&gt;
&lt;li&gt;Protects your account (higher reply rate = lower spam signal to LinkedIn)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A campaign with 3% reply rate looks like spam to LinkedIn.&lt;br&gt;
A campaign with 35% reply rate looks like genuine outreach.&lt;/p&gt;

&lt;p&gt;Same messages. Different targeting.&lt;/p&gt;




&lt;h2&gt;
  
  
  Time distribution
&lt;/h2&gt;

&lt;p&gt;Do not send all messages at 9:00 AM in one burst. Spread them across the day.&lt;/p&gt;

&lt;p&gt;The outreach-sequence.md skill handles this automatically: it spaces sends across business hours (8 AM - 6 PM local time), with random delays between sends.&lt;/p&gt;




&lt;h2&gt;
  
  
  Account age matters
&lt;/h2&gt;

&lt;p&gt;Accounts under 6 months: use 30% of the daily limits.&lt;br&gt;
Accounts 6-12 months: use 60%.&lt;br&gt;
Accounts over 12 months with history: full limits.&lt;/p&gt;




&lt;h2&gt;
  
  
  Signs your account is at risk
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Connection acceptance rate drops below 25%&lt;/li&gt;
&lt;li&gt;LinkedIn prompts you to verify your identity&lt;/li&gt;
&lt;li&gt;Messages show as "pending" more than usual&lt;/li&gt;
&lt;li&gt;You see a "you have reached your limit" message earlier than expected&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If any of these happen: stop the campaign for 48 hours, then restart at 50% of previous volume.&lt;/p&gt;




&lt;h2&gt;
  
  
  The safest setup
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Use signal scoring (score 3 only for first 2 weeks)&lt;/li&gt;
&lt;li&gt;Warm up the account before running full volume&lt;/li&gt;
&lt;li&gt;Keep reply rate above 20% (bad targeting is the main ban cause)&lt;/li&gt;
&lt;li&gt;Never send the same message to more than 5 people per day&lt;/li&gt;
&lt;li&gt;Space sends across the day automatically (outreach-sequence.md does this)&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Get the skill files
&lt;/h2&gt;

&lt;p&gt;The outreach-sequence.md skill handles all of this automatically: timing, daily limits, stops on reply.&lt;/p&gt;

&lt;p&gt;Signal finder (free): &lt;code&gt;npx clawhub@latest install romainrabreau/linkedin-prospector&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Full pack: &lt;a href="https://openclaw-courses-fawn.vercel.app" rel="noopener noreferrer"&gt;openclaw-courses-fawn.vercel.app&lt;/a&gt; - €14.99&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Romain Rabreau, Recon0x. &lt;a href="mailto:romain@recon0x.com"&gt;romain@recon0x.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>productivity</category>
      <category>automation</category>
      <category>security</category>
    </item>
    <item>
      <title>How to set up OpenClaw for LinkedIn outreach (step-by-step, 2026)</title>
      <dc:creator>Romain Rabreau</dc:creator>
      <pubDate>Mon, 09 Mar 2026 22:36:20 +0000</pubDate>
      <link>https://dev.to/romainrabreau/how-to-set-up-openclaw-for-linkedin-outreach-step-by-step-2026-1i7o</link>
      <guid>https://dev.to/romainrabreau/how-to-set-up-openclaw-for-linkedin-outreach-step-by-step-2026-1i7o</guid>
      <description>&lt;h1&gt;
  
  
  How to set up OpenClaw for LinkedIn outreach (step-by-step, 2026)
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; openclaw, productivity, automation, webdev&lt;/p&gt;




&lt;p&gt;This is the setup guide for the OpenClaw LinkedIn Prospecting Pack. If you want the skill files, they are at &lt;a href="https://openclaw-courses-fawn.vercel.app" rel="noopener noreferrer"&gt;openclaw-courses-fawn.vercel.app&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This guide covers: prospect list setup, skill loading, first scan, daily operation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Before starting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenClaw v2 or later installed and running&lt;/li&gt;
&lt;li&gt;A LinkedIn account with some connection capacity (20 requests/day minimum)&lt;/li&gt;
&lt;li&gt;A list of target prospects: first name, LinkedIn URL, company, title&lt;/li&gt;
&lt;li&gt;The three skill files loaded (see below)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 1 - Define your ICP in one sentence
&lt;/h2&gt;

&lt;p&gt;Tell your agent exactly who you are targeting before it does anything else.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;WHO: Heads of Sales and VP Sales at B2B SaaS companies, 20-200 employees, Europe
WHY THEY NEED YOU: Their outreach reply rate is under 5%. They do not know why.
WHAT YOU OFFER: Skill files that fix this. 35%+ reply rate, measured.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This context gets passed to every action the agent takes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2 - Load the skill files
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;SKILL signal-lead-finder.md
SKILL outreach-sequence.md  
SKILL message-quality-check.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The signal-lead-finder scores every prospect 0-3:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Score 3&lt;/strong&gt;: new job &amp;lt;90 days, funding &amp;lt;6 months, post &amp;lt;7 days, active hiring&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Score 2&lt;/strong&gt;: weaker signals&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Score 0-1&lt;/strong&gt;: skip entirely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Only score 3 prospects get message 1. This is not optional. Sending to low-signal prospects is why most OpenClaw outreach fails.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3 - Build your prospect list
&lt;/h2&gt;

&lt;p&gt;Minimum fields: &lt;code&gt;first_name&lt;/code&gt;, &lt;code&gt;linkedin_url&lt;/code&gt;, &lt;code&gt;company&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Export from LinkedIn Sales Navigator (CSV)&lt;/li&gt;
&lt;li&gt;Manual spreadsheet (50+ rows minimum)&lt;/li&gt;
&lt;li&gt;CRM export (filter out anyone contacted in last 90 days)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Upload the list to your agent session.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4 - Run the signal scan
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Scan the prospect list. Apply signal-lead-finder.md. 
Score every prospect 0-3. Sort by score descending. 
Show me the top 20 with their signals."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected distribution on 100 prospects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Score 3: 8-15 people&lt;/li&gt;
&lt;li&gt;Score 2: 20-30 people
&lt;/li&gt;
&lt;li&gt;Score 0-1: 55-70 people (skip)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have zero score-3 prospects: your list is stale. Refresh it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5 - Review the first 5 messages
&lt;/h2&gt;

&lt;p&gt;Before running the full campaign, ask your agent to draft message 1 for the top 5 score-3 prospects and show you the quality scores.&lt;/p&gt;

&lt;p&gt;Each message must:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Score 4+/5 on the quality check&lt;/li&gt;
&lt;li&gt;Be under 150 characters&lt;/li&gt;
&lt;li&gt;Reference the specific signal detected&lt;/li&gt;
&lt;li&gt;Have 70% about the prospect, 30% about your offer&lt;/li&gt;
&lt;li&gt;Contain none of the forbidden words&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Forbidden words: synergy, collaboration, leverage, potential, value-add, "I came across your profile", "I would be happy to", "companies like yours"&lt;/p&gt;

&lt;p&gt;If the quality score is below 4: the agent rewrites. You review again.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 6 - Run the campaign
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Send messages to all score-3 prospects.
Apply outreach-sequence.md.
Log every send. Stop any sequence on reply.
Respect LinkedIn daily limits: 20 connections, 30 messages."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The sequence runs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Day 0: message 1 (after quality check passes)&lt;/li&gt;
&lt;li&gt;Day 3: follow-up if no reply&lt;/li&gt;
&lt;li&gt;Day 7: final message ("last try")&lt;/li&gt;
&lt;li&gt;On reply: full stop&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 7 - Monitor and scale
&lt;/h2&gt;

&lt;p&gt;After 7 days, check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Give me a campaign summary: 
 total sent, total replies, reply rate, 
 top 3 messages by performance."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Benchmarks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Below 15% reply rate: message quality problem. Rewrite.&lt;/li&gt;
&lt;li&gt;15-25%: acceptable, optimize.&lt;/li&gt;
&lt;li&gt;25-35%: good. Scale the list.&lt;/li&gt;
&lt;li&gt;Above 35%: excellent. Add 100 new prospects per week.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Common mistakes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sending without signal scoring&lt;/strong&gt;: reply rate drops to 3-5%. Always score first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Too many follow-ups&lt;/strong&gt;: 3 messages maximum. Day 0, day 3, day 7. Not day 0, 1, 2, 3, 4.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Generic first message&lt;/strong&gt;: if it could be sent to 1000 people without editing, it will not work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ignoring the quality score&lt;/strong&gt;: if the agent scores a message 3/5, it does not send. You fix it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Get the full pack
&lt;/h2&gt;

&lt;p&gt;Signal finder (free) is on ClawhHub: &lt;code&gt;npx clawhub@latest install romainrabreau/linkedin-prospector&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Full pack (3 skill files + setup course + 10 winning examples + sales methodology): &lt;a href="https://openclaw-courses-fawn.vercel.app" rel="noopener noreferrer"&gt;openclaw-courses-fawn.vercel.app&lt;/a&gt; - €14.99, delivered by email.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Romain Rabreau, founder of Recon0x. &lt;a href="mailto:romain@recon0x.com"&gt;romain@recon0x.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>productivity</category>
      <category>automation</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Why your LinkedIn messages get 3% reply rate (and what actually changes it)</title>
      <dc:creator>Romain Rabreau</dc:creator>
      <pubDate>Mon, 09 Mar 2026 22:15:18 +0000</pubDate>
      <link>https://dev.to/romainrabreau/why-your-linkedin-messages-get-3-reply-rate-and-what-actually-changes-it-4b68</link>
      <guid>https://dev.to/romainrabreau/why-your-linkedin-messages-get-3-reply-rate-and-what-actually-changes-it-4b68</guid>
      <description>&lt;h1&gt;
  
  
  Why your LinkedIn messages get 3% reply rate (and what actually changes it)
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; openclaw, sales, productivity, automation&lt;/p&gt;




&lt;p&gt;I ran 47 LinkedIn outreach campaigns over 18 months. The average reply rate across all of them was 4.2%.&lt;/p&gt;

&lt;p&gt;Then I changed three things. The next campaign got 38%.&lt;/p&gt;

&lt;p&gt;This is not about AI. This is about the message. And about who you send it to, and when.&lt;/p&gt;




&lt;h2&gt;
  
  
  The real reason nobody replies
&lt;/h2&gt;

&lt;p&gt;Most people think the problem is volume. Send more, get more replies. So they automate, they scale, they send 500 messages a month.&lt;/p&gt;

&lt;p&gt;The reply rate stays at 3-4%.&lt;/p&gt;

&lt;p&gt;The actual problem is that the message is irrelevant. Not irrelevant because it is bad writing. Irrelevant because it is sent to the wrong person at the wrong time. The prospect has no reason to care today.&lt;/p&gt;

&lt;p&gt;Here is what most messages look like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hello Sophie, I came across your profile and was really impressed by your background at Datadome. I believe there could be real synergy between your growth objectives and our innovative solution. I would be happy to schedule a call to explore potential collaboration opportunities. Best regards."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That message has a 1.8% reply rate. I know because I tracked it.&lt;/p&gt;

&lt;p&gt;It fails for three reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It could be sent to anyone. Nothing in it says "I know something specific about you right now."&lt;/li&gt;
&lt;li&gt;It leads with the sender, not the prospect. 70% of the message is about the sender's product.&lt;/li&gt;
&lt;li&gt;There is no timing. Why should Sophie care today? What happened recently?&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Signal first. Message second.
&lt;/h2&gt;

&lt;p&gt;The highest-converting campaigns I ran all had one thing in common: they started from a signal, not a list.&lt;/p&gt;

&lt;p&gt;A signal is something that happened recently that makes a prospect more likely to need what you offer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;New job&lt;/strong&gt; (&amp;lt;90 days): they are building their own process, deciding what tools to use&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Funding&lt;/strong&gt; (&amp;lt;6 months): they are scaling, hiring, spending&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Published post&lt;/strong&gt; (&amp;lt;7 days): they are thinking about a specific problem right now&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Active hiring&lt;/strong&gt; (tied to your offer): they have a gap they are trying to fill&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If none of these apply, the person is not ready. Skip them. Come back when a signal appears.&lt;/p&gt;

&lt;p&gt;I built a scoring system: 0-3 based on signal strength. Score 0-1 = skip. Score 3 = message today.&lt;/p&gt;

&lt;p&gt;When you filter a list of 200 prospects by signal, you might end up with 15 worth messaging. That is fine. Your reply rate on those 15 will be 40%+. Your reply rate on the other 185 would have been under 5%.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 70/30 rule
&lt;/h2&gt;

&lt;p&gt;Once you have the right person at the right time, the message still needs to work.&lt;/p&gt;

&lt;p&gt;The rule I follow: 70% of the message is about the prospect's situation, problem, or context. 30% is about your offer or your question.&lt;/p&gt;

&lt;p&gt;Most messages invert this ratio. They spend 80% explaining the product and 20% (if that) acknowledging the prospect.&lt;/p&gt;

&lt;p&gt;An example of a message that follows the rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Hey Marc, saw you just joined Datadome as VP Sales. Built something that cuts SDR ramp time in half. 5 minutes?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is 11 words about Marc's situation (new role, specific company) and 9 words about the offer. No product name, no feature list, no "synergy." One question, binary answer.&lt;/p&gt;

&lt;p&gt;That message gets 41% reply rate. The before version (similar content, traditional format) got 4%.&lt;/p&gt;




&lt;h2&gt;
  
  
  Forbidden words
&lt;/h2&gt;

&lt;p&gt;There is a list of words that pattern-match instantly as AI-generated, template-based outreach. When a prospect reads them, they archive the message without thinking.&lt;/p&gt;

&lt;p&gt;Never use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;synergy, collaboration, leverage, potential, value-add&lt;/li&gt;
&lt;li&gt;"I came across your profile"&lt;/li&gt;
&lt;li&gt;"I would be happy to" / "I'd be delighted to"&lt;/li&gt;
&lt;li&gt;"companies like yours"&lt;/li&gt;
&lt;li&gt;"innovative solution" / "cutting-edge" / "game-changing"&lt;/li&gt;
&lt;li&gt;"I think there could be a great fit"&lt;/li&gt;
&lt;li&gt;Any sentence over 25 words&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These words do not just sound bad. They signal "this person did not think about me specifically." That is the death of a first message.&lt;/p&gt;




&lt;h2&gt;
  
  
  The sequence
&lt;/h2&gt;

&lt;p&gt;One message is not a campaign. But three bad follow-ups are worse than one message.&lt;/p&gt;

&lt;p&gt;The timing that works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Day 0: first message&lt;/li&gt;
&lt;li&gt;Day 3: follow-up (reference day 0, add something new if possible)&lt;/li&gt;
&lt;li&gt;Day 7: final message ("last try, say the word and I won't bother you again")&lt;/li&gt;
&lt;li&gt;On reply: stop everything immediately&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The day 7 message alone generates 18% reply rate from people who ignored messages 1 and 2. It works because it gives control back to the prospect.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I automated this with OpenClaw
&lt;/h2&gt;

&lt;p&gt;I run an OpenClaw agent that handles the entire prospecting process:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Scans my prospect list, scores every prospect by signal (0-3)&lt;/li&gt;
&lt;li&gt;Skips score 0 and 1&lt;/li&gt;
&lt;li&gt;Drafts message 1 for score 3 prospects&lt;/li&gt;
&lt;li&gt;Scores the message (70/30 check, forbidden words, 150-char limit) - must reach 4/5 to send&lt;/li&gt;
&lt;li&gt;Sends, logs, respects LinkedIn daily limits&lt;/li&gt;
&lt;li&gt;Queues day 3 and day 7 follow-ups automatically&lt;/li&gt;
&lt;li&gt;Stops the sequence the moment someone replies&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The agent runs 24/7. My job is to handle the conversations that come in.&lt;/p&gt;

&lt;p&gt;I packaged the methodology into three skill files for OpenClaw: &lt;code&gt;signal-lead-finder.md&lt;/code&gt;, &lt;code&gt;outreach-sequence.md&lt;/code&gt;, &lt;code&gt;message-quality-check.md&lt;/code&gt;. You load them into your agent and it runs this exact system.&lt;/p&gt;

&lt;p&gt;If you want the skill files + setup guide + 10 annotated examples: &lt;a href="https://openclaw-courses-fawn.vercel.app" rel="noopener noreferrer"&gt;https://openclaw-courses-fawn.vercel.app&lt;/a&gt; (€14.99).&lt;/p&gt;




&lt;h2&gt;
  
  
  The number to optimize
&lt;/h2&gt;

&lt;p&gt;Not open rate. Not connection rate. Not volume.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reply rate.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Below 15%: the message is broken. Rewrite.&lt;br&gt;
15-25%: acceptable, optimize.&lt;br&gt;
25-35%: good targeting, good messages.&lt;br&gt;
Above 35%: scale the list.&lt;/p&gt;

&lt;p&gt;If you are sending 500 messages a month at 3% reply rate, you are getting 15 replies. If you send 50 messages at 40% reply rate, you get 20 replies and you spent 10% of the time.&lt;/p&gt;

&lt;p&gt;Send fewer messages to better targets. Write better messages.&lt;/p&gt;

&lt;p&gt;That is the whole thing.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by Romain Rabreau, founder of Recon0x.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>openclaw</category>
      <category>sales</category>
      <category>productivity</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
