Communitygithub.com

Varnan-Tech/opendirectory

將貼上的 LinkedIn 職缺或招聘描述轉換為結構化的買方痛點地圖,包含推斷的痛點、能力缺口、自建 vs 購買訊號、帳戶優先級分數與建議的聯繫角度。

opendirectory 是什麼?

此技能旨在幫助 B2B 銷售與行銷團隊,從 LinkedIn 職缺資訊中解讀買方意圖,並產出結構化的「買方痛點地圖」。它會分析職缺描述中的語言,推斷公司面臨的營運痛點、能力缺口,並依據產品簡介與理想客戶檔案(ICP)為每個帳戶打分(訊號強度、急迫性、ICP 契合度)。技能支援 Gemini API,透過兩個階段的 LLM 請求分別進行評分與痛點分析,最後輸出包含建議聯繫角度的完整報告。它強調證據引用,要求每個痛點都必須引用職缺原文,並避免幻覺或使用禁語。輸出結果可無縫交接給 `outreach-sequence-builder` 等其他技能,用於後續的客戶開發序列建立。

相容平台~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Varnan-Tech/opendirectory/tree/main/skills/linkedin-job-post-to-buyer-pain-map

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

LinkedIn 職缺到買方痛點地圖

分析 LinkedIn 職缺,將其解碼為結構化的買方痛點地圖,包含分數、痛點與聯繫角度。


關鍵規則: 每一項推斷的痛點都必須引用職缺描述中支持該痛點的具體措辭。絕對不可憑空捏造未在文字中證實的痛點。如果職缺過於籠統而無法推斷痛點,請明確說明,並給予低訊號強度分數。

道德規則: 請勿推斷候選人的個人屬性或受保護特徵。嚴格專注於公司層級的營運痛點與組織需求。


步驟 1:設定檢查

確認必要的環境變數:

echo "GEMINI_API_KEY: ${GEMINI_API_KEY:+set}"

若缺少 GEMINI_API_KEY: 停止。告知使用者:「需要設定 GEMINI_API_KEY。請前往 aistudio.google.com 取得,並將其加入您的 .env 檔案。」


步驟 2:收集輸入

此技能需要 3 個必要輸入。請在繼續之前收集它們。

2a:產品簡介

詢問:「請用 2-5 句話描述您的產品。您做什麼、您的核心價值主張是什麼、以及您鎖定哪些對象?」

如果使用者已在提示中提供此資訊: 將其提取出來。確認:「產品簡介已擷取:[摘要]。」

2b:理想客戶檔案 (ICP) 描述

詢問:「請用 2-6 個要點描述您的理想客戶檔案:產業、公司規模、您銷售的對象職位、技術堆疊線索。」

如果使用者已在提示中提供此資訊: 將其提取出來。確認:「ICP 已擷取:[摘要]。」

2c:招聘職缺

詢問:「請貼上您想分析的職缺描述。對於每個職缺,請包含公司名稱、職稱以及完整的描述文字。您可以貼上 1-15 個職缺。」

接受的格式:

  • 原始貼上的文字,清楚標明公司名稱與職稱
  • 結構化的 JSON 物件,包含欄位:company_name、job_title、location(選填)、seniority(選填)、team_or_function(選填)、job_description_text、job_url(選填)
  • 使用明確分隔線(--- 或數字)分隔的多個職缺

若缺少任何欄位: 從描述文字中盡可能推斷。如果缺少 company_name 或 job_description_text,請在繼續之前要求提供。

2d:選用輸入

如果使用者提供以下任何項目,請將其擷取:

  • account_notes:每個公司的額外背景資訊(資金狀況、技術堆疊、已知工具、聯絡人)
  • focus_dimension:「pipeline」(偏向計分與優先排序)、「positioning」(偏向訊息角度)或「both」(預設)

步驟 3:提取訊號

對於每個職缺,解析並提取:

  1. 團隊 / 功能: 此職位屬於哪個團隊?(GTM、產品、基礎架構、數據、RevOps、客戶成功、工程等)
  2. 資深程度: 個人貢獻者、資深個人貢獻者、經理、總監、副總裁、C 級
  3. 職責重點: 分類主要模式:
    • 滅火:"stabilize"、"fix"、"reduce downtime"、"unblock"
    • 新建:"build from scratch"、"0→1"、"greenfield"、"design and implement"
    • 優化:"scale"、"optimize"、"improve efficiency"、"automate"
    • 取代:"replace legacy"、"migrate from"、"modernize"
  4. 需求語言: 注意表示意圖的關鍵字:"first X hire"、"critical role"、"immediate"、"must have"
  5. 工具 / 堆疊線索: 提及與使用者產品領域重疊的特定工具、平台或技術類別

按公司分組。 若同一公司有多個職缺,將其訊號分組在一起。

說明:「已從 X 家公司共 Y 個職缺中提取訊號。」


步驟 4:使用 LLM 評分

閱讀 references/scoring-rubric.md 以獲得完整的評分模型。

建立 LLM 請求:

cat > /tmp/pain-map-score-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "You are a GTM analyst who specializes in decoding hiring signals into buyer intent. For each account provided, you will score three dimensions and infer company context. Rules: (1) Every score must include a one-sentence plain-text explanation. (2) signal_strength measures how many and how specific the hiring signals are relative to the user's product area. (3) urgency measures how time-sensitive the hiring need appears. (4) icp_fit measures how closely the company matches the user's ICP description. (5) Each score is 1-10. (6) overall_score = round((0.4 * signal_strength + 0.3 * urgency + 0.3 * icp_fit) * 10). (7) Infer buy_vs_build from job language. Use EXACTLY one of these labels: 'Leaning build', 'Leaning buy', 'Hybrid (buy-and-build)', 'Unknown'. (8) Infer stage_guess from company clues: funding stage, employee count, company type. (9) Output valid JSON only."
    }]
  },
  "contents": [{
    "parts": [{
      "text": "SCORING_CONTEXT_HERE"
    }]
  }],
  "generationConfig": {
    "temperature": 0.2,
    "maxOutputTokens": 4096
  }
}
ENDJSON
curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d @/tmp/pain-map-score-request.json \
  | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['candidates'][0]['content']['parts'][0]['text'])"

將 SCORING_CONTEXT_HERE 替換為:

  • 步驟 2 中的產品簡介與 ICP 描述
  • 步驟 3 中每家公司的提取訊號
  • references/scoring-rubric.md 中的評分規則
  • 指示輸出 JSON,包含:company_name、headline、overall_score、score_breakdown(signal_strength、urgency、icp_fit — 各含分數與說明)、stage_guess、buy_vs_build_guess

步驟 5:建立痛點地圖

對於每個帳戶,使用提取的訊號與 LLM 評分背景來建立買方痛點地圖。

cat > /tmp/pain-map-analysis-request.json << 'ENDJSON'
{
  "system_instruction": {
    "parts": [{
      "text": "You are a B2B pain analyst who reads job descriptions and identifies the operational pains a company is experiencing. Rules: (1) Every pain must have a short label, a 1-3 sentence description, and specific phrases quoted from the job post as supporting evidence. (2) Classify pains as primary (directly relevant to the user's product) or secondary (real pain but tangential to the product). (3) If a post is too generic to infer specific pain, state that explicitly — do not hallucinate. (4) For each account, also generate 1-3 recommended outreach angles. Each angle has: angle_name (short), narrative (1-2 sentences on how to lead), and talk_track_bullets (2-4 concrete talking points). (5) Outreach angles must reference specific pains and evidence, not generic value props. No banned words: synergy, leverage, innovative, cutting-edge, best-in-class, world-class, game-changing, disruptive, seamless, robust, comprehensive, revolutionize, transform, streamline. (6) Output valid JSON only."
    }]
  },
  "contents": [{
    "parts": [{
      "text": "ANALYSIS_CONTEXT_HERE"
    }]
  }],
  "generationConfig": {
    "temperature": 0.4,
    "maxOutputTokens": 8192
  }
}
ENDJSON
curl -s -X POST \
  "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=$GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d @/tmp/pain-map-analysis-request.json \
  | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['candidates'][0]['content']['parts'][0]['text'])"

將 ANALYSIS_CONTEXT_HERE 替換為:

  • 產品簡介與 ICP 描述
  • 每家公司的職缺(完整文字)
  • 步驟 4 中的分數與背景
  • 提供的帳戶備註(若有)
  • focus_dimension 偏好(pipeline / positioning / both)
  • 指示輸出每個帳戶的:buyer_pain_map(primary_pains、secondary_pains)和 recommended_outreach_angles

閱讀 references/examples.md 以校準預期的輸出品質與深度。


步驟 6:建立交接物件

為每個帳戶產生一個結構化的交接區塊,讓 outreach-sequence-builder 可以直接使用:

handoff:
  for_outreach_sequence_builder:
    account_summary: 2-3 句關於公司狀況與招聘背景的摘要
    key_pain: 一句話描述最可行的單一痛點
    suggested_personas: 2-4 個最可能擁有此痛點的職位頭銜
    tone: 一句話描述建議的聯繫語氣

交接內容必須具體到足以讓某人在不重新研究帳戶的情況下,將其貼入 outreach-sequence-builder 的提示中並獲得可用的序列。


步驟 7:自我品質檢查

在呈現之前,執行每一項檢查並修正違規:

  • 每一項推斷的痛點至少引用一個來自職缺描述的具體詞句
  • 對於過於籠統 / 低訊號的職缺(檢查訊號強度 ≤ 3 的職缺),未憑空捏造反痛點
  • 所有三個分數(signal_strength、urgency、icp_fit)都有單句說明
  • 總分符合公式:round((0.4 × signal + 0.3 × urgency + 0.3 × icp_fit) × 10)
  • 自建 vs 購買標籤為以下之一:「Leaning build」、「Leaning buy」、「Hybrid (buy-and-build)」、「Unknown」
  • 聯繫角度中沒有禁用詞:synergy、leverage、innovative、cutting-edge、best-in-class、world-class、game-changing、disruptive、seamless、robust、comprehensive、revolutionize、transform、streamline
  • 每個聯繫角度有 2-4 個談話重點,而非通用的價值陳述
  • 不符合 ICP 的帳戶已標記,並附有明確的降級建議
  • 交接物件完整,包含所有 4 個欄位(account_summary、key_pain、suggested_personas、tone)
  • 未推斷關於候選人的個人屬性或受保護特徵
  • 當同一公司有多個職缺時,已按公司分組

在呈現之前修正任何違規。


步驟 8:輸出與儲存

人類可讀輸出

以此格式呈現完整分析:

## 買方痛點地圖 — [YYYY-MM-DD]

**產品:** [產品簡介中的產品名稱]
**分析的職缺:** Y 家公司的 X 個職缺
**重點:** [pipeline / positioning / both]

---

### [公司名稱] — 分數:[N]/100

**標題:** [招聘所揭示內容的一行摘要]

| 維度 | 分數 | 說明 |
|-----------|-------|-------------|
| 訊號強度 | N/10 | [一句話] |
| 急迫性 | N/10 | [一句話] |
| ICP 契合度 | N/10 | [一句話] |

**階段:** [推斷的階段] | **自建 vs 購買:** [姿態標籤]

#### 主要痛點
- **[痛點標籤]:** [1-3 句描述]
  - 證據:「[從職缺引用詞句]」

#### 次要痛點
- **[痛點標籤]:** [1-3 句描述]
  - 證據:「[從職缺引用詞句]」

#### 建議的聯繫角度
1. **[角度名稱]:** [敘述]
   - [要點 1]
   - [要點 2]
   - [要點 3]

#### 交接 → outreach-sequence-builder
> **摘要:** [2-3 句]
> **關鍵痛點:** [一句話]
> **建議人物誌:** [列表]
> **語氣:** [一句話]

---

[根據 overall_score 降序排列,為每個公司重複]

儲存至檔案

mkdir -p docs/pain-maps
OUTFILE="docs/pain-maps/$(date +%Y-%m-%d).md"
cat > "$OUTFILE" << 'EOF'
REPORT_CONTENT_HERE
EOF
echo "痛點地圖已儲存至 $OUTFILE"

如果分析多個公司,也使用 slug 化的公司名稱儲存個別檔案(小寫,將空格和特殊字元替換為連字號,移除結尾連字號):

例如:「ACME, Inc.」→ acme-inc.md,「CoolStartup Inc」→ coolstartup-inc.md

SLUG=$(echo "COMPANY_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/-$//')
cat > "docs/pain-maps/${SLUG}.md" << 'EOF'
INDIVIDUAL_ACCOUNT_CONTENT_HERE
EOF

何時使用

  • 您有 1-15 個貼上的職缺描述,並想知道每家公司正在經歷哪些痛點
  • 您正在規劃基於帳戶的客戶開發,並需要在撰寫序列之前進行結構化的痛點分析
  • 您希望優先處理哪些產生招聘訊號的帳戶
  • 產品行銷經理想要從職缺中取得真實世界的痛點語言,以優化產品定位

何時不使用

  • 您需要尋找正在招聘的公司(請改用 linkedin-hiring-intent-scanner 或 yc-intent-radar-skill)
  • 您需要撰寫客戶開發訊息(請改用 outreach-sequence-builder — 將此技能的交接結果餵給它)
  • 您想要監控某個平台的隨時間變化的訊號(請改用 reddit-icp-monitor 或 twitter-GTM-find-skill)
  • 您需要聯絡資訊或郵件豐富化(此技能不提供此功能)

良好搭配

  • outreach-sequence-builder:在建構序列時,直接將 handoff.for_outreach_sequence_builder 區塊作為背景資訊傳入。
  • noise-to-linkedin-carousel:將主要痛點與證據引用作為關於買方問題的輪播素材。
  • reddit-icp-monitor:將職缺中的痛點主題與 Reddit 討論中出現的痛點主題進行交叉比對。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Varnan-Tech/opendirectory

Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.

Varnan-Tech/opendirectory

World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.

Varnan-Tech/opendirectory

Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.

Varnan-Tech/opendirectory

Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.

Varnan-Tech/opendirectory

Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.

Varnan-Tech/opendirectory

Give it your product URL or description. It finds your top 5 competitors, runs three-track PR research across all of them (editorial, podcasts, communities), identifies which channels appear most frequently, looks up the journalist or host for each, and returns a tiered outreach list with story angles and ready-to-send cold pitch drafts tailored to your product. Use when asked to find PR opportunities, discover where competitors got featured, build a media outreach list, find which journalists cover my space, or get pitch templates for press coverage.

Varnan-Tech/opendirectory

Generate high-converting, deep-dive growth case studies in MDX format. Use this skill when asked to write a case study or blog post about a company's growth, tech stack, or product-led strategy. It handles the full pipeline (researching the company via Tavily, generating a 16:9 cover image, quality checking the draft, uploading assets to cloud storage, and pushing directly to the target repository).

Varnan-Tech/opendirectory

Scans your project for outdated npm, pip, Cargo, Go, or Ruby packages. Runs a CVE security audit. Fetches changelogs, summarizes breaking changes with Gemini, and opens one PR per risk group (patch, minor, major). Includes Diagnosis Mode for install conflicts. Use when asked to update dependencies, check for outdated packages, open dependency PRs, scan for package updates, audit for CVEs, or flag breaking changes in upgrades. Trigger when a user says "check for outdated packages", "update my dependencies", "open PRs for dependency updates", "scan for CVEs", or "which packages need upgrading".

Varnan-Tech/opendirectory

Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture. Uses graphify to build a knowledge graph first, then writes accurate docs from it. Use when asked to write docs, generate a README, document an API, update stale docs, create an API reference from code, add an architecture section, or document a project in any language. Trigger when a user says their docs are missing, outdated, or wants to document their codebase without writing it manually.

Varnan-Tech/opendirectory

Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.

Varnan-Tech/opendirectory

Brutally honest developer-experience audit for a GitHub repo. Scores 10 DX dimensions (time-to-first-success, README clarity, visual proof, install, quick-start, docs, examples, community, trust, marketing), writes a shareable roast in the requested tone (brutal/honest/kind), produces a prioritized action plan ranked by impact × effort, and sketches an ideal README. Trigger when user says "roast my repo", "audit my README", "dx audit", "developer experience review", "score my GitHub project", "before launch checklist", or "make my repo shareable".

Varnan-Tech/opendirectory

Drafts and designs a complete HTML email newsletter from a topic or content brief. Outputs paste-ready HTML for Loops, Mailchimp, Beehiiv, Resend, or any standard email platform. Includes subject line options and plain-text fallback. Trigger when a user says "write a newsletter", "draft an email newsletter", "create an HTML email", "design an email for my subscribers", or "write a newsletter about [topic]".

Varnan-Tech/opendirectory

Takes a GitHub PR URL or the current branch and writes a plain-English explanation of what it does and why, then posts it as a PR comment. Use when asked to explain a PR, summarize a pull request, write a plain-English description of a PR, add a summary comment to a PR, or understand what a PR changes. Trigger when a user says "explain this PR", "summarize this pull request", "what does this PR do", "add a comment explaining the PR", or shares a GitHub PR URL and asks what it does.

Varnan-Tech/opendirectory

Audit how often LLMs recommend your brand vs competitors and generate a GEO action plan.

Varnan-Tech/opendirectory

Takes a competitor's public GitHub repo URL, fetches their open issues via the GitHub REST API, filters noise locally, clusters issues into 6 demand categories, computes a demand score per issue and per cluster, and outputs a ranked demand gap report with a GTM messaging brief. Use when asked to scan a competitor's GitHub issues, find what their users are begging for, turn GitHub complaints into product positioning, identify competitor feature gaps, or generate messaging from real user demand. Trigger when a user says "scan competitor issues", "what are users asking for on X repo", "find demand gaps in Y", "turn GitHub issues into messaging", or "what should I build based on competitor complaints".

Varnan-Tech/opendirectory

Find recurring confusion in your repo's GitHub Discussions, rank it by urgency, and draft the actual docs fixes and content angles — with verbatim community quotes and source links as evidence.

Varnan-Tech/opendirectory

SEO keyword research workflow for blog generation using Google Trends data. Use when writing blog posts, planning content calendars, or optimizing articles for search engines. Finds breakout keywords, builds content structure, and generates SEO-optimized blog outlines targeting tech and developer audiences.

Varnan-Tech/opendirectory

Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this customer win into a PDF".

Varnan-Tech/opendirectory

Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6. 1080×1080px default, 5 style presets, highlight annotations. Trigger when user says "create a chart", "visualize data", "make a bar chart", "line graph", "pie chart", "data visualization", "chart this data", "plot", "graph", or "visualize these numbers".

Varnan-Tech/opendirectory

Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.

相關技能