<?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: Giovanni Liguori</title>
    <description>The latest articles on DEV Community by Giovanni Liguori (@gliguori_ai).</description>
    <link>https://dev.to/gliguori_ai</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%2F3842548%2F182cee5f-95c8-4fed-92a3-daa64e1265a5.jpeg</url>
      <title>DEV Community: Giovanni Liguori</title>
      <link>https://dev.to/gliguori_ai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gliguori_ai"/>
    <language>en</language>
    <item>
      <title>Building an AI System That Manages a LinkedIn Profile Without Getting Caught</title>
      <dc:creator>Giovanni Liguori</dc:creator>
      <pubDate>Wed, 25 Mar 2026 05:48:21 +0000</pubDate>
      <link>https://dev.to/gliguori_ai/building-an-ai-system-that-manages-a-linkedin-profile-without-getting-caught-2jjk</link>
      <guid>https://dev.to/gliguori_ai/building-an-ai-system-that-manages-a-linkedin-profile-without-getting-caught-2jjk</guid>
      <description>&lt;p&gt;For 22 days, I've been running a system that autonomously manages a professional LinkedIn profile. Daily posting, strategic engagement, DM triage, weekly reporting — all orchestrated by Claude Cowork with zero manual intervention.&lt;/p&gt;

&lt;p&gt;Today I'm open-sourcing the entire system as a Claude skill. Here's how it works, what went wrong, and what I learned.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Building a professional LinkedIn presence takes 3-4 hours daily: content creation, engagement, analytics, DM management. For a solo professional, that's unsustainable.&lt;/p&gt;

&lt;p&gt;I needed a system that could do all of this autonomously while maintaining a recognizable, human voice — and without getting flagged as AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture: 5-Phase Wizard
&lt;/h2&gt;

&lt;p&gt;The skill isn't a template. It's a guided wizard that builds a personalized automation system:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 1: Identity &amp;amp; Voice&lt;/strong&gt;&lt;br&gt;
15 questions extract your personal tone of voice: rhetorical patterns, vocabulary preferences, emotional registers, even a profile blacklist. The system doesn't start from "what to post" but from "who you are when you write."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 2: Strategy &amp;amp; Content&lt;/strong&gt;&lt;br&gt;
A pillar calendar maps 7 days to 7 content types, each with a different emotional register:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monday: Behind the scenes (curious, vulnerable)&lt;/li&gt;
&lt;li&gt;Tuesday: Tool/Workflow (pragmatic, generous)&lt;/li&gt;
&lt;li&gt;Wednesday: Hot take (provocative, moral)&lt;/li&gt;
&lt;li&gt;Thursday: Case study (proud, specific)&lt;/li&gt;
&lt;li&gt;Friday: How-to (didactic, patient)&lt;/li&gt;
&lt;li&gt;Saturday: Storytelling (personal, reflective)&lt;/li&gt;
&lt;li&gt;Sunday: Soft CTA (direct, confident)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Phase 3: Engagement &amp;amp; Anti-Detection&lt;/strong&gt;&lt;br&gt;
This is where it gets interesting. See the next section.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 4: Task Plan — Review &amp;amp; Approve&lt;/strong&gt;&lt;br&gt;
The user sees all 10 scheduled tasks with times, frequencies, and dependencies. Nothing runs without explicit approval.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 5: Create Tasks &amp;amp; Iterate&lt;/strong&gt;&lt;br&gt;
Tasks are created as cron jobs. The first week is closely monitored. Data feeds the next iteration cycle.&lt;/p&gt;
&lt;h2&gt;
  
  
  Anti-Detection: The Hard Part
&lt;/h2&gt;

&lt;p&gt;Generating LinkedIn content is relatively easy. Not getting caught is the real engineering challenge.&lt;/p&gt;

&lt;p&gt;I built 3 layers:&lt;/p&gt;
&lt;h3&gt;
  
  
  Layer 1: NDI (Natural Dialogue Index)
&lt;/h3&gt;

&lt;p&gt;Every engagement session receives a naturalness score from 1-10 based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comment structure variation&lt;/li&gt;
&lt;li&gt;Topic diversity (AI vs. non-AI)&lt;/li&gt;
&lt;li&gt;Tool mention frequency&lt;/li&gt;
&lt;li&gt;Rhetorical pattern repetition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the session scores below 5.0, the system stops and recalibrates before continuing.&lt;/p&gt;
&lt;h3&gt;
  
  
  Layer 2: 7 Anti-Pattern Rules
&lt;/h3&gt;

&lt;p&gt;Born from actual Day 1 mistakes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Max 2 Claude/Anthropic mentions per 5 comments&lt;/li&gt;
&lt;li&gt;Varied comment structures (never the same pattern twice consecutively)&lt;/li&gt;
&lt;li&gt;At least 1 non-AI topic per session&lt;/li&gt;
&lt;li&gt;Zero "evangelization" expressions&lt;/li&gt;
&lt;li&gt;When someone agrees with us, just like — don't reply seeking another angle&lt;/li&gt;
&lt;li&gt;Mandatory context research before commenting on posts with specific facts&lt;/li&gt;
&lt;li&gt;No more than 15 comments or 30 likes per session&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Layer 3: Epistemic Verification Gate
&lt;/h3&gt;

&lt;p&gt;This was born from a real incident on Day 7. The system commented on a post citing a specific company case, and the AI-generated comment contained an inference that sounded factual but was wrong. The post author asked "what do you mean?" — exposing the gap.&lt;/p&gt;

&lt;p&gt;Now, if a post cites a specific case, company, person, or event, the system MUST:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Read the full post (not just the preview)&lt;/li&gt;
&lt;li&gt;Web search the case if it references specific facts&lt;/li&gt;
&lt;li&gt;Never invent factual claims&lt;/li&gt;
&lt;li&gt;Use opinion framing ("I wonder if...", "the pattern I see is...") when context is unclear&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  The Stack
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ORCHESTRATION              EXECUTION                INFRASTRUCTURE
Claude Cowork              Chrome MCP               Google Cloud
  → 10 cron tasks           → LinkedIn DOM            → Cloud Run
  → Skills (.md)            → post publishing         → Vercel (site)
  → Sub-agents              → engagement sessions     → Sanity CMS
                            → screenshot capture
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;No intermediate tools. No Zapier, n8n, or Make. Claude IS the workflow — not a component in someone else's workflow.&lt;/p&gt;
&lt;h2&gt;
  
  
  Results (22 Days, Unfiltered)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Followers&lt;/td&gt;
&lt;td&gt;45 → 55 (+22%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engagement rate&lt;/td&gt;
&lt;td&gt;3.0% (vs 2.21% baseline)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI-written comments&lt;/td&gt;
&lt;td&gt;75+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L1 proof events&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Detection incidents&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engagement score&lt;/td&gt;
&lt;td&gt;8.0/10 avg&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Posts published&lt;/td&gt;
&lt;td&gt;20/21 (95%)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The numbers aren't spectacular. They're real. And that's the point.&lt;/p&gt;
&lt;h2&gt;
  
  
  What Went Wrong
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Chrome MCP instability&lt;/strong&gt;: ~57% success rate in Week 1. The browser extension disconnected frequently during engagement sessions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Day 1 pattern repetition&lt;/strong&gt;: 3/5 comments had identical structure. Led to the 7 anti-pattern rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Day 7 epistemic failure&lt;/strong&gt;: Wrong inference about a case cited by another professional. Led to the Verification Gate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Engagement "evangelization"&lt;/strong&gt;: Comments like "I use Claude daily for this" sounded like brand promotion. Now capped at 1 per session max.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  The Repo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/videomakingio-gif/claude-linkedin-automation" rel="noopener noreferrer"&gt;github.com/videomakingio-gif/claude-linkedin-automation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add videomakingio-gif/claude-linkedin-automation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Full writeup with all data:&lt;/strong&gt; &lt;a href="https://giovanniliguori.it/blog/claude-linkedin-automation-skill-open-source" rel="noopener noreferrer"&gt;giovanniliguori.it/blog/claude-linkedin-automation-skill-open-source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The skill covers LinkedIn only. I have 21 total tasks covering blog, SEO, and operations, but only the 10 LinkedIn tasks are published — because publishing only what you can prove is more credible than promising everything.&lt;/p&gt;

&lt;p&gt;Feedback and PRs welcome. Especially the uncomfortable kind.&lt;/p&gt;

</description>
      <category>claudeai</category>
      <category>automation</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
