Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Post to LinkedIn, comment, like, search organizations, and manage profiles via Pipedream OAuth integration.
Post to LinkedIn, comment, like, search organizations, and manage profiles via Pipedream OAuth integration.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Full LinkedIn automation using Pipedream's OAuth infrastructure. Post as yourself or your organization, comment on posts, search companies, and more.
pdauth CLI installed and configured โ see pdauth skill LinkedIn account connected via OAuth
# 1. Connect LinkedIn (generates OAuth link for user to click) pdauth connect linkedin --user telegram:5439689035 # 2. After user authorizes, verify connection pdauth status --user telegram:5439689035 # 3. Post to LinkedIn pdauth call linkedin.linkedin-create-text-post-user \ --user telegram:5439689035 \ --args '{"instruction": "Create a post: Excited to announce our new product launch! ๐"}'
# Generate OAuth link pdauth connect linkedin --user USER_ID # Share with user: "Click to authorize LinkedIn: <link>" # User clicks โ authorizes via LinkedIn โ done # Verify connection pdauth status --user USER_ID User ID convention: Use telegram:<user_id> format for Telegram users.
ToolPurposelinkedin-create-text-post-userPost as personal accountlinkedin-create-image-post-userPost with image (personal)linkedin-create-commentComment on any postlinkedin-create-like-on-shareLike a postlinkedin-search-organizationSearch for companieslinkedin-get-current-member-profileGet your own profilelinkedin-get-member-profileGet any member's profilelinkedin-get-org-member-accessCheck org admin statuslinkedin-retrieve-comments-sharesGet comments on a postlinkedin-delete-postDelete your post
ToolIssueWorkaroundlinkedin-create-text-post-organization"tool name too long" bugUse direct SDK calllinkedin-create-image-post-organizationSame bugUse direct SDK call
pdauth call linkedin.linkedin-create-text-post-user \ --user telegram:5439689035 \ --args '{"instruction": "Create a post: Your post content here. Use emojis ๐ and hashtags #AI #Tech"}' Tips: Keep posts under 3000 characters Emojis increase engagement Use line breaks for readability
pdauth call linkedin.linkedin-create-image-post-user \ --user telegram:5439689035 \ --args '{"instruction": "Create image post with text: Check out our new office! Image URL: https://example.com/image.jpg"}'
# Comment using post URN pdauth call linkedin.linkedin-create-comment \ --user telegram:5439689035 \ --args '{"instruction": "Comment on urn:li:share:7293123456789012480 with text: Great insights! Thanks for sharing."}' Finding post URNs: From LinkedIn URL: linkedin.com/posts/username_activity-7293123456789012480 โ URN is urn:li:share:7293123456789012480 Or use linkedin-retrieve-comments-shares on known posts
pdauth call linkedin.linkedin-create-like-on-share \ --user telegram:5439689035 \ --args '{"instruction": "Like the post urn:li:share:7293123456789012480"}'
pdauth call linkedin.linkedin-search-organization \ --user telegram:5439689035 \ --args '{"instruction": "Search for companies matching: artificial intelligence startups"}'
pdauth call linkedin.linkedin-get-current-member-profile \ --user telegram:5439689035 \ --args '{"instruction": "Get my LinkedIn profile"}' Returns: name, headline, URN, vanity name, etc.
pdauth call linkedin.linkedin-get-member-profile \ --user telegram:5439689035 \ --args '{"instruction": "Get profile for member URN urn:li:person:30_5n7bx7f"}'
pdauth call linkedin.linkedin-get-org-member-access \ --user telegram:5439689035 \ --args '{"instruction": "Check my access level for organization 105382747"}' Returns: ADMINISTRATOR, MEMBER, or NONE
pdauth call linkedin.linkedin-retrieve-comments-shares \ --user telegram:5439689035 \ --args '{"instruction": "Get comments for post urn:li:share:7293123456789012480"}'
pdauth call linkedin.linkedin-delete-post \ --user telegram:5439689035 \ --args '{"instruction": "Delete post urn:li:share:7293123456789012480"}'
linkedin-create-text-post-organization fails via MCP with: Error: tool name too long This is a Pipedream MCP bug, not a LinkedIn API issue.
Create a Node.js script to post as organization: // org-post.mjs import { PipedreamClient } from '@pipedream/sdk'; const client = new PipedreamClient({ projectEnvironment: 'development', clientId: 'YOUR_CLIENT_ID', // from ~/.config/pdauth/config.json clientSecret: 'YOUR_CLIENT_SECRET', projectId: 'YOUR_PROJECT_ID', }); async function postAsOrg(orgId, text) { const result = await client.actions.run({ id: 'linkedin-create-text-post-organization', externalUserId: 'telegram:5439689035', configuredProps: { linkedin: { authProvisionId: 'apn_4vhLGx4' }, // LinkedIn account ID organizationId: orgId, text: text, }, }); console.log('Posted!', result); } // Example usage postAsOrg('105382747', 'Hello from Versatly! ๐'); Run with: node org-post.mjs
OrganizationIDURNVersatly105382747urn:li:organization:105382747
ItemValueMember URNurn:li:person:30_5n7bx7fUser ID (Pipedream)telegram:5439689035Auth Provision IDapn_4vhLGx4Admin ofVersatly (org 105382747)
TypeFormatExamplePersonurn:li:person:IDurn:li:person:30_5n7bx7fOrganizationurn:li:organization:IDurn:li:organization:105382747Post/Shareurn:li:share:IDurn:li:share:7293123456789012480Commenturn:li:comment:(urn:li:share:ID,ID)Complex nested URN
# Post pdauth call linkedin.linkedin-create-text-post-user \ --user telegram:5439689035 \ --args '{"instruction": "Create post: Just shipped a new feature! ๐"}' # The response includes the post URN - save it for later
# Find posts to engage with (manual: get URN from LinkedIn URL) # Like the post pdauth call linkedin.linkedin-create-like-on-share \ --user telegram:5439689035 \ --args '{"instruction": "Like post urn:li:share:7293123456789012480"}' # Comment pdauth call linkedin.linkedin-create-comment \ --user telegram:5439689035 \ --args '{"instruction": "Comment on urn:li:share:7293123456789012480: Congrats on the launch!"}'
# Search for the company pdauth call linkedin.linkedin-search-organization \ --user telegram:5439689035 \ --args '{"instruction": "Search for OpenAI"}' # Check if you have admin access (for orgs you manage) pdauth call linkedin.linkedin-get-org-member-access \ --user telegram:5439689035 \ --args '{"instruction": "Check access for organization 12345678"}'
ErrorCauseSolutionApp not connectedNo LinkedIn OAuthRun pdauth connect linkedin --user USER_IDtool name too longMCP bug for org toolsUse direct SDK workaround403 ForbiddenNo permission for actionCheck org admin statusInvalid URNMalformed URN formatUse correct format: urn:li:type:idRate limitedToo many API callsWait and retry (LinkedIn limits ~100 calls/day)
# Quick status check pdauth status --user telegram:5439689035 # JSON output for parsing pdauth status --user telegram:5439689035 --json
If OAuth expires or breaks: pdauth disconnect linkedin --user telegram:5439689035 pdauth connect linkedin --user telegram:5439689035 # Share new link with user
Rate Limits: LinkedIn is strict. Space out bulk operations. Content Quality: LinkedIn penalizes spammy content. Write thoughtfully. Org Posting: Always verify admin access before attempting org posts. URN Handling: Always validate URN format before API calls. Error Recovery: If a post fails, check status before retrying (may have succeeded).
# 1. Verify connection pdauth status --user telegram:5439689035 # 2. Check org admin status pdauth call linkedin.linkedin-get-org-member-access \ --user telegram:5439689035 \ --args '{"instruction": "Check access for organization 105382747"}' # 3. Post personal announcement pdauth call linkedin.linkedin-create-text-post-user \ --user telegram:5439689035 \ --args '{"instruction": "Create post: Thrilled to share that Versatly just launched our new AI assistant! ๐ค #AI #Startup"}' # 4. Post as organization (use SDK workaround) # โ Run org-post.mjs script # 5. Engage with relevant industry posts pdauth call linkedin.linkedin-create-comment \ --user telegram:5439689035 \ --args '{"instruction": "Comment on urn:li:share:XXXXX: Great perspective on AI safety!"}'
FilePurpose~/.config/pdauth/config.jsonPipedream credentials~/.openclaw/workspace/pdauth/pdauth CLI source~/.openclaw/workspace/skills/pdauth/SKILL.mdpdauth skill reference
pdauth skill โ OAuth management for all Pipedream apps Pipedream MCP โ Browse all available integrations LinkedIn API Docs โ Official API reference
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.