Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计提醒

find-leads寻找线索

Agent Skill

find-leads 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

734

周安装

30

GitHub Stars

公开资料未说明

下载量

238
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:find-leads(寻找线索)
来源仓库:https://github.com/psquared-development/psquared-skills
仓库路径:skills/find-leads
安装命令:
npx skills add https://github.com/psquared-development/psquared-skills --skill find-leads
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/psquared-development/psquared-skills --skill find-leads

简介

find-leads 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。

  • 可结合来源仓库、安装命令和原始 README 继续核验具体用法。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。
  • 当前顶部介绍为空,需参考原始 SKILL.md 获取详细功能说明。
  • find-leads 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Find New Leads for InboxMate

Announce: `` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Lead Finder started. Target: [N] new leads Checking environment... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``

Autonomy — Run Without Asking

This skill should run as autonomously as possible. The user may not be available to answer questions. Do NOT ask for confirmation between leads — just process them one by one:

  • Search → validate → skip or add → next. No pauses.
  • If a check is ambiguous (e.g., unclear if email is personal), err on the side of skipping and add to skip-list. Don't ask.
  • Only stop if a critical error occurs (e.g., CRM token invalid, network down).
  • Report results at the end, not during.

Legal Context — READ THIS FIRST

B2B cold email in Germany and Austria is a legal grey area. The strict reading of UWG §7 (Germany) and TKG §174 (Austria) says prior consent is required. However, the prevailing practical interpretation (used by thousands of companies daily) allows individual B2B outreach IF certain conditions are met.

Our position: We send individually crafted, genuinely valuable emails (with a working demo built for their company). This is not spam. But we MUST document why each lead qualifies for outreach.

Every lead MUST pass ALL 8 of these checks:

The 7 Qualification Criteria

#CriterionWhat to checkWhy it matters
1German companyDomain is.de, Impressum shows German address (DE), company is registered in GermanyAustrian law (TKG §174) is stricter — no B2B cold email exception. Germany (UWG) has more practical tolerance for relevant individual B2B outreach.
2B2B onlyCompany, not a private personConsumer protection is stricter
3Objectively relevantCompany would genuinely benefit from a chatbot (has website traffic, customer-facing business)UWG requires the offer to be relevant to the recipient's business
4Publicly available emailEmail found on their public website (contact page, imprint, team page) — NOT scraped from LinkedIn, purchased lists, or leaked databasesData source must be GDPR-compliant (publicly made available by the company itself)
5Specific contact personEmail goes to a named person with decision authority (founder, CEO, marketing lead, head of sales) — NOT info@, office@, or generic addressesShows individual outreach, not bulk
6Genuine value offerWe built something specifically for them (a demo) — not a generic pitchDifferentiates from spam
7Not already in CRMCompany doesn't already exist in our CRMNo duplicate outreach
8Website is activeWebsite loads, has real content, is maintained (copyright not 2+ years old)No dead businesses

If ANY of the 8 criteria fails → SKIP the lead. Add to skip-list.json. Do not add to CRM.


Skip List — Persistent Rejected Leads

The file skip-list.json in the current working directory tracks companies that were already checked and rejected. Before researching any company, check this list first. If the domain is in the list, skip immediately — don't waste time fetching the website again.

On first run: If skip-list.json doesn't exist, create it with [].

Format:

[
  { "domain": "example.de", "reason": "has chatbot", "date": "2026-03-19" },
  { "domain": "other.at", "reason": "no personal email", "date": "2026-03-19" }
]

When a company fails any check: Append to skip-list.json with the domain and a short reason (max 5 words).

Before checking any website: Read skip-list.json, check if domain is already there. If yes, skip without fetching.

Short reason examples:

  • "has chatbot" — already has a chat widget
  • "no personal email" — only info@/office@ found
  • "dead website" — site down or parked
  • "outdated site" — copyright 2+ years old
  • "too small" — sole proprietor, no real web presence
  • "not B2B-facing" — wholesale/internal only
  • "already in CRM" — duplicate
  • "no email on site" — no contact info found
  • "generic only" — only kontakt@/info@ available

STEP 0 — Check Environment

Read .env in the current working directory using the Read tool. Extract these tokens:

VariablePurposeUsed for
PSQUARED_CRM_TOKENTwenty CRM GraphQL APIChecking duplicates, creating companies/persons/notes

The .env file is at the root of the working directory (claude-overlord-folder). If it doesn't exist, stop and tell the user.

Read skip-list.json (or create it as [] if it doesn't exist).

Once verified: Environment OK. Skip list: [N] entries. Starting lead search...

STEP 1 — Search for Leads

Use WebSearch to find German and Austrian businesses that would benefit from an AI chatbot on their website.

Search strategies (rotate between these — Germany only,.de domains):

  • "[industry] Unternehmen" site:.de
  • "[industry] GmbH" Kontakt Email site:.de
  • "Geschäftsführer" "[industry]" site:.de
  • "Immobilienmakler" OR "Versicherungsmakler" OR "Steuerberater" OR "Rechtsanwalt" site:.de
  • Industry-specific: real estate agencies, insurance brokers, IT consultancies, marketing agencies, SaaS companies, e-commerce shops, dental practices, law firms, accounting firms

Good target industries for InboxMate:

  • Real estate (Immobilien) — high inquiry volume, FAQ-heavy
  • Insurance/finance — customer questions, lead qualification
  • IT services / MSPs — support requests, product questions
  • Marketing/digital agencies — client communication, onboarding
  • SaaS/software companies — customer support, feature questions
  • Professional services (law, tax, consulting) — initial consultations
  • E-commerce — product questions, order support
  • Healthcare (dental, physio) — appointment scheduling, FAQ

Bad targets (skip):

  • Very small sole proprietors with no website
  • Government / public institutions
  • Non-profits (unless large)
  • Companies that clearly don't need a chatbot (e.g., heavy industry, agriculture)

STEP 2 — Validate Each Lead

For each potential lead found:

2a — Check skip list first

Extract the domain from the company URL. Check if it's in skip-list.json. If found, skip immediately and move to the next lead — no need to fetch the website.

2b — Check the website (WebFetch)

Visit their website. Verify:

  • Website loads and is active
  • Impressum shows a German address (city in Germany, not Austria/Switzerland) — this confirms criterion #1
  • Content is current (check copyright year, last blog post, news)
  • Company does customer-facing business (not just B2B wholesale with no public presence)
  • They DON'T already have a chatbot on their site (check for chat widgets like Intercom, Drift, Zendesk, HubSpot, Tidio, Crisp, LiveChat in the HTML source)

Skip if: website is down, parked, outdated, has a chatbot, or is NOT a German company. Add to skip-list.json with reason.

2c — Find a contact person with email

Look for contact information on:

  1. /kontakt or /contact page
  2. /impressum or /imprint page
  3. /team or /ueber-uns page
  4. Footer of the homepage

What we need:

  • The best contact person who will understand our offer — someone technical or product-oriented
  • Ideal roles (in order of preference): CTO, Head of IT, Head of Product, Head of Digital, Technical Lead, Marketing-Leiter with tech focus
  • Fallback roles: Geschäftsführer, CEO, Head of Sales — but only if no technical contact is available
  • Their email address — must be visible on the company's PUBLIC website
  • Their role/title

Email rules:

  • MUST be a personal email (vorname@firma.de or v.nachname@firma.de)
  • MUST be found on the company's own website (screenshot/note the exact page)
  • Must NOT be from a purchased list, LinkedIn scrape, or any third-party source
  • AVOID generic addresses (info@, office@, hello@, kontakt@) — these rarely reach the right person
  • Generic emails are acceptable ONLY as last resort if no personal email is available AND you also found a specific contact name on the site
  • If no usable email found → add to skip-list.json with reason and move on

2d — Determine relevance

Write a 1-2 sentence justification for why InboxMate would be valuable for this specific company. Reference something concrete:

  • "High-traffic real estate listing site with FAQ section that could be automated"
  • "IT consultancy with complex service portfolio — chatbot could pre-qualify leads"
  • "Marketing agency with multiple service pages — visitors need guidance to the right offering"

2e — Check CRM for duplicates

Check by domain first (most reliable), then fall back to company name:

Step 1 — Search by domain:

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"{ companies(filter: { domainName: { primaryLinkUrl: { like: \\\"%[domain]%\\\" } } }, first: 1) { totalCount } }\"}"

Step 2 — If not found by domain, also search by name (catches companies added without a domain):

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"{ companies(filter: { name: { like: \\\"%[Company Name]%\\\" } }, first: 1) { totalCount } }\"}"

If either query returns totalCount > 0 → SKIP. Add to skip-list.json with reason "already in CRM".


STEP 3 — Add Qualified Lead to CRM

For each lead that passes ALL 7 criteria:

3a — Create Company

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"mutation { createCompany(data: { name: \\\"[Company Name]\\\", domainName: { primaryLinkUrl: \\\"https://[domain]\\\" } }) { id name } }\"}"

3b — Create Person (contact)

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"mutation { createPerson(data: { name: { firstName: \\\"[First]\\\", lastName: \\\"[Last]\\\" }, emails: { primaryEmail: \\\"[email]\\\" }, companyId: \\\"[companyId]\\\", jobTitle: \\\"[Role/Title]\\\" }) { id } }\"}"

3c — Create Note with justification

Two-step process: Create the note first (with just a title), then update it with the full body. This avoids issues with long content in a single mutation.

Step 1 — Create note:

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"mutation { createNote(data: { title: \\\"Lead Qualification: [Company Name] — [date]\\\" }) { id } }\"}"

Step 2 — Update note with full content:

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"mutation { updateNote(id: \\\"[noteId]\\\", data: { body: \\\"Email source: [URL where email was found]\\\\nContact: [Name], [Role]\\\\nRelevance: [1-2 sentence justification]\\\\n\\\\nDemo approach: [suggest best angle for demo — e.g. 'FAQ automation for property listings' or 'lead qualification chatbot for service pages']\\\\n\\\\nChecks: German company ✓, B2B ✓, Relevant ✓, Public email ✓, Named contact ✓, Value offer ✓, Not in CRM ✓, Active website ✓\\\" }) { id } }\"}"

Step 3 — Link note to company:

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"mutation { createNoteTarget(data: { noteId: \\\"[noteId]\\\", companyId: \\\"[companyId]\\\" }) { id } }\"}"

The "Demo approach" field should suggest the best angle for the InboxMate demo based on what you found on their website. Examples:

  • Real estate: "FAQ bot for property listings — automate viewing requests and price inquiries"
  • IT services: "Lead qualification chatbot — help visitors find the right service package"
  • Agency: "Portfolio navigator — guide prospects to relevant case studies and services"
  • E-commerce: "Product advisor — help customers choose the right product, reduce support load"
Announce after each: Added: [Company Name] — [contact email] — [1-line reason]

STEP 4 — Report

Announce: `` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Lead Finder complete. Added: [N] - [Company A] — [email] — [reason] - [Company B] — [email] — [reason] Skipped: [M] - [Company C] — already in CRM - [Company D] — no personal email found - [Company E] — already has chatbot Next step: Run /create-demo-for-crm-lead to build demos ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``

Important Reminders

  • Quality over quantity. 5 well-qualified leads are worth more than 50 questionable ones.
  • Document everything. The note on each company is your legal paper trail.
  • Only public emails. If you can't find an email on their website, skip the lead.
  • Rotate industries. Don't search for 10 real estate companies in a row — diversify.
  • Check for chatbots. If they already have Intercom/Drift/Zendesk/HubSpot chat, skip — they're already served.
  • Germany only. Only.de domains. Austrian law (TKG) is stricter — no B2B exception. Verify Impressum shows German address.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

38.93%
按下载量换算93

Claude

29.01%
按下载量换算69

Cursor

17.59%
按下载量换算42

Gemini CLI

9.16%
按下载量换算22

安全审计

Gen Agent Trust Hub

通过

Socket

可疑

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills