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

crustdata-supabasecrustdata Supabase 搜索

Agent Skill

用于辅助数据整理、表格处理、CSV/Excel 分析、指标计算和图表准备。它适合让 Agent 清洗字段、汇总数据、发现异常、生成统计口径或把分析结果转成可读说明。使用时需要确认数据来源、字段含义和时间范围,避免把样本数据当全量事实;涉及敏感数据、导出文件或批量写回时,应先确认权限和脱敏边界。

总安装

214

周安装

9

GitHub Stars

607

下载量

75
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/athina-ai/goose-skills --skill crustdata-supabase

简介

crustdata-supabase 用于基于 CrustData People Search API 搜索 ICP 匹配线索,并自动去重于 Supabase 数据库。

  • 每次运行仅获取新增线索,现有记录已在 API 层排除,适合销售线索拓展场景。
  • 使用前需在 .env 设置 SUPABASE_URL 和 SUPABASE_SERVICE_ROLE_KEY,并导入 schema.sql 建表。
  • 安装命令为 npx skills add https://github.com/athina-ai/goose-skills --skill crustdata-supabase,来源仓库为 https://github.com/athina-ai/goose-skills。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

SKILL.md

CrustData + Supabase Prospect Search

Search for ICP-matching leads using CrustData's People Search API with automatic deduplication against a Supabase database. Each run fetches only net-new leads — existing database entries are excluded at the API level via CrustData's exclude_profiles feature.

Prerequisites (One-Time Setup)

1. Supabase Project

You need a Supabase project with URL and service role key. Add to .env:

SUPABASE_URL=https://xxx.supabase.co
SUPABASE_SERVICE_ROLE_KEY=eyJ...

2. Database Tables

The full database schema lives in tools/supabase/schema.sql. Run it via the Supabase SQL Editor or using the setup script:

python3 tools/supabase/setup_database.py

This creates 6 tables: runs, companies, people, signals, enrichment_log, outreach_log. This skill writes to the people table (dedup by linkedin_url UNIQUE constraint).

3. Verify CrustData Token

Ensure CRUSTDATA_API_TOKEN is set in .env.

Phase 0: Intake

Ask the user these questions to build the CrustData filter config:

ICP Criteria

  1. What job titles are you targeting? (e.g., "VP Sales", "Head of Growth")
  2. Any titles to exclude? (e.g., "Software Engineer", "Intern")
  3. Company size (headcount range)? Options: Self-employed, 1-10, 11-50, 51-200, 201-500, 501-1,000, 1,001-5,000, 5,001-10,000, 10,001+
  4. Industry focus? (e.g., Software Development, Financial Services)
  5. Geographic region? (e.g., "San Francisco Bay Area", "United States")
  6. Seniority level? Options: CXO, Vice President, Director, Experienced Manager, Entry Level Manager, Strategic, Senior
  7. Any specific companies to target or exclude?
  8. Any other filters? (function, years of experience, recently changed jobs, posted on LinkedIn)
  9. How many results do you need? (test: 25, standard: up to 500, full: up to 2,500)

Map Answers to Config

Build the filters array using CrustData's exact filter format. Each filter is:

{
  "filter_type": "FILTER_NAME",
  "type": "in" or "not in",
  "value": ["value1", "value2"]
}

Available filter types: CURRENT_TITLE, PAST_TITLE, CURRENT_COMPANY, PAST_COMPANY, COMPANY_HEADQUARTERS, COMPANY_HEADCOUNT, REGION, INDUSTRY, SENIORITY_LEVEL, FUNCTION, YEARS_AT_CURRENT_COMPANY, YEARS_IN_CURRENT_POSITION, YEARS_OF_EXPERIENCE, COMPANY_TYPE, PROFILE_LANGUAGE, SCHOOL, KEYWORD, FIRST_NAME, LAST_NAME.

Boolean filters (no type/value): RECENTLY_CHANGED_JOBS, POSTED_ON_LINKEDIN, IN_THE_NEWS.

For titles, fuzzy_match: true can be added for broader matching.

Save config:

skills/crustdata-supabase/configs/{client-name}.json

Config JSON structure:

{
  "client_name": "happy-robot",
  "search_config_name": "growth-leaders-sf",
  "icp_segment": "growth-leaders",
  "filters": [
    {
      "filter_type": "CURRENT_TITLE",
      "type": "in",
      "value": ["Head of Growth", "VP Growth", "Director of Growth"],
      "fuzzy_match": true
    },
    {
      "filter_type": "REGION",
      "type": "in",
      "value": ["San Francisco Bay Area"]
    },
    {
      "filter_type": "COMPANY_HEADCOUNT",
      "type": "in",
      "value": ["51-200", "201-500", "501-1,000"]
    },
    {
      "filter_type": "INDUSTRY",
      "type": "in",
      "value": ["Software Development", "Technology, Information and Internet"]
    }
  ],
  "post_processing": {
    "strict_title_and_company_match": false,
    "exclude_names": []
  },
  "max_pages": 20,
  "mode": "standard"
}

Database Write Policy

CRITICAL: Never upsert leads to Supabase without explicit user approval.

This skill writes to the people table. Unwanted writes pollute the database, and cleaning up bad entries across multiple test runs is painful.

Required flow:

  1. Run --preview first to show total matching count and cost estimate
  2. Run --test to fetch a small sample (~25 leads) — present results to the user before any database write
  3. Get explicit user approval before upserting to Supabase
  4. Only then run the full pipeline

The agent must NEVER pass --yes on a first run. The --yes flag is only for pre-approved automated runs where the user has already reviewed and confirmed the filters work correctly.

If the user hasn't approved the upsert: Export the CSV and show sample results. Let the user review. Only proceed to upsert after they confirm.

Phase 1: Run the Pipeline

python3 skills/crustdata-supabase/scripts/prospect_search.py \
  --config skills/crustdata-supabase/configs/{client-name}.json \
  [--test] [--yes] [--preview] [--dry-run]

Flags:

  • --config (required) — path to client config JSON
  • --test — limit to 1 page / 25 results max
  • --yes — skip cost confirmation prompt. Only use for pre-approved automated runs, never on first runs.
  • --preview — show total matching count only (5 credits)
  • --dry-run — show what would happen, no API calls

Pipeline Steps

Step 1: Connect to Supabase — Verify connection, count existing leads.

Step 2: Fetch existing URLs — SELECT all linkedin_url from people table for dedup.

Step 3: Build CrustData payload — Combine user filters with exclude_profiles from Supabase.

Step 4: Search page 1 — Get first 25 results + total_display_count. Show cost estimate.

Step 5: Paginate — Fetch remaining pages with 4s delay between requests (rate limit: 15 req/min).

Step 6: Present results to user — Show sample leads (names, titles, companies) and ask for explicit approval before writing to the database.

Step 7: Upsert to SupabaseOnly after user approval. Insert new leads, update existing on conflict (linkedin_url UNIQUE).

Step 8: Export CSV — Write results to output/{client-name}-{timestamp}.csv.

Mode Caps

ParameterTestStandardFull
Max pages120100
Max results255002,500
Est. credits5-2525-500100-2,500

Cost

CrustData charges 1 credit per profile returned (minimum 5 per request). Preview mode costs 5 credits. Always run --preview or --test first to verify filters before a full run.

Phase 2: Review & Refine

Present results:

  • Total matching — how many profiles match the filters in CrustData
  • Existing excluded — how many were already in Supabase
  • New leads found — net-new profiles fetched
  • Email coverage — how many have verified emails
  • Top 10 leads — name, title, company preview

Common adjustments:

  • Too broad — add more filters (region, seniority, headcount)
  • Too narrow — relax title matching (fuzzy_match: true), broaden regions
  • Wrong ICP — adjust title include/exclude lists
  • Too expensive — lower max_pages or switch to test mode

Phase 3: Output

Supabase (Primary)

New leads are stored in the people table with full CrustData data including email, title, company, location, industry, and headcount. Each person is tagged with client_name, search_config_name, and icp_segment for traceability.

CSV (Secondary)

Exported to skills/crustdata-supabase/output/{client-name}-{timestamp}.csv:

ColumnDescription
NameFull name
TitleCurrent job title
CompanyCurrent company name
Company LinkedIn URLCompany page URL
Company WebsiteCompany domain
Company IndustryIndustry
Company HeadcountEmployee count
Company TypePublic, Private, etc.
Person LinkedIn URLProfile URL
RegionGeographic location
HeadlineLinkedIn headline
Years of ExperienceTotal YoE
ConnectionsLinkedIn connection count
SkillsSemicolon-separated skills
EmailBusiness email (if available)

Example Usage

Trigger phrases:

  • "Find leads matching [ICP description]"
  • "Search CrustData for [titles] at [companies/industries]"
  • "Run prospect-search for [client]"
  • "Source new leads for [client] — skip duplicates"

Preview (count only):

python3 skills/crustdata-supabase/scripts/prospect_search.py \
  --config skills/crustdata-supabase/configs/happy-robot.json --preview

Test run (review results before approving DB write):

python3 skills/crustdata-supabase/scripts/prospect_search.py \
  --config skills/crustdata-supabase/configs/happy-robot.json --test

Full run (only after user approves test results):

python3 skills/crustdata-supabase/scripts/prospect_search.py \
  --config skills/crustdata-supabase/configs/happy-robot.json

CrustData API Reference

  • Endpoint: POST https://api.crustdata.com/screener/person/search/
  • Auth: Authorization: Token {CRUSTDATA_API_TOKEN}
  • Rate limit: 15 requests/minute
  • Max per page: 25 profiles (synchronous)
  • Max page number: 100
  • Dedup: post_processing.exclude_profiles — array of LinkedIn URLs to skip
  • Full docs: Crustdata/Crustdata_documentation/people-docs/realtime-searchapi.md
  • Filter reference: Crustdata/Crustdata_documentation/how_to_build_people_filters.md

适合场景

01

用户想查找某类 Agent Skill 时

02

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

03

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

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

平台分布

Codex

33.11%
按下载量换算25

Claude

32.28%
按下载量换算24

Cursor

18.24%
按下载量换算14

Gemini CLI

8.48%
按下载量换算6

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

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

安装前确认

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

来源信息

继续浏览同类 Skills