Weekly Relationship Ping
Reminds you to reach out to important contacts based on last interaction date, relationship strength, and life events
Weekly Relationship Ping
Reminds you to nurture important relationships by tracking last interaction dates, relationship strength tiers, and life events for your personal and professional contacts. Goes beyond a basic CRM by understanding relationship dynamics -- prioritizing people you are drifting from, surfacing context before you reach out, and suggesting personalized conversation starters based on their recent activity or shared history.
Supported Platforms & Integrations
| Platform | Setup Method | Auth Type | Notes |
|---|---|---|---|
| Google Contacts | Google People API | OAuth 2.0 | Contact details, birthdays, notes |
| Apple Contacts | Contacts framework / AppleScript | System permission | macOS, reads all contact groups |
| LinkedIn API | OAuth 2.0 | Professional connections, job changes | |
| iMessage | AppleScript bridge | System permission | macOS, reads last message timestamps |
When to Use This Skill
- Use this when you value relationships but forget to reach out consistently
- Use this when you have 50+ meaningful contacts and cannot mentally track them all
- Use this when you want to maintain a professional network without it feeling transactional
- Consider alternatives when you manage client relationships (use a proper CRM)
Quick Start
# Minimal configuration - relationship-ping.yml skill: weekly-relationship-ping schedule: "sunday-10:00" contacts: inner_circle: frequency: weekly people: - name: "Mom" phone: true birthday: "1962-06-15" notes: "Loves hearing about the kids" - name: "Best friend Jake" preferred: text last_contact: "2026-03-10" close_friends:
claude /weekly-relationship-ping
Expected Output
RELATIONSHIP PING - Week of March 15, 2026
5 people to connect with this week
OVERDUE (contact needed):
1. Mike R. (Close Friend) - Last contact: 19 days ago
Frequency: biweekly | Status: 5 days overdue
Context: College roommate. Baby born January 12 -- now ~2 months old.
Suggested message: "Hey Mike, how's the little one doing at 2
months? Sleep getting any better? Would love to catch up soon."
Preferred method: Text
2. Former boss David (Professional) - Last contact: 38 days ago
Frequency: monthly | Status: 8 days overdue
...
Advanced Configuration
Platform-Specific Setup
Gmail Last Contact Detection
auto_detect: gmail: enabled: true oauth_credentials_env: "GMAIL_OAUTH" match_by: "email_address" scan_sent: true scan_received: true update_last_contact: true
Full Options Reference
| Parameter | Type | Default | Description |
|---|---|---|---|
| schedule | string | "sunday-10:00" | Weekly ping reminder time |
| contacts | object | required | Contact tiers with frequency and people |
| max_pings_per_week | number | 5 | Maximum outreach suggestions per week |
| detect_life_events | boolean | true | Auto-detect birthdays, job changes |
| auto_detect_last_contact | boolean | false | Scan email/iMessage for last contact dates |
| birthday_advance_days | number | 7 | Days before birthday to remind |
Core Concepts
| Concept | Purpose | How It Works |
|---|---|---|
| Tiered Frequency | Different cadences for different relationships | Inner circle weekly, close friends biweekly, professional monthly, extended quarterly |
| Drift Detection | Catches fading relationships before they go cold | Flags contacts past their scheduled frequency with urgency proportional to delay |
| Context Memory | Makes outreach feel genuine, not robotic | Stores conversation topics and life events to suggest relevant, personal messages |
| Life Event Awareness | Surfaces natural outreach opportunities | Detects birthdays, job changes, promotions, and milestones for timely congratulations |
Architecture
Contact Config ──> Tier Manager ──> Frequency Calculator ──> Due Date Engine
| |
Gmail/iMessage ──> Last Contact Detector ──┘ Overdue Ranker
Workflow Examples
Scenario 1: Maintaining professional network after job change
Input: 15 professional contacts from previous company, frequency set to monthly Processing: Tracks which former colleagues you have stayed in touch with post-departure. Prioritizes relationships that are drifting (no contact since you left). Detects LinkedIn job changes for natural outreach opportunities. Output: Weekly suggestions focused on former colleagues with context like "Last talked about joining a startup. They posted about launching their product last week -- great time to reach out."
Scenario 2: Birthday reminder with context
Input: Sarah's birthday is in 5 days, last contact was 8 days ago (biweekly, not overdue) Processing: Moves Sarah to this week's ping list despite not being due for biweekly contact yet. Enriches reminder with recent context and relationship history. Output: "Sarah Chen's birthday is March 20 (turning 32). You last talked about her payments project. Consider a birthday coffee invitation: 'Happy birthday, Sarah! Want to grab birthday coffee this week? I want to hear how the payments project is going.'"
Best Practices
-
Start with 15-25 contacts maximum -- You cannot meaningfully maintain unlimited relationships. Choose the people who matter most and track them intentionally. Add.
-
Update context notes after every interaction -- After calling Mom, spend 30 seconds adding "Talked about school enrollment, she's excited about the art program." This makes.
-
Use suggested messages as starting points, not scripts -- The AI-generated message starters save you from blank-message paralysis. Adapt them to your voice and add personal details the.
Common Issues
-
iMessage last contact not updating -- The AppleScript bridge requires Full Disk Access permission on macOS. Grant this in System Preferences > Privacy & Security >.
-
LinkedIn life events not detecting -- LinkedIn API access is restricted. If you do not have API access, the skill falls back to manual life event entries. You can.
Privacy & Data Handling
Relationship data is among the most personal data you have and is handled with maximum care. All contact information, interaction history, and relationship notes are stored exclusively on your local machine in ~/.claude/data/relationship-ping/. No contact names, phone numbers, relationship details, or conversation notes are ever transmitted to external services. When using Gmail or iMessage auto-detection, the skill reads timestamps locally and stores only the date of last contact, not message content.
Reviews
No reviews yet. Be the first to review this template!
Similar Templates
Full-Stack Code Reviewer
Comprehensive code review skill that checks for security vulnerabilities, performance issues, accessibility, and best practices across frontend and backend code.
Test Suite Generator
Generates comprehensive test suites with unit tests, integration tests, and edge cases. Supports Jest, Vitest, Pytest, and Go testing.
Pro Architecture Workspace
Battle-tested skill for architectural, decision, making, framework. Includes structured workflows, validation checks, and reusable patterns for development.