> 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.

# LinkedIn Tools

> 19 tools for searching companies, resolving people, fetching profiles, browsing posts and jobs, listing employees with boolean title filters, and sending DMs and invitations.

This category is LinkedIn automation: 19 tools for searching companies, resolving people, fetching profiles, browsing posts and jobs, listing employees with boolean title filters, and sending DMs and invitations. The write and personal-data tools run on a logged-in session shared through the [browser extension](/extension), so the same browser identity persists across calls.

## Tools

| Tool                                    | Credits | Description                                                                          |
| --------------------------------------- | ------- | ------------------------------------------------------------------------------------ |
| `list_connected_linkedin_accounts`      | 0       | List connected LinkedIn accounts                                                     |
| `get_linkedin_company_url`              | 2       | Get a company's LinkedIn URL from a domain                                           |
| `get_linkedin_profile_url`              | 5       | Get a person's LinkedIn URL from name + domain                                       |
| `get_linkedin_post`                     | 2       | Get a LinkedIn post                                                                  |
| `get_linkedin_job`                      | 2       | Get a LinkedIn job listing                                                           |
| `get_linkedin_profile`                  | 2       | Get a LinkedIn profile                                                               |
| `get_linkedin_company`                  | 1       | Get a LinkedIn company                                                               |
| `list_user_posts`                       | 5       | List a user's recent LinkedIn posts                                                  |
| `send_linkedin_message`                 | 5       | Send a LinkedIn direct message                                                       |
| `send_linkedin_invitation`              | 5       | Send a LinkedIn connection request                                                   |
| `list_linkedin_conversations`           | 5       | List recent LinkedIn conversations                                                   |
| `list_linkedin_jobs`                    | 5       | List a company's open LinkedIn jobs                                                  |
| `list_linkedin_company_employees`       | 30      | List a company's employees via Sales Navigator (with optional boolean title filters) |
| `search_linkedin_company_employees`     | 5       | Search a company's employees from SERP metadata only (cheaper, slimmer payload)      |
| `list_linkedin_company_posts`           | 2       | List a company's recent LinkedIn posts                                               |
| `list_linkedin_post_reactions`          | 5       | List reactions on a LinkedIn post                                                    |
| `list_linkedin_post_comments`           | 5       | List comments on a LinkedIn post                                                     |
| `list_linkedin_saved_posts`             | 10      | List a user's saved LinkedIn posts                                                   |
| `list_linkedin_company_employees_posts` | 80      | List recent posts from a company's employees                                         |

## Sessions: the browser extension

Write tools (`send_linkedin_message`, `send_linkedin_invitation`) and personal read tools (`list_linkedin_conversations`, `list_linkedin_saved_posts`, `list_user_posts`) need a logged-in LinkedIn session. That session is shared through the [GTM Tools browser extension](/extension): install it, press **Connect**, and stay logged into LinkedIn in that browser. The extension syncs your session to your workspace and keeps it fresh automatically. Other read tools work without a session.

If you call one of these tools before connecting, it returns instructions with the install link. `list_connected_linkedin_accounts` shows which sessions are active; each teammate who connects adds theirs to a pool the tools rotate across.

## Resolving identifiers

The most common pattern is **domain → company URL → employees → profile**.

```bash
# 1. Domain → company URL (2 credits)
curl -X POST https://api.gtm-tools.sh/api/v0/get_linkedin_company_url \
  -H "Authorization: Bearer $GTM_TOOLS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "siena.cx"}'

# 2. Search employees with boolean title filters (30 credits)
curl -X POST https://api.gtm-tools.sh/api/v0/list_linkedin_company_employees \
  -H "Authorization: Bearer $GTM_TOOLS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "siena.cx",
    "title_filters": "(VP OR Director OR Head) AND Sales NOT intern",
    "limit": 25,
    "page": 1
  }'

# 3. Get a profile URL from name + company domain (5 credits)
curl -X POST https://api.gtm-tools.sh/api/v0/get_linkedin_profile_url \
  -H "Authorization: Bearer $GTM_TOOLS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Andrei Negrau", "domain": "siena.cx"}'

# 4. Get the profile (2 credits)
curl -X POST https://api.gtm-tools.sh/api/v0/get_linkedin_profile \
  -H "Authorization: Bearer $GTM_TOOLS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"profile_url": "https://linkedin.com/in/andreinegrau"}'
```

## list\_ vs search\_

Two tools answer "who works at this company?" with different cost/quality trade-offs:

|                 | `list_linkedin_company_employees`                                                                                                     | `search_linkedin_company_employees`                                                                            |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| Cost            | 30 credits                                                                                                                            | **5 credits**                                                                                                  |
| Source          | Fresh LinkedIn / Sales Navigator                                                                                                      | Google + Brave SERP metadata, parsed by Claude Haiku                                                           |
| Returns per row | `first_name`, `last_name`, `full_name`, `job_title`, `location`, `company_domain` (from input), `linkedin_url`, `about`, `profile_id` | `first_name`, `last_name`, `full_name`, `job_title`, `location`, `company_domain` (from input), `linkedin_url` |
| Best for        | Building a verified list at volume; cases that need `about` or a stable `profile_id`                                                  | Discovery, low-volume prospecting, clean name + title + location                                               |

Both tools accept the same `domain`, `title_filters`, `limit`, and `page` body. `search_` does not take `company_id`.

> All `search_` fields (`first_name`, `last_name`, `full_name`, `job_title`, `location`, `company_domain`, `linkedin_url`) are labeled identically in `list_`, so an agent can read either response uniformly on that 7-field common set. `list_` additionally exposes `about` and a stable RapidAPI `profile_id`. `location` is best-effort on `search_` (Haiku reads it from SERP metadata when present, otherwise `null`).

## Title filter syntax

Both `list_linkedin_company_employees` and `search_linkedin_company_employees` accept boolean expressions in `title_filters`:

| Operator      | Example                                           |
| ------------- | ------------------------------------------------- |
| `AND`         | `"sales AND SaaS"`                                |
| `OR`          | `"engineer OR developer"`                         |
| `NOT`         | `"manager NOT intern"`                            |
| Parentheses   | `"(VP OR Director OR Head) AND Sales NOT intern"` |
| Quoted phrase | `"\"customer success\" AND lead"`                 |

The same syntax works in the CLI's `--filter` flag.

## Posts and engagement

| Tool                                    | Returns                                                                   |
| --------------------------------------- | ------------------------------------------------------------------------- |
| `get_linkedin_post`                     | Full post content + author + engagement counts                            |
| `list_linkedin_post_reactions`          | People who reacted (+ reaction type)                                      |
| `list_linkedin_post_comments`           | Comments + commenter profiles                                             |
| `list_user_posts`                       | Recent posts from a single profile                                        |
| `list_linkedin_company_posts`           | Recent posts from a company page                                          |
| `list_linkedin_company_employees_posts` | Recent posts from every employee of a company (80 credits, use sparingly) |
| `list_linkedin_saved_posts`             | Posts the connected account has saved                                     |

`list_linkedin_company_employees_posts` is by far the most expensive LinkedIn tool because it fans out across employees. Prefer `list_linkedin_company_posts` (2 credits) when you only need official content, or scope to a known set of profile URLs with `list_user_posts` (5 credits each).

## Jobs

| Tool                 | Description                          |
| -------------------- | ------------------------------------ |
| `list_linkedin_jobs` | All jobs posted by a company         |
| `get_linkedin_job`   | Full description of a single posting |

Combine with `signal_hiring_role` (in [Signals Tools](/signals-tools)) to confirm hiring activity from multiple sources.

## Outreach

`send_linkedin_invitation` and `send_linkedin_message` write to LinkedIn through the connected session. Both require a LinkedIn session connected via the [browser extension](/extension) first.

| Parameter     | Type   | Required | Description                             |
| ------------- | ------ | -------- | --------------------------------------- |
| `profile_url` | string | Yes      | LinkedIn profile URL of the recipient   |
| `message`     | string | Yes      | Message body (invitations: ≤ 300 chars) |

```bash
curl -X POST https://api.gtm-tools.sh/api/v0/send_linkedin_invitation \
  -H "Authorization: Bearer $GTM_TOOLS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "profile_url": "https://linkedin.com/in/andreinegrau",
    "message": "Hi Andrei, saw your post on CX agents. Would love to compare notes."
  }'
```

`list_linkedin_conversations` returns recent threads so your agent can poll for replies.

## Next steps

#### [Reddit Tools](/reddit-tools)

The Reddit counterpart: read threads, post + comment, vote, DM.

#### [Enrichment Tools](/enrichment-tools)

Verify professional emails and resolve handles for the profiles you find.

#### [Signals Tools](/signals-tools)

Detect buying intent on the same domains.

#### [Outbound](/outbound)

Stitch LinkedIn + data + signals into a full prospecting workflow.