query-leads
$
npx mdskill add aAAaqwq/AGI-Super-Team/query-leadsQuery CRM data to find leads, companies, and activities.
- Retrieves specific lead records matching priority or source criteria.
- Reads CSV files from the CRM path for leads, companies, people, and activities.
- Filters datasets using pandas to isolate records by stage or date.
- Outputs filtered lead records with relevant columns to the user.
SKILL.md
.github/skills/query-leadsView on GitHub ↗
---
name: query-leads
description: Search, filter, reports on CRM data
---
# CRM Query Leads
> Search, filtering, and reports on CRM data
## When to use
- "show high-priority leads"
- "who needs follow-up"
- "how many leads from YC"
- "CRM statistics"
## Paths
| What | Path |
|------|------|
| Leads | `$CRM_PATH/relationships/leads.csv` |
| Companies | `$CRM_PATH/contacts/companies.csv` |
| People | `$CRM_PATH/contacts/people.csv` |
| Activities | `$CRM_PATH/activities.csv` |
## Basic query
```python
import pandas as pd
from datetime import date
leads = pd.read_csv('$CRM_PATH/relationships/leads.csv')
people = pd.read_csv('$CRM_PATH/contacts/people.csv')
companies = pd.read_csv('$CRM_PATH/contacts/companies.csv')
```
## Common queries
### High-priority leads
```python
high = leads[leads['priority'] == 'high']
print(high[['lead_id', 'company_id', 'stage', 'next_action']])
```
### Follow-ups for today
```python
today = str(date.today())
followups = leads[leads['next_action_date'] == today]
print(followups[['lead_id', 'company_id', 'next_action']])
```
### By source
```python
# All inbound leads
inbound = leads[leads['source_direction'] == 'inbound']
# All from a specific source
from_facebook = leads[leads['source'] == 'facebook']
# Filter by campaign detail
campaign = leads[leads['source_detail'].str.contains('lookalike', na=False)]
```
### By stage
```python
# Leads in negotiation
negotiation = leads[leads['stage'] == 'negotiation']
# Won deals
won = leads[leads['stage'] == 'won']
```
### Statistics
```python
# Count by stage
print(leads['stage'].value_counts())
# Count by priority
print(leads['priority'].value_counts())
# Count by source
print(leads['source'].value_counts())
```
### Joining leads with companies and people
```python
# Add company name to leads
merged = leads.merge(
companies[['company_id', 'name', 'industry']],
on='company_id',
how='left'
)
# Add primary contact info
merged = merged.merge(
people[['person_id', 'first_name', 'last_name', 'email']],
left_on='primary_contact_id',
right_on='person_id',
how='left'
)
```
## Export results
```python
# To CSV
hot.to_csv('/tmp/hot_leads.csv', index=False)
# To JSON
hot.to_json('/tmp/hot_leads.json', orient='records', force_ascii=False)
# Just a list of emails
emails = hot['email'].dropna().tolist()
print(', '.join(emails))
```
## Related skills
- `add-lead` -- add a new lead
- `update-lead` -- update existing record
- `show-today` -- tasks related to CRM