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
- Deduplicate: Check if contact already exists by email/linkedin URL
- Enrich: Use Exa.ai or web search to fill missing data
- Categorize: Tag by relationship (colleague, crypto, personal)
- 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
Repository
chipagosfinest/…-life-osFirst Seen
Feb 6, 2026
Security Audits
Installed on
replit1
openclaw1
opencode1
cursor1
codex1
claude-code1