Skip to content

How I Built a LinkedIn Prospecting AI Agent That Saves Me €3,000/Month

I was spending 15 hours a week on LinkedIn prospecting. Searching for leads. Reviewing profiles. Writing connection requests. Following up. It was mind-numbing work that I couldn’t justify delegating - freelancer quotes came back at €2,000-5,000 for setting up an N8N automation workflow.

Then I found OpenClaw with the BeReach skill.

The Problem

Manual LinkedIn prospecting follows a tedious pattern:

  1. Search for relevant leads
  2. Check if they match your ICP
  3. Write a personalized connection request
  4. Wait for acceptance
  5. Send a follow-up DM
  6. Track everything in a spreadsheet

I tried various automation tools. Most either:

  • Lacked intelligence (generic template blasts)
  • Risked my account (aggressive rate limits)

LinkedIn flags suspicious activity fast. One wrong move and you’re restricted.

What I Built

An AI agent that runs every morning at 8am:

Daily Workflow
[8:00 AM Trigger]
|
v
[Intent Signal Search]
- Post engagement analysis
- Job change detection
- Hiring activity monitoring
|
v
[ICP Scoring]
- Industry match
- Company size fit
- Role relevance
|
v
[Personalized Outreach]
- Custom connection requests
- Tailored DM sequences
|
v
[50+ Qualified Prospects]

The key components:

Architecture Overview
OpenClaw Agent (orchestration)
|
+-- BeReach Skill (LinkedIn API layer)
|
+-- ICP Configuration (scoring rules)
|
+-- Safety Layer (rate limiting, warm-up)

The Configuration

Here’s the agent setup that works:

agent_config.py
agent_config = {
"schedule": "0 8 * * *", # Daily at 8am
"skill": "BeReach",
"actions": [
"search_intent_signals",
"score_against_icp",
"generate_personalized_outreach",
"send_connection_requests"
],
"safety": {
"warmup_days": 14,
"daily_limit": 50,
"rate_limit_per_hour": 10
}
}

The safety configuration is critical. LinkedIn monitors for bot-like behavior.

What I Got Wrong First

I initially set daily_limit: 100. Within 3 days, LinkedIn restricted my account for “unusual activity.”

Turns out, LinkedIn’s algorithm flags:

  • Sudden spikes in connection requests
  • Consistent timing patterns
  • High volumes without engagement

The fix:

safety_config.py
safety_config = {
"warmup_days": 14, # Gradual ramp-up
"daily_limit": 50, # Stay under radar
"rate_limit_per_hour": 10, # Natural pace
"random_delay": True, # Add randomness
"engagement_first": True # Like/comment before connecting
}

Intent Signals: The Secret Sauce

The agent doesn’t just search random profiles. It hunts for intent signals:

intent_signals.py
intent_signals = {
"post_engagement": {
"keywords": ["hiring", "looking for", "recommendations"],
"engagement_threshold": 10 # minimum likes/comments
},
"job_changes": {
"lookback_days": 30,
"target_competitors": True
},
"hiring_activity": {
"roles": ["Sales", "Marketing", "Growth"],
"company_fit": "icp_match"
}
}

Why intent signals matter:

Signal TypeConversion RateReason
Cold search2-5%No context
Post engagement15-25%They’re active and interested
Job changes20-30%New role = new priorities
Hiring activity25-35%Budget available

ICP Scoring

The agent scores each lead against my Ideal Customer Profile:

icp_config.py
icp_definition = {
"industry": ["SaaS", "Technology"],
"company_size": "50-500",
"job_titles": ["VP Sales", "Head of Growth", "CMO"],
"exclude": ["Intern", "Assistant", "Junior"],
"min_title_seniority": "Manager"
}

Each lead gets a score from 0-100. Only 70+ scores get outreach.

The Results

After 30 days:

  • 50+ qualified prospects daily (previously: 5-10 manual)
  • Time saved: 15 hours/week
  • Cost saved: €3,000+/month (vs freelancer quotes)
  • Account safety: Zero restrictions (proper warm-up)

Common Mistakes to Avoid

  1. Skipping warm-up - New accounts need gradual activity increase
  2. Ignoring rate limits - LinkedIn aggressively flags automation
  3. Generic messaging - AI should personalize, not template-blast
  4. No ICP definition - Agent needs clear scoring criteria
  5. Cold outreach focus - Intent signals convert 5-10x better

The Setup Process

  1. Install OpenClaw framework
  2. Add BeReach skill for LinkedIn API access
  3. Define your ICP scoring criteria
  4. Configure intent signal sources
  5. Set daily schedule
  6. Enable safety features
  7. Connect LinkedIn with proper permissions
  8. Test with 10 leads before scaling

What I’d Do Differently

If starting over:

  • Start with 20 daily limit for first week
  • Add random delays from day one
  • Focus on one intent signal first (post engagement)
  • Track response rates not just connection rates

When This Doesn’t Work

This approach isn’t for everyone:

  • New LinkedIn accounts (< 6 months old)
  • Aggressive sales targets (> 100 daily)
  • Cold outreach without intent signals
  • Generic ICP definitions

The agent amplifies your ICP clarity. Garbage in, garbage out.

Final Words + More Resources

My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!

Comments