> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Crustdata Linkedin Posts: Inputs, Cost & CLI Example

> Fetching and filtering LinkedIn post activity. Includes inputs, outputs, pricing notes, Deepline CLI examples, and GTM automation guidance.

## Run in Enrichment Spreadsheet

<Info>
  Use this function as a column step in `deepline enrich`.
</Info>

```bash theme={null}
deepline enrich --input leads.csv --output leads.enriched.csv --with 'result=crustdata_linkedin_posts:{"keyword":"{{keyword}}"}' --json
```

<Tip>
  Map payload values to spreadsheet columns with `{{column_name}}` placeholders.
</Tip>

## Input Schema

| Name                        | Type                                                                              | Required | Default | Description                                           |
| --------------------------- | --------------------------------------------------------------------------------- | -------- | ------- | ----------------------------------------------------- |
| `payload.keyword`           | `string`                                                                          | Yes      |         | Keyword to search for.                                |
| `payload.page`              | `integer`                                                                         | No       |         | Page number (1-100).                                  |
| `payload.limit`             | `integer`                                                                         | No       | `3`     | Number of posts to fetch (1-500, default 3).          |
| `payload.sortBy`            | `"relevance" \| "date_posted"`                                                    | No       |         | Sort order for results.                               |
| `payload.datePosted`        | `"past-24h" \| "past-week" \| "past-month" \| "past-quarter" \| "past-year"`      | No       |         | Date filter window.                                   |
| `payload.exactKeywordMatch` | `boolean`                                                                         | No       |         | Require exact keyword match (no paging).              |
| `payload.contentType`       | `array`                                                                           | No       |         | Limit results to specific content types.              |
| `payload.filters`           | `array`                                                                           | No       |         | LinkedIn filter objects.                              |
| `payload.fields`            | `"reactors" \| "comments" \| "reactors,comments" \| "comments,reactors" \| array` | No       |         | Include reactors/comments (array or comma-separated). |
| `payload.maxReactors`       | `integer`                                                                         | No       |         | Max reactors to return.                               |
| `payload.maxComments`       | `integer`                                                                         | No       |         | Max comments to return.                               |

### Allowed values

| Field                | Allowed values                                                     |
| -------------------- | ------------------------------------------------------------------ |
| `payload.sortBy`     | `relevance`, `date_posted`                                         |
| `payload.datePosted` | `past-24h`, `past-week`, `past-month`, `past-quarter`, `past-year` |
| `payload.fields`     | `reactors`, `comments`, `reactors,comments`, `comments,reactors`   |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Searches LinkedIn posts by keyword using /screener/linkedin_posts/keyword_search.",
    "properties": {
      "keyword": {
        "type": "string",
        "description": "Keyword to search for.",
        "minLength": 1
      },
      "page": {
        "type": "integer",
        "description": "Page number (1-100).",
        "minimum": 1,
        "maximum": 100
      },
      "limit": {
        "type": "integer",
        "description": "Number of posts to fetch (1-500, default 3).",
        "default": 3,
        "minimum": 1,
        "maximum": 500
      },
      "sortBy": {
        "type": "string",
        "description": "Sort order for results.",
        "enum": [
          "relevance",
          "date_posted"
        ]
      },
      "datePosted": {
        "type": "string",
        "description": "Date filter window.",
        "enum": [
          "past-24h",
          "past-week",
          "past-month",
          "past-quarter",
          "past-year"
        ]
      },
      "exactKeywordMatch": {
        "type": "boolean",
        "description": "Require exact keyword match (no paging)."
      },
      "contentType": {
        "type": "array",
        "description": "Limit results to specific content types.",
        "minItems": 1,
        "items": {
          "type": "string",
          "enum": [
            "photos",
            "videos",
            "documents",
            "jobs",
            "collaborativeArticles",
            "liveVideos"
          ]
        }
      },
      "filters": {
        "type": "array",
        "description": "LinkedIn filter objects.",
        "items": {
          "type": "object",
          "properties": {
            "filter_type": {
              "type": "string",
              "description": "Filter category to apply.",
              "enum": [
                "MEMBER",
                "COMPANY",
                "MENTIONING_MEMBER",
                "MENTIONING_COMPANY",
                "AUTHOR_COMPANY",
                "AUTHOR_INDUSTRY",
                "AUTHOR_TITLE"
              ]
            },
            "type": {
              "type": "string",
              "description": "Filter operator (always \"in\").",
              "const": "in"
            },
            "value": {
              "type": "array",
              "description": "Filter values.",
              "minItems": 1,
              "items": {
                "type": "string",
                "minLength": 1
              }
            }
          },
          "required": [
            "filter_type",
            "type",
            "value"
          ],
          "additionalProperties": false
        }
      },
      "fields": {
        "description": "Include reactors/comments (array or comma-separated).",
        "anyOf": [
          {
            "type": "string",
            "enum": [
              "reactors",
              "comments",
              "reactors,comments",
              "comments,reactors"
            ]
          },
          {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string",
              "enum": [
                "reactors",
                "comments"
              ]
            }
          }
        ]
      },
      "maxReactors": {
        "type": "integer",
        "description": "Max reactors to return.",
        "minimum": 0,
        "maximum": 5000
      },
      "maxComments": {
        "type": "integer",
        "description": "Max comments to return.",
        "minimum": 0,
        "maximum": 5000
      }
    },
    "required": [
      "keyword"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output Schema

| Name            | Type     | Required | Default | Description |
| --------------- | -------- | -------- | ------- | ----------- |
| `result.status` | `string` | Yes      |         |             |
| `result.result` | `object` | Yes      |         |             |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "status": {
        "type": "string"
      },
      "result": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "posts": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "text": {
                      "type": "string"
                    },
                    "author": {
                      "type": "string"
                    },
                    "share_url": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "author",
                    "share_url"
                  ],
                  "additionalProperties": true
                }
              },
              "totalCount": {
                "type": "integer"
              }
            },
            "required": [
              "posts",
              "totalCount"
            ],
            "additionalProperties": true
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": true
      }
    },
    "required": [
      "status",
      "result"
    ],
    "additionalProperties": true
  }
  ```
</details>

## Advanced: Direct CLI

<Info>
  Use direct execution for single payload debugging.
</Info>

```bash theme={null}
deepline tools execute crustdata_linkedin_posts --payload '{
  "keyword": "string"
}' --json
```

### CLI flags

| Flag                        | Description                                         |
| --------------------------- | --------------------------------------------------- |
| `--json`                    | Print machine-readable output.                      |
| `--wait`                    | Wait for terminal provider status when supported.   |
| `--debug`                   | Enable wait mode with additional status/log output. |
| `--wait-timeout SECONDS`    | Max seconds to wait in wait mode.                   |
| `--poll-interval SECONDS`   | Polling interval in seconds during wait mode.       |
| `--timeout SECONDS`         | Request timeout in seconds.                         |
| `--connect-timeout SECONDS` | Connection timeout in seconds.                      |

## Provider API Context

<details>
  <summary>Show provider reference (optional)</summary>

  ```md theme={null}
  This dictionary describes the data returned by the LinkedIn Posts by Company/Person API. It provides detailed information about a LinkedIn posts, including content, engagement metrics, and user interactions. ## Response Structure The API returns a JSON object with a `posts` array containing LinkedIn post objects. Each post object contains the following fields: ## Post Identification | Field | Type | Description | |-----------------------|---------|--------------------------------------------------------------| | backend_urn | string | LinkedIn internal unique identifier for the activity | | actor_backend_urn | string | LinkedIn internal unique identifier for the actor (poster) | | share_urn | string | LinkedIn internal unique identifier for the shared content | | share_url | string | Public URL to access the post on LinkedIn | ## Post Content | Field | Type | Description | |-----------------------|---------|--------------------------------------------------------------| | text | string | The text content of the LinkedIn post | | actor_name | string | Name of the company or person who created the post | | date_posted | string | Date when the post was published (YYYY-MM-DD format) | | hyperlinks | object | Object containing URLs mentioned in the post | | hyperlinks.company_linkedin_urls | array | LinkedIn URLs of companies mentioned in the post | | hyperlinks.person_linkedin_urls | array | LinkedIn URLs of people mentioned in the post | | hyperlinks.other_urls | array | Other URLs mentioned in the post | | is_repost_without_thoughts | boolean | Indicates if the post is a repost without additional commentary | ## Engagement Metrics | Field | Type | Description | |-----------------------|---------|--------------------------------------------------------------| | total_reactions | integer | Total number of reactions on the post | | total_comments | integer | Total number of comments on the post | | reactions_by_type | object | Breakdown of reactions by type (LIKE, PRAISE, EMPATHY, etc.) | | num_shares | integer | Number of times the post has been shared | ## Reactor Information (when requested) When the `reactors` field is included in the request, the API returns detailed information about users who reacted to the post: | Field | Type | Description | |-----------------------|---------|--------------------------------------------------------------| | reactors | array | Array of users who reacted to the post | ### Reactor Details | Field | Type | Description | |---------------------------------------|---------|------------------------------------------------------| | reactors[].name | string | Full name of the person who reacted | | reactors[].linkedin_profile_url | string | LinkedIn profile URL (system format) | | reactors[].reaction_type | string | Type of reaction (LIKE, PRAISE, etc.) | | reactors[].profile_image_url | string | URL to the reactor's profile image (small version) | | reactors[].title | string | Professional title | | reactors[].additional_info | string | Connection level information | | reactors[].location | string | Geographic location | | reactors[].linkedin_profile_urn | string | LinkedIn internal identifier for the user | | reactors[].default_position_title | string | Current job title | | reactors[].default_position_company_linkedin_id | string | LinkedIn ID of current employer | | reactors[].default_position_is_decision_maker | boolean | Whether user is a decision maker | | reactors[].flagship_profile_url | string | Public LinkedIn profile URL | | reactors[].profile_picture_url | string | URL to higher resolution profile picture | | reactors[].headline | string | LinkedIn headline | | reactors[].summary | string | Professional summary or bio | | reactors[].num_of_connections | integer | Number of LinkedIn connections | | reactors[].related_colleague_company_id | integer | Company ID of related colleague | | reactors[].skills | array | List of professional skills | ### Reactor Employment History | Field | Type | Description | |-------------------------------------------|---------|--------------------------------------------------| | reactors[].employer | array | Employment history | | reactors[].employer[].title | string | Job title | | reactors[].employer[].company_name | string | Name of the employer | | reactors[].employer[].company_linkedin_id | string | LinkedIn ID of the employer | | reactors[].employer[].start_date | string | Start date of employment | | reactors[].employer[].end_date | string | End date of employment (null if current) | | reactors[].employer[].description | string | Job description | | reactors[].employer[].location | string | Job location | | reactors[].employer[].rich_media | array | Media related to the employment | ### Reactor Education | Field | Type | Description | |--------------------------------------------------|---------|------------------------------------------| | reactors[].education_background | array | Education history | | reactors[].education_background[].degree_name | string | Degree earned | | reactors[].education_background[].institute_name | string | Educational institution | | reactors[].education_background[].field_of_study | string | Major or area of study | | reactors[].education_background[].start_date | string | Start date of education | | reactors[].education_background[].end_date | string | End date of education | ### Reactor Contact Information | Field | Type | Description | |------------------------------|---------|--------------------------------------------------| | reactors[].emails | array | Email addresses | | reactors[].websites | array | Personal or professional websites | | reactors[].twitter_handle | string | Twitter username | | reactors[].languages | array | Languages spoken | | reactors[].pronoun | string | Preferred pronoun | | reactors[].current_title | string | Current job title |

  &lt;Note>
  Provider reference truncated for page speed. Use the provider's official docs for the full upstream reference.
  &lt;/Note>
  ```
</details>

## Cost

* Pricing model: `per_result` (per result).
* Estimated Deepline credits: `0.4` per pricing unit.
* Billing mode: `post_deduct`.
