Best use case
add-lead is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Add company/person/relationship to CRM
Teams using add-lead should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/add-lead/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How add-lead Compares
| Feature / Agent | add-lead | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Add company/person/relationship to CRM
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# CRM Add
> Adding a new company, person, or relationship
## When to use
- "add company X"
- "add contact Y"
- "new client/partner/lead"
## Architecture
See `$SKILLS_PATH/skills/crm/README.md`
## Paths
| What | Path |
|------|------|
| Companies | `$CRM_PATH/contacts/companies.csv` |
| People | `$CRM_PATH/contacts/people.csv` |
| Clients | `$CRM_PATH/relationships/clients.csv` |
| Partners | `$CRM_PATH/relationships/partners.csv` |
| Leads | `$CRM_PATH/relationships/leads.csv` |
| Products | `$CRM_PATH/products.csv` |
## Schemas
### contacts/companies.csv
```csv
company_id,name,website,linkedin_url,type,industry,geo,size,description,created_date,last_updated
```
- **type:** company, enterprise, ngo, individual
- **size:** small, medium, enterprise, individual
### contacts/people.csv
```csv
person_id,first_name,last_name,email,phone,linkedin_url,company_id,role,notes,created_date,last_updated
```
### relationships/clients.csv
```csv
client_id,company_id,product_id,status,contract_start,contract_end,mrr,currency,primary_contact_id,notes,created_date,last_updated
```
- **status:** active, paused, churned
### relationships/partners.csv
```csv
partner_id,company_id,product_id,partnership_type,status,since,primary_contact_id,revenue_share,notes,created_date,last_updated
```
- **partnership_type:** training_partner, workforce_partner, reseller_agreement, referral_partner
### relationships/leads.csv
```csv
lead_id,company_id,product_id,stage,source,source_direction,source_detail,priority,primary_contact_id,estimated_value,currency,next_action,next_action_date,notes,created_date,last_updated,last_contact_via_primary
```
- **stage:** new, qualified, proposal, negotiation, won, lost
- **source:** google, website, facebook, linkedin, email, telegram, referral, direct, event, calendly, research
- **source_direction:** inbound, outbound
- **source_detail:** _(optional)_ campaign name, referrer, post URL, etc.
## How to add
### 1. New company
```python
import pandas as pd
from datetime import date
df = pd.read_csv('$CRM_PATH/contacts/companies.csv')
# Check for duplicate
if 'example.com' in df['website'].values:
print("Company already exists!")
else:
new_row = {
'company_id': 'comp-example',
'name': 'Example Inc',
'website': 'example.com',
'type': 'company',
'industry': 'Technology',
'geo': 'USA',
'created_date': str(date.today()),
'last_updated': str(date.today())
}
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
df.to_csv('$CRM_PATH/contacts/companies.csv', index=False)
```
### 2. New contact
```python
# First make sure the company exists!
companies = pd.read_csv('$CRM_PATH/contacts/companies.csv')
if 'comp-example' not in companies['company_id'].values:
print("Add the company first!")
people = pd.read_csv('$CRM_PATH/contacts/people.csv')
new_person = {
'person_id': 'p-example-001',
'first_name': 'John',
'last_name': 'Doe',
'email': 'john@example.com',
'company_id': 'comp-example',
'role': 'CEO',
'created_date': str(date.today()),
'last_updated': str(date.today())
}
```
### 3. New client (relationship)
```python
# Company and product must exist!
clients = pd.read_csv('$CRM_PATH/relationships/clients.csv')
new_client = {
'client_id': 'cli-example-001',
'company_id': 'comp-example',
'product_id': 'prod-labeling',
'status': 'active',
'contract_start': str(date.today()),
'primary_contact_id': 'p-example-001',
'created_date': str(date.today()),
'last_updated': str(date.today())
}
```
## Validation (REQUIRED!)
### Before saving:
- [ ] ID is unique
- [ ] company_id exists in companies.csv (for people, relationships)
- [ ] product_id exists in products.csv (for relationships)
- [ ] person_id exists in people.csv (for primary_contact_id)
- [ ] No duplicates (check by email, website, name)
- [ ] created_date and last_updated are filled in
### After changes:
- [ ] Run `change-review` skill before PR
## ID formats
| Type | Format | Example |
|------|--------|---------|
| Company | comp-{name} | comp-acme |
| Person | p-{company}-{number} | p-acme-001 |
| Client | cli-{company}-{number} | cli-acme-001 |
| Partner | ptnr-{company}-{number} | ptnr-acme-001 |
| Lead | lead-{company}-{number} | lead-newco-001 |
## Related skills
- `update-lead` -- update existing record
- `query-leads` -- search
- `change-review` -- review before PRRelated Skills
update-lead
Update status, contacts, notes in CRM
lead-research-assistant
Identifies high-quality leads for your product or service by analyzing your business, searching for target companies, and providing actionable contact strategies. Perfect for sales, business development, and marketing professionals.
lead-intelligence
AI-native lead intelligence and outreach pipeline. Replaces Apollo, Clay, and ZoomInfo with agent-powered signal scoring, mutual ranking, warm path discovery, source-derived voice modeling, and channel-specific outreach across email, LinkedIn, and X. Use when the user wants to find, qualify, and reach high-value contacts.
lead-mining
面向中国大陆市场的企业线索采集模块。用于从公开渠道收集目标企业名单、联系人线索、基础画像与来源证据,适用于获客名单搭建、首轮BD筛选与渠道验证。
wemp-operator
> 微信公众号全功能运营——草稿/发布/评论/用户/素材/群发/统计/菜单/二维码 API 封装
zsxq-smart-publish
Publish and manage content on 知识星球 (zsxq.com). Supports talk posts, Q&A, long articles, file sharing, digest/bookmark, homework tasks, and tag management. Use when publishing content to 知识星球, creating/editing posts, uploading files/images/audio, managing digests, batch publishing, or formatting content for 知识星球.
zoom-automation
Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.
zoho-crm-automation
Automate Zoho CRM tasks via Rube MCP (Composio): create/update records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.
ziliu-publisher
字流(Ziliu) - AI驱动的多平台内容分发工具。用于一次创作、智能适配排版、一键分发到16+平台(公众号/知乎/小红书/B站/抖音/微博/X等)。当用户需要多平台发布、内容排版、格式适配时使用。触发词:字流、ziliu、多平台发布、一键分发、内容分发、排版发布。
zhihu-post-skill
> 知乎文章发布——知乎平台内容创作与发布自动化
zendesk-automation
Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.
youtube-knowledge-extractor
This skill performs deep analysis of YouTube videos through **both information channels** Multimodal YouTube video analysis through both audio (transcript) and visual (frame extraction + image analysis) channels. Especially powerful for HowTo videos, tutorials, demos, and explainer videos where what is SHOWN (screenshots, UI demos, diagrams, code, physical actions) is just as important as what is SAID. Use this skill whenever a user wants to analyze, summarize, or create step-by-step guides from YouTube videos, or when they share a YouTube URL and want to understand what happens in the video. Triggers on requests like "Analyze this YouTube video", "Create a step-by-step guide from this video", "What does this video show?", "Summarize this tutorial", or any YouTube URL shared with analysis intent.