gmail-touchbase
Periodic relationship maintenance via email — identify contacts due for outreach, draft personalized check-ins, queue for user approval. Supports per-account tone and cadence.
Best use case
gmail-touchbase is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Periodic relationship maintenance via email — identify contacts due for outreach, draft personalized check-ins, queue for user approval. Supports per-account tone and cadence.
Teams using gmail-touchbase should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/gmail-touchbase/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How gmail-touchbase Compares
| Feature / Agent | gmail-touchbase | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Periodic relationship maintenance via email — identify contacts due for outreach, draft personalized check-ins, queue for user approval. Supports per-account tone and cadence.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Gmail Touchbase
Maintain professional and personal relationships through periodic, thoughtful email outreach.
## Prerequisites
- himalaya configured (see `gmail-multi-account`)
- Contact CSVs with touchbase tags
- `~/.hermes/email-logs/touchbase-tracker.csv` (auto-created)
## Contact Tagging
Contacts must be tagged in their CSV with a `touchbase_cadence` field:
| Cadence | Meaning | Example |
|---|---|---|
| `monthly` | High-value relationship, regular check-in | Active clients, close colleagues |
| `quarterly` | Professional network maintenance | Former colleagues, industry peers |
| `biannual` | Loose ties, keep warm | Conference contacts, alumni |
| `none` | No proactive outreach | Vendors, newsletters, transactional |
## Workflow
### Step 1: Check touchbase tracker
```bash
# See who is overdue for outreach
cat ~/.hermes/email-logs/touchbase-tracker.csv
```
Format: `email,name,account,cadence,last_contact,next_due`
### Step 2: Scan sent folders for last interaction
```bash
# Check when we last emailed someone
himalaya --account ace envelope list --folder "Sent" --output json | \
python3 -c "
import json, sys
msgs = json.load(sys.stdin)
for m in msgs:
if 'target@email.com' in m.get('to',''):
print(f\"{m['date']} — {m['subject']}\")
break
"
```
### Step 3: Draft touchbase emails
Per-account tone templates:
#### ace (Professional/Engineering)
```
Subject: Checking in — {topic/project reference}
Hi {FirstName},
Hope things are going well. I was {thinking about our conversation / reading about X in the industry / working on a project similar to Y} and thought of you.
{Personalized detail — reference shared project, industry event, mutual connection}
Would love to catch up sometime. Let me know if you have 15 minutes for a quick call.
Best regards,
Vamsee Achanta, P.E.
ACE Engineer Consulting
```
#### personal (Casual/Warm)
```
Subject: Hey {FirstName} — long time!
Hey {FirstName},
Been a while! Just wanted to check in and see how things are going.
{Personal detail — reference family, shared hobby, last conversation topic}
Let's catch up soon — coffee/call/lunch sometime?
Best,
Vamsee
```
#### skestates (Business/Formal)
```
Subject: {Topic} — SKEstates Inc
Dear {FirstName},
I wanted to follow up regarding {specific business matter}.
{Business-relevant detail}
Please let me know if you need anything from our side.
Best regards,
SKEstates Inc
skestatesinc@gmail.com
```
### Step 4: Queue for approval
NEVER send touchbase emails automatically. Always:
1. Present draft to user
2. Wait for approval/edits
3. Send only after explicit "send it" confirmation
### Step 5: Update tracker
After sending:
```bash
# Log the touchbase
echo "target@email.com,FirstName LastName,ace,quarterly,$(date +%Y-%m-%d),$(date -d '+3 months' +%Y-%m-%d)" >> ~/.hermes/email-logs/touchbase-tracker.csv
```
## Touchbase Candidates by Account
### ace — Engineering Network
Priority contacts:
- Former colleagues at lng-a, McDermott, Trendsetter, etc.
- GTM prospect pipeline (link to aceengineer-strategy/)
- SPE/OTC conference connections
- Cadence: monthly for active prospects, quarterly for network
### personal — Personal Network
Priority contacts:
- Close friends and family (check, don't email — text/call better)
- Alumni network (TAMU)
- Career mentors/mentees
- Cadence: quarterly for professional, biannual for loose ties
### skestates — Business Contacts
Priority contacts:
- Property management contacts
- Tax advisor, CPA, attorney
- Insurance agent
- Cadence: quarterly for advisors, biannual for others
## Automation
Weekly reminder cron:
```
# Every Monday at 8 AM CT
0 8 * * 1 hermes "Load gmail-touchbase. Check touchbase tracker for overdue contacts this week. Report who needs outreach — do not draft or send."
```
## Pitfalls
1. NEVER send without user approval — touchbase is relationship-critical
2. Don't touchbase people who recently emailed us — check inbox first
3. Personalization is key — generic "just checking in" emails are worse than none
4. Respect unsubscribe: if someone doesn't reply to 2 consecutive touchbases, reduce cadence
5. Don't touchbase clients with active billing disputes
6. Track all outreach in CSV to avoid double-contactingRelated Skills
gmail-triage
Daily multi-account Gmail inbox triage — scan unread, classify by urgency, cross-reference contacts, generate actionable digest. Supports ace/personal/skestates accounts.
gmail-outreach
Outbound email actions — periodic relationship touchbase messages and batch unsubscribe from newsletters/marketing. Combines gmail-touchbase + gmail-unsubscribe into one skill.
gmail-operations
Class-level Gmail and email operations: multi-account setup, OAuth, triage, extraction, archiving, attachments, unsubscribe, and touchbase workflows.
gmail-multi-account
Multi-account Gmail management via himalaya CLI. Three accounts (aceengineer, achantav, skestates) with distinct triage rules, contact DBs, and tone profiles. Foundation skill for email automation.
gmail-headless-oauth
Manual OAuth2 token exchange for Gmail on headless servers. Bypass gmail-mcp-multiauth browser requirement. Generate auth URLs, exchange codes, manage multi-account credentials with auto-refresh.
gmail-extract-and-act
The email-as-queue workflow — extract structured data from emails, act on it, track thread state, and delete emails when topics complete. Email is transient; extracted data is persistent.
gmail-attachment-to-document
Download attachments from Gmail threads, parse their content (Excel, PDF), extract structured data, and save to target repos with proper legal scanning.
gmail-unsubscribe
Identify and batch-unsubscribe from newsletters and marketing emails across Gmail accounts. Scans List-Unsubscribe headers, generates candidates, executes with user approval.
gmail-extract-archive
DEPRECATED — superseded by gmail-extract-and-act. Extract Gmail data into archive repo, parse attachments, legal scan, then delete. Uses archive-everything model.
gmail-extract-and-clean
DEPRECATED — superseded by gmail-extract-and-act. Extract emails from Gmail to /mnt/ace/<repo>/, archive to repos, commit, then delete. Uses archive-everything model.
gmail-email-to-repo-extraction
Extract structured data from Gmail inbox emails, enrich with domain-specific classification, legal-scan against deny list, commit to appropriate repo, then optionally delete originals.
gmail-data-extraction
Extract structured data from Gmail emails using REST API (no pip dependencies). Covers inbox scanning, subject line regex extraction, email text parsing, thread-aware drafting, and legal-scan-before-commit workflow.