> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://gtm-tools.sh/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://gtm-tools.sh/_mcp/server.

# Credit Efficiency

> Qualify before prospecting, lean on free tools, cache stable lookups, and pick cheap detectors first. The patterns that keep credit spend in check.

Credits are debited before a tool runs and aren't returned afterwards, so a 30-credit employee search that finds nothing useful is 30 credits spent. Here are the patterns that compound.

## Qualify before you prospect

Running `list_linkedin_company_employees` (30 credits) on a company with no buying signal is the most expensive mistake in this stack. Always front-load `detect_signal` (free dispatch, \~15 credits median) and skip accounts that don't fire.

```
Bad:  list_linkedin_company_employees × 100 accounts = 3,000 credits ($30)
Good: detect_signal × 100 + list_linkedin_company_employees × 20 qualified = ~2,100 credits ($21)
```

The savings grow as your hit rate drops. At a 10% qualification rate, you save 60%+.

## Set signal order to short-circuit

If you can act on the first signal that fires, configure `set_signals_order` to put the highest-precision detectors first. Then break out of the loop in your code as soon as one fires. `detect_signal` won't help you here, but the individual detectors will.

```typescript
// Run the ordered list; stop at the first hit
const order = (await call("signals", "get_signals_order")).order;
for (const sig of order) {
  const result = await call("signals", sig, { domain });
  if (result.fired) {
    return { domain, signal: sig, evidence: result.evidence };
  }
}
return { domain, signal: null };
```

In a 5-detector run where the first one hits, you spent 5 credits instead of 25.

## Use filters, not pagination

`list_linkedin_company_employees` charges 30 credits regardless of `limit` or `page`. The cost is the search itself, not the row count.

* Always pass `title_filters`. Empty filters return everyone, and you'll usually scroll past the right person.
* Use boolean syntax (`AND`, `OR`, `NOT`, `()`) to narrow precisely.
* Set `limit` to what you actually want to look at. It doesn't reduce cost, but it reduces noise.

## Avoid the 80-credit tool unless you need it

`list_linkedin_company_employees_posts` (80 credits) fans out across the whole employee list. Use it only when:

* You're tracking a small set of accounts and want a full activity feed.
* You've exhausted cheaper alternatives.

Cheaper alternatives:

| Goal                           | Use                           | Credits |
| ------------------------------ | ----------------------------- | ------- |
| Watch one employee's posts     | `list_user_posts`             | 5       |
| Watch official company content | `list_linkedin_company_posts` | 2       |
| Watch 5 known employees        | 5 × `list_user_posts`         | 25      |

5 known employees costs **25 credits** instead of **80** if you already know the profile URLs.

## Cache profile lookups

`get_linkedin_profile_url` (5) and `get_linkedin_profile` (2) return stable data. Cache the URL → profile mapping per org. The CLI doesn't do this automatically, but a few minutes of caching in your code saves a lot of credits on repeated runs.

## Don't double-check

| Anti-pattern                                                                        | Why it costs you                                                                                 |
| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| Running `get_linkedin_profile` after `list_linkedin_company_employees` for everyone | The list response already has names and titles; only hydrate the people you'll actually contact. |
| Calling `get_email` for the same `(name, domain)` twice                             | The result is deterministic; cache it for at least a week.                                       |
| Calling `detect_signal`, then individual detectors to "confirm"                     | `detect_signal` already returns the evidence.                                                    |

## Watch your invoices

`list_invoices` shows top-ups and charges. Audit weekly to spot drift: a misconfigured loop calling `list_linkedin_company_employees_posts` in a tight retry can burn through \$50 fast.

## Credit budget cheat sheet

| Workflow                                                | Median credits | Cost        |
| ------------------------------------------------------- | -------------- | ----------- |
| Qualify one account (`detect_signal`)                   | 15             | \$0.15      |
| Find a single named person (`get_linkedin_profile_url`) | 5              | \$0.05      |
| Verify one email (`get_email`)                          | 5              | \$0.05      |
| Full prospecting flow (qualify → search → 3× email)     | 75–80          | \$0.75–0.80 |
| Daily signal sweep over 50 accounts                     | 750            | \$7.50      |

## Next steps

#### [Tool Selection](/tool-selection)

Pick the right tool the first time.

#### [How Credits Work](/knowledge-base/getting-started/how-credits-work)

How metering, top-ups, and auto-reload work.