TL;DR: Check the InMail credit balance before the campaign starts and queue sends against it, instead of discovering the empty balance mid-run. The agent treated InMail as unlimited, so the fix is a balance check up front plus a prioritized queue that stops cleanly when credits run out. Buy or request more credits through the normal account process if the campaign needs them.

```text
You've run out of InMail credits
```

1. Have a human check the current InMail credit balance on the LinkedIn account (contracts and recruiter seats show it in the account settings). Expected: you know the exact number of credits available.
2. Prioritize the candidate list so the most important outreach goes first. Expected: a ranked queue, not the raw list order.
3. Gate the sequencing loop on the credit balance: before each send, confirm at least one credit remains; when the balance hits zero, stop the loop and mark the remaining candidates as unsent. Expected: the loop ends cleanly with a clear unsent remainder.
4. Record which candidates were contacted and which were not, so a resumed campaign does not double-message anyone. Expected: a sent-state record keyed by candidate.
5. If the campaign needs more volume, request additional credits through the account admin or adjust the plan to fit the balance. Expected: the next campaign starts with a known balance and a sized list.

## Use this when
- LinkedIn reports out of InMail credits mid-campaign
- The agent's sequencing loop has no concept of a send budget
- Campaigns die halfway with no record of who was skipped

## Not for this skill when
- The sends are failing for a different reason (connection requests versus InMail have different limits and rules)
- The account is restricted (resolve the account standing before worrying about credits)
- The plan is to message the same candidates another way to dodge the limit - respect the platform's limits

## Variant phrasings
- LinkedIn InMail credits exhausted during outreach
- agent out of InMail credits mid campaign
- LinkedIn sequencing credit limit

## Why it happens
InMail credits are a finite monthly allowance tied to the account's contract, and the agent's loop was written as if sends were free and unlimited. Nothing in the loop checked the balance, so the campaign ran until LinkedIn refused the next send - halfway through the list, with no record of the cutoff point.

## Edge cases
- Credits typically replenish on a cycle; a campaign that pauses at zero can resume when the balance refreshes, using the sent-state record to continue where it stopped.
- Replies to an InMail thread usually do not cost new credits, but the initial send does - budget for first-touch sends, not thread length.
- Do not work around an empty balance with connection-request spam; that trades a credit problem for an account restriction.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_vPYRh1ExOI0j8TZh0Ee8Og
