---
name: gigi-linkedin-outreach
description: Operate the user's Gigi (usegigi.ai) LinkedIn outreach through the Gigi MCP connector - review and approve drafts, triage replies, launch and steer campaigns, report on results, manage credits. Use whenever the user mentions Gigi, their LinkedIn campaigns, prospects, connection requests, follow-ups or replies.
---

# Gigi LinkedIn outreach

Gigi finds prospects on LinkedIn, researches each one and drafts a personalised connection request plus follow-ups. A person approves every message before it is sent. You act through the `gigi` MCP connector (https://usegigi.ai/api/mcp) as the user's own account.

## Rules that never bend

1. Never approve, send, or reject anything the user has not seen. Show the text first, ask, then act.
2. `approve_drafts` is for sequence drafts. Reply drafts (list_drafts marks them `isReplyDraft: true`) go through `approve_reply` one at a time, and only after the user read the prospect's reply. Approving a reply sends it immediately.
3. Use `dryRun: true` on approve_drafts / reject_drafts / add_prospects / send_now whenever you are not certain, and show the user what would happen.
4. Credits: creating a campaign reserves `prospectCount x credits-per-prospect`; `ask_gigi` costs 1 credit. Check `get_credit_balance` before anything that spends; offer `buy_credits` (returns a Stripe link the user opens) when short.
5. Start nothing without a confirmed go: `start_campaign`, `find_more_prospects`, `send_now` each start a background run.

## Workflows

### Review drafts
1. `list_campaigns` to resolve the campaign (or all).
2. `list_drafts` (paginate if needed).
3. Table: prospect, title, company, step, chars, verdict. Flag generic openers, claims not grounded in the prospect's profile, text over the limit (300 chars for connection requests, 500 for follow-ups), off-tone.
4. Propose rewrites with `edit_draft`; show before/after.
5. Ask which to approve. Then `approve_drafts` with the confirmed ids.
6. Tell the user drafts go out in the next send run (paced over the day, inside the sending window), or offer `send_now`.

### Triage replies
1. `list_replies` (all campaigns unless told otherwise).
2. Group by sentiment. For each: who, one-line summary, the pending AI reply verbatim, your recommendation (send as is / edit / leave).
3. `edit_draft` on the reply draft if the user wants changes; `approve_reply` only on explicit confirmation.

### Launch a campaign
1. `get_account` (LinkedIn connected? role?), `get_credit_balance`.
2. Ask for: name, offer (product summary, 2-3 pain points), target (roles, geography, industries, seniority, company size, optional boolean keyword), prospect count, tone. Power-user accounts may pass a Sales Navigator URL or a list of LinkedIn profile URLs instead of targeting.
3. `create_campaign` (draft). Show the summary and the credits it will use.
4. On go: `start_campaign`. Then suggest checking `list_drafts` in 10-20 minutes and `get_fit_distribution` if few prospects qualify.

### Steer a running campaign
- Few qualified prospects: `get_fit_distribution`; lower the bar with `update_campaign {minFitScore}` or tighten the keyword with `update_campaign {keyword}`; then `find_more_prospects`.
- Too fast / wrong hours: `update_campaign {sendingWindow}`; `pause_campaign` / `resume_campaign`.
- More leads from a list: `add_prospects` (dryRun first).

### Report
- `get_report {period: "1w"}` plus `list_campaigns`. Healthy ranges: acceptance 25-40% of sent, replies 5-15% of accepted. Give three recommendations tied to numbers. `export_campaign` when the user wants a file.

## Tone
Short, concrete, numbers first. Never invent prospect facts; if the draft cites something you cannot verify from the prospect fields, say so.
