L

Knowledge Pack Files

LinkedIn Outreach Platform Skill Pack Files

Browse the source files that power the LinkedIn Outreach Platform MCP server knowledge pack.

Available free v1.1.0 Browser LLM
$ sidebutton install linkedin
Download ZIP
linkedin_profile_brief.yaml
3.7 KB
schema_version: 1
version: "1.0.0"
last_verified: "2026-08-25"
id: linkedin_profile_brief
title: "Build Profile Brief"
description: "Opens a profile, triggers lazy-loaded sections, and returns a compact JSON brief: current role, career arc, posting language and topics, contact-type guess, and tailoring hooks for a first message"
overview: |
  The lightweight research pass that runs before writing to someone. Where
  `linkedin_lead_health` produces a full ICP scorecard for batch enrichment, this returns
  just what message-tailoring needs, fast: who the person is TODAY (headlines go stale —
  a 2019-era developer contact may be a business angel now), what they post about and in
  which language, and two or three concrete hooks worth referencing.

  The `contact_type` guess matters most: writing buyer copy to an investor, conference
  organizer, or agency owner is the classic mistake this step exists to catch.

  Read-only; extraction plus one LLM pass, no interaction with the profile.
category:
  level: task
  domain: sales
  reusable: true
params:
  profile_url:
    type: string
    description: Full LinkedIn profile URL (e.g. https://www.linkedin.com/in/username/)
    required: true
policies:
  allowed_domains:
    - "*.linkedin.com"
steps:
  - type: browser.navigate
    url: "{{profile_url}}"
  - type: browser.wait
    selector: main
    timeout: 12000
  - type: browser.scroll
    direction: down
    amount: 1400
  - type: browser.wait
    ms: 800
  - type: browser.scroll
    direction: down
    amount: 1400
  - type: browser.wait
    ms: 800
  - type: browser.scroll
    direction: down
    amount: 1400
  - type: browser.wait
    ms: 800
  - type: browser.scroll
    direction: down
    amount: 1400
  - type: browser.wait
    ms: 800
  - type: browser.extract
    selector: main
    as: profile_blob
  - type: llm.generate
    as: brief
    prompt: >
      You are preparing a compact briefing on a LinkedIn profile so a founder can write
      one well-tailored first message. Parse the raw profile text below.


      Respond with RAW JSON ONLY — no prose, no markdown fences. Leave a field null
      rather than guessing. Schema:


      {
        "profile_url": "{{profile_url}}",
        "name": "string",
        "headline": "string",
        "location": "string | null",
        "current_role": {
          "title": "string",
          "company": "string",
          "since": "YYYY-MM | null",
          "what_the_company_does": "one sentence, plain words"
        },
        "other_current_hats": ["side ventures, board seats, portfolios, newsletters, events they run"],
        "career_arc": "one sentence: where they came from and what changed",
        "posting": {
          "language": "en | de | mixed | unknown",
          "cadence": "daily | weekly | sporadic | dormant | unknown",
          "topics": ["string", "..."]
        },
        "contact_type": "buyer | operator | channel | multiplier | organizer | peer | unclear",
        "contact_type_reason": "one sentence",
        "tailoring_hooks": ["2-3 concrete, current facts worth referencing in a message — never generic"],
        "watchouts": ["things that would make a standard pitch land badly, e.g. anti-sales posts, investor role, stale headline"]
      }


      contact_type definitions: buyer = owns a queue/budget at an operating company;
      operator = product/PM person who would run the tool; channel = agency, consultancy,
      dev shop, fractional exec who could resell or white-label; multiplier = investor,
      analyst, coach, community owner with reach; organizer = runs conferences or events;
      peer = builds a competing or adjacent product.


      ## Raw profile text

      ---

      {{profile_blob}}

      ---
  - type: control.stop
    message: "{{brief}}"