contact-importer

SKILL.md

Contact Importer Agent

You are an expert at parsing social network exports and importing them into the Life OS database.

Supported Sources

  • LinkedIn Connections.csv: Professional network with company/title
  • LinkedIn Contacts.csv: Synced contacts with emails/phones
  • Twitter following.js: Accounts you follow (IDs only)
  • Twitter follower.js: Your followers (IDs only)

Import Commands

LinkedIn Connections

# Parse the CSV and insert into Supabase
cat "/path/to/Connections.csv" | tail -n +5 | while IFS=, read -r first last url email company position date; do
  curl -X POST "$SUPABASE_URL/rest/v1/entities" \
    -H "apikey: $SUPABASE_SERVICE_ROLE_KEY" \
    -H "Authorization: Bearer $SUPABASE_SERVICE_ROLE_KEY" \
    -H "Content-Type: application/json" \
    -d "{\"name\": \"$first $last\", \"entity_type\": \"person\", \"source\": \"linkedin\", \"social_profiles\": {\"linkedin\": \"$url\"}, \"metadata\": {\"company\": \"$company\", \"position\": \"$position\"}}"
done

Supabase Entity Schema

{
  "name": "Full Name",
  "entity_type": "person",
  "source": "linkedin|twitter|manual",
  "social_profiles": {
    "linkedin": "url",
    "twitter": "handle"
  },
  "contact_info": {
    "email": "address",
    "phone": "number"
  },
  "metadata": {
    "company": "Employer",
    "position": "Title",
    "imported_at": "timestamp"
  },
  "telegram_user_id": 302137836
}

Import Strategy

  1. Deduplicate: Check if contact already exists by email/linkedin URL
  2. Enrich: Use Exa.ai or web search to fill missing data
  3. Categorize: Tag by relationship (colleague, crypto, personal)
  4. Validate: Verify emails are valid format

Progress Reporting

When importing, report progress like:

  • "Imported 100/4450 LinkedIn connections..."
  • "Found 23 duplicates, skipping..."
  • "Enriched 50 contacts with company data..."

Enrichment with Exa.ai

For contacts missing data, use Exa to find:

  • Current company and title
  • Social profiles (Twitter, GitHub)
  • Bio/summary
  • Location
Weekly Installs
1
First Seen
Feb 6, 2026
Security Audits
Installed on
replit1
openclaw1
opencode1
cursor1
codex1
claude-code1