Skip to main content
ClaudeWave
Skill730 repo starsupdated 11d ago

contact-cache

Contact Cache maintains a deduplicated CSV database of people contacted across outreach strategies, using LinkedIn URLs or emails as unique identifiers. Use this skill to prevent duplicate outreach when running recurring campaigns, track contact status from initial qualification through conversion, and export reporting data filtered by strategy or engagement stage.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/gooseworks-ai/goose-skills /tmp/contact-cache && cp -r /tmp/contact-cache/skills/capabilities/contact-cache ~/.claude/skills/contact-cache
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Contact Cache

Track all identified/contacted people across strategies. CSV-backed contact database with dedup by LinkedIn URL or email. Prevents duplicate outreach when running strategies on a recurring cadence.

## Usage

```bash
# Check if contacts are already cached
python3 skills/contact-cache/scripts/cache.py check --linkedin-urls "https://linkedin.com/in/person1,https://linkedin.com/in/person2"
python3 skills/contact-cache/scripts/cache.py check --emails "john@example.com,jane@example.com"

# Add a single contact
python3 skills/contact-cache/scripts/cache.py add --name "John Smith" --linkedin-url "https://linkedin.com/in/johnsmith" --email "john@example.com" --company "Acme Corp" --title "VP Finance" --strategy "2A-hiring-signal"

# Bulk import from CSV
python3 skills/contact-cache/scripts/cache.py add --csv /path/to/leads.csv --strategy "2A-hiring-signal"

# Update a contact's status
python3 skills/contact-cache/scripts/cache.py update --linkedin-url "https://linkedin.com/in/johnsmith" --status contacted --notes "Sent intro email 2026-02-24"

# Export the full cache
python3 skills/contact-cache/scripts/cache.py export --format csv
python3 skills/contact-cache/scripts/cache.py export --format json
python3 skills/contact-cache/scripts/cache.py export --status contacted
python3 skills/contact-cache/scripts/cache.py export --strategy "2A-hiring-signal"

# Print summary statistics
python3 skills/contact-cache/scripts/cache.py stats
```

## Data

Contacts are stored in `skills/contact-cache/data/contacts.csv`. The file is auto-created on first use.

Dedup is by LinkedIn URL (preferred) or email. Both are normalized and hashed (SHA256, first 16 chars) to produce a stable `contact_id`.

## Valid Statuses

`new`, `qualified`, `contacted`, `replied`, `meeting_booked`, `converted`, `not_interested`