3.9kā
by dylanbaker24
linkedin-inbox ā OpenClaw Skill
linkedin-inbox is an OpenClaw Skills integration for communication workflows. LinkedIn inbox management with scheduled scanning, auto-draft responses following user's communication style, and approval workflows. Use when monitoring LinkedIn messages, drafting replies, managing inbox during off-hours, or setting up morning ping summaries of LinkedIn activity.
Skill Snapshot
| name | linkedin-inbox |
| description | LinkedIn inbox management with scheduled scanning, auto-draft responses following user's communication style, and approval workflows. Use when monitoring LinkedIn messages, drafting replies, managing inbox during off-hours, or setting up morning ping summaries of LinkedIn activity. OpenClaw Skills integration. |
| owner | dylanbaker24 |
| repository | dylanbaker24/linkedin-inbox |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @dylanbaker24/linkedin-inbox |
| last updated | Feb 7, 2026 |
Maintainer

name: linkedin-inbox description: LinkedIn inbox management with scheduled scanning, auto-draft responses following user's communication style, and approval workflows. Use when monitoring LinkedIn messages, drafting replies, managing inbox during off-hours, or setting up morning ping summaries of LinkedIn activity.
LinkedIn Inbox Manager
Automated LinkedIn inbox monitoring with human-in-the-loop approval for responses. Uses Peekaboo for UI automation (no API rate limits, works with any LinkedIn account).
Requirements
- macOS with Peekaboo CLI installed (
brew install steipete/tap/peekaboo) - Screen Recording + Accessibility permissions granted
- LinkedIn logged in via browser (Chrome recommended)
- Clawdbot with browser capability
Quick Start
1. One-time Setup
# Grant Peekaboo permissions
peekaboo permissions
# Verify LinkedIn is accessible
peekaboo app launch "Google Chrome"
peekaboo see --app "Google Chrome" --annotate --path /tmp/linkedin-check.png
2. Configure User Style
Create linkedin-inbox-config.json in your workspace:
{
"scan": {
"intervalMinutes": 60,
"activeHours": { "start": 9, "end": 18, "timezone": "America/Los_Angeles" },
"skipWeekends": true
},
"drafting": {
"styleProfile": "USER.md",
"templates": {
"decline": "Thanks for reaching out. Not a fit for us right now, but best of luck.",
"interested": "This looks interesting. Happy to chat more. What's your availability?",
"referral": "I might know someone. Let me check and get back to you."
}
},
"notifications": {
"channel": "discord",
"target": "#linkedin"
}
}
3. Start Monitoring
Tell your agent: "Start LinkedIn inbox monitoring" or add to HEARTBEAT.md:
- Check LinkedIn inbox if last scan >1 hour ago
Core Workflow
Scan Inbox
# Navigate to LinkedIn messaging
peekaboo app launch "Google Chrome"
peekaboo menu click --app "Google Chrome" --item "New Tab"
peekaboo type "https://www.linkedin.com/messaging/" --return
sleep 3
# Capture inbox state
peekaboo see --app "Google Chrome" --window-title "Messaging" --annotate --path /tmp/linkedin-inbox.png
The agent reads the annotated screenshot to identify:
- Unread messages (bold names, blue dots)
- Message previews
- Sender names and titles
Draft Responses
For each unread message:
- Agent reads the conversation
- Classifies intent (pitch, networking, job inquiry, spam)
- Drafts response matching user's communication style
- Posts draft to notification channel for approval
Example notification:
š¼ LinkedIn: New message from **Alex M.** (Founder @ SomeCompany)
Preview: "Hi, I noticed you're growing and wondered if..."
**My read:** Services pitch. Doesn't fit current needs.
**Draft reply:**
> Thanks for reaching out. We're set on that side for now, but I'll keep you in mind if that changes.
React ā
to send, ā to skip, or reply with edits.
Send Approved Messages
On approval:
# Click into conversation
peekaboo click --on [message-element-id] --app "Google Chrome"
sleep 1
# Type response
peekaboo type "Your approved message here" --app "Google Chrome"
# Send (Enter or click Send button)
peekaboo press return --app "Google Chrome"
Communication Style Matching
The skill reads USER.md (or configured style file) to match the user's tone:
Extract these signals:
- Formality level (casual vs professional)
- Typical greeting style
- Sign-off patterns
- Sentence length preference
- Banned words/phrases
- Response length norms
Apply to drafts:
- Mirror detected patterns
- Use user's vocabulary
- Match their directness level
- Respect their guardrails (no "excited", no hype, etc.)
See references/style-extraction.md for detailed guidance.
Morning Ping Integration
Add LinkedIn summary to your morning ping:
š£ The Morning Ping ā Monday, Jan 27
**LinkedIn:**
⢠š Sarah Chen replied ā "That sounds great, let's do Thursday" ā Draft ready
⢠š Mike R. replied ā "Not interested right now" ā No action needed
⢠š© 3 new connection requests (2 sales pitches, 1 relevant)
⢠š© 1 unread message from Alex (job inquiry) ā Draft ready
Reply "send sarah" to approve, "skip mike" to archive.
Approval Commands
Users can respond with:
send [name]- Send the drafted replysend all- Send all pending draftsskip [name]- Archive without replyingedit [name]: [new message]- Replace draft and sendshow [name]- Show full conversation
Scheduled Scanning
Via Cron (Recommended)
{
"schedule": "0 */2 9-18 * * 1-5",
"text": "Scan LinkedIn inbox and post any new messages to #linkedin with draft replies"
}
Via Heartbeat
In HEARTBEAT.md:
- If 9am-6pm PT and last LinkedIn scan >60min: scan inbox, draft replies, post to #linkedin
Safety Rules
- Never send without explicit approval - Always wait for user confirmation
- Rate limit actions - Max 20 LinkedIn actions per hour
- Respect quiet hours - Don't scan outside configured activeHours
- Log everything - Record all actions in daily memory file
- Preserve originals - Never delete messages, only archive
Troubleshooting
"Can't find messaging UI"
- Ensure Chrome is open with LinkedIn logged in
- Check window title matches (may vary by language)
- Use
peekaboo list windows --app "Google Chrome" --jsonto debug
"Session expired"
- LinkedIn sessions expire periodically
- Re-authenticate manually in browser
- Skill will detect login page and notify user
"Peekaboo permissions denied"
peekaboo permissions # Check status
# Grant via System Preferences > Privacy & Security > Screen Recording + Accessibility
Files
scripts/scan_inbox.sh- Peekaboo commands for inbox capturescripts/send_message.sh- Peekaboo commands for sendingreferences/style-extraction.md- Guide for communication style matching
No README available.
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
peekaboo permissions
Requirements
- macOS with Peekaboo CLI installed (`brew install steipete/tap/peekaboo`) - Screen Recording + Accessibility permissions granted - LinkedIn logged in via browser (Chrome recommended) - Clawdbot with browser capability
FAQ
How do I install linkedin-inbox?
Run openclaw add @dylanbaker24/linkedin-inbox in your terminal. This installs linkedin-inbox into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/dylanbaker24/linkedin-inbox. Review commits and README documentation before installing.
