send_connection_request
Send one LinkedIn connection request from a profile URL using the user's logged-in browser session, optionally adding a custom note, and report whether it was…
Skill by prakhar1114
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/prakhar1114-send-connection-request
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/send-connection-request
What's inside
- Skill name
send_connection_request- Description
- Send one LinkedIn connection request from a profile URL using the user's logged-in browser session, optionally adding a custom note, and report whether it was sent, pending, already connected, or failed.
- License
- MIT
- Instructions
- 73 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- name: only lowercase letters, digits and single hyphens allowed
- name: "send_connection_request" does not match folder "send-connection-request"
Files (6)
- SKILL.md
- inputs.example.json · inputs/
- inputs.template.json · inputs/
- fallback_plan.md · references/
- run.sh
- run.py · scripts/
SKILL.md (first lines)
# send_connection_request
Open a LinkedIn profile, detect the current relationship state, and send a single connection request when a Connect action is available. If `custom_note` is empty, send without a note; if it is non-empty, add and verify the note before sending. After a new request is submitted, refresh the original profile URL and verify the direct profile page shows `Pending`.
For the primary Connect action, the runner first derives the vanity name from `profile_url` and clicks the matching visible `/preload/custom-invite` profile anchor instead of relying on broad visible-text search. For the invite modal, LinkedIn's current UI exposes the reliable controls through Chrome's Accessibility tree rather than normal page DOM selectors; the runner uses AX role/name nodes for the dialog and send controls.
## Preconditions
The user must already be logged into LinkedIn in the Chrome/browser profile controlled by `$AI_MIME_BROWSER_HARNESS_BIN`.
## Inputs
JSON object:
- `profile_url` (string, required): LinkedIn profile URL, for example `https://www.linkedin.com/in/example/`.
- `custom_note` (string, optional): note text to include. Empty or omitted means send without a note.
## Run
Use:
```bash
./run.sh /path/to/inputs.json
```
Without an argument, `run.sh` uses `inputs/inputs.example.json`.
`run.sh` uses the first available interpreter in this order: skill `.venv/bin/python`, workflow `.venv/bin/python`, then required `$AI_MIME_PYTHON_PATH`.
This skill has no third-party Python dependencies and does not need `requirements.txt`. Runtime does not create or repair `.venv`.
## Outputs
The runner prints a single-line JSON object to stdout:
```json
{"event":"workflow_done","outputs":{"status":"sent","message":"Connection request sent."}}
```
`outputs.status` is one of:
- `sent`: connection request was submitted in this run and the refreshed direct profile page showed `Pending`.
- `pending`: LinkedIn already showed a pending request before sending.
- `already_connected`: profile is already a 1st-degree connection.
- `failed`: login, page load, unavailable profile, missing Connect action, note-entry mismatch, send-modal failure, or post-send pending verification failure. Failed runs exit non-zero.
Successful and known terminal runs close the tab opened by the skill. Failed runs intentionally leave that tab open with a visible error banner asking the user to check LinkedIn.
## Progress logs
Progress logs are written to stderr in clear, short, natural language suitable for an end-user overlay, such as `Opening LinkedIn profile...`, `Looking for Connect...`, and `Typing note...`.
## Fallback
If `run.sh` fails, read `references/fallback_plan.md` and complete the same single-profile workflow manually or with a UI agent. Do not bulk-send requests or attempt account-risk workarounds.
## Stable selector notes
- Profile Connect: `main a[href*="/preload/custom-invite"]` with `vanityName` equal to `/in/<vanity>/`.
- Invite modal: Chrome Accessibility tree role `dialog`, name `Add a note to your invitation?`.
- No-note send: Chrome Accessibility tree role `button`, name `Send without a note`.
- DOM gap: the modal may not appear in `document.body.innerText` or `[role="dialog"]` page selectors even while visible. Use AX first for modal actions.
- Remaining unconfirmed path: custom-note textarea selectors can vary after `Add a note`; if note entry fails, leave the tab open and use the fallback plan.
## ask_llm decision points
None. The skill uses deterministic LinkedIn page-state checks, visible button/link text, and LinkedIn's visible invite link when Connect is rendered as an anchor.
## References
- `references/fallback_plan.md`: manual/UI-agent fallback steps, state checks, selectors, and traps observed during validation.From prakhar1114/ai_mime_marketplace, MIT.
More from prakhar1114/ai_mime_marketplace
- 0.529score
fetch-linkedin-message-history
prakhar1114
Fetch read-only LinkedIn message history from the user's logged-in browser for either a LinkedIn messaging thread URL or a LinkedIn profile URL.
SkillBFreshness: BClaude Code +9 - 0.529score
send-message-on-linkedin
prakhar1114
Send a message on LinkedIn from the user's logged-in Chrome session, given either a LinkedIn messaging thread URL or a LinkedIn profile URL plus the message…
SkillBFreshness: BClaude Code +9 - 0.529score
fetch-linkedin-message-threads
prakhar1114
Fetch recent LinkedIn Messaging thread URLs, contact names, last-message timestamps, and unread/new status from the user's already logged-in Chrome session.
SkillBFreshness: BClaude Code +9 - 0.529score
linkedin-search-people
prakhar1114
Search LinkedIn people results in the user's already logged-in Chrome browser and return structured profile-card data.
SkillBFreshness: BClaude Code +9 - 0.479score
reply-on-x
prakhar1114
Reply to an X post or comment from the user's already logged-in Chrome session using browser-harness, and return the posted reply URL.
SkillCFreshness: CClaude Code +9 - 0.479score
jira-get-fields
prakhar1114
Fetch Jira Cloud issue fields through Jira REST API v3 and return a compact, cleaned JSON payload.
SkillCFreshness: CClaude Code +9 - 0.479score
order-grocery-on-blinkit
prakhar1114
Add grocery items to the Blinkit (blinkit.com) cart using the user's already-logged-in Chrome.
SkillCFreshness: CClaude Code +9 - 0.479score
send-slack-message
prakhar1114
Post a message to a Slack channel using a Slack bot token via the Slack Web API, and return a clickable permalink to the posted message.
SkillCFreshness: CClaude Code +9 - 0.479score
jira-update-fields
prakhar1114
Update a Jira Cloud ticket field using Jira REST API v3.
SkillCFreshness: CClaude Code +9 - 0.476score
subreddit-search
prakhar1114
Scrape top Reddit posts from a subreddit in Chrome, optionally filtered by a search query, and return title, URL, upvotes, comments, and body text.
SkillCFreshness: CClaude Code +9 - 0.476score
facebook-data-extractor
prakhar1114
Extract visible posts from a Facebook group for the last N days using the AI Mime browser harness and an existing logged-in Facebook Chrome session.
SkillCFreshness: CClaude Code +9 - 0.476score
find-restaurants-and-send-on-whatsapp
prakhar1114
Search Google Maps for restaurants matching a query, capture a configurable number of top result names and URLs, and send them as separate WhatsApp messages…
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jul 27, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from prakhar1114
- 0.529score
send-message-on-linkedin
prakhar1114
Send a message on LinkedIn from the user's logged-in Chrome session, given either a LinkedIn messaging thread URL or a LinkedIn profile URL plus the message…
SkillBFreshness: BClaude Code +9 - 0.529score
fetch-linkedin-message-history
prakhar1114
Fetch read-only LinkedIn message history from the user's logged-in browser for either a LinkedIn messaging thread URL or a LinkedIn profile URL.
SkillBFreshness: BClaude Code +9 - 0.529score
fetch-linkedin-message-threads
prakhar1114
Fetch recent LinkedIn Messaging thread URLs, contact names, last-message timestamps, and unread/new status from the user's already logged-in Chrome session.
SkillBFreshness: BClaude Code +9 - 0.529score
linkedin-search-people
prakhar1114
Search LinkedIn people results in the user's already logged-in Chrome browser and return structured profile-card data.
SkillBFreshness: BClaude Code +9 - 0.479score
jira-get-fields
prakhar1114
Fetch Jira Cloud issue fields through Jira REST API v3 and return a compact, cleaned JSON payload.
SkillCFreshness: CClaude Code +9 - 0.479score
jira-update-fields
prakhar1114
Update a Jira Cloud ticket field using Jira REST API v3.
SkillCFreshness: CClaude Code +9
Cite this page
send_connection_request skill. Agent Mart. https://agentmart.dev/skills/prakhar1114-send-connection-request (last updated 2026-10-24)