Quick Start: Open this folder in Cursor, then just start talking to me in the AI chat. Say things like "I just met with John from Acme Corp" or "Show me my active leads" and I'll handle everything.
A simple CRM system that lives in Markdown files. Your AI assistant (me!) manages everything through conversation—no UI, no manual file management, no database setup.
Core Idea: You talk, I organize. That's it.
- Open in Cursor: Open this folder in the Cursor AI editor
- Talk to me: Share updates, paste meeting notes, or ask questions in the chat
- Let me handle it: I'll create files, update statuses, and keep things organized
You: "Just had a call with Sarah from TechCorp. They're interested
in our consulting services for a Q1 project."
Me: I'll create a lead file for TechCorp and a contact file for Sarah...
You: "What's the status of my projects?"
Me: *runs status report and shows you a table*
You: "Client X signed the contract!"
Me: Shall I convert that lead to an active project?
/people/- Contact files (one per person)/active_leads/- Potential clients/projects/projects/- Active work/outreach/- Cold outreach tracking
I'll suggest moving files between folders as things progress (leads → projects, projects → done, etc).
This system includes macOS automation scripts for:
- Apple Reminders - Add
@reminder(...)tags in any file - Apple Calendar - Add
@calendar(...)tags for events - iMessage - Send/export messages, extract tasks
- Apple Mail - Filter inbox, clean up marketing emails
- Task Management - Audit incomplete tasks, track status
Just ask me to run them: "Set a reminder for this" or "What's in my inbox?"
File Structure Standards
```markdown
## Status
- Stage: Qualification | Proposal Sent | Negotiation | Needs Follow-up
- Next Step: [Specific action]
- Last Updated: YYYY-MM-DD
### Project Files (`/projects/`)
```markdown
## Status
- **Current Status:** Planning | In Progress | On Hold | Blocked | Done
- **Next Milestone:** [Description]
- **Due Date:** YYYY-MM-DD
- **Last Updated:** YYYY-MM-DD
Script Documentation
Tag format:
@reminder(message="Follow up with client", at="2025-08-16 09:30", list="Work")Time formats:
YYYY-MM-DD HH:MM(24-hour)today 17:30ortomorrow 09:00+30m,+2h,+1d(relative)
Usage:
python3 scripts/reminders_cli.py --file "path/to/file.md"
python3 scripts/reminders_cli.py --report-day today # Check today's loadTag format:
@calendar(message="Focus: Write proposal", at="2025-08-16 10:00", duration="90m", calendar="Work")Usage:
python3 scripts/calendar_cli.py --file "path/to/file.md"Send Messages (imessage_send.py)
@imessage(to="Contact Name", message="Quick note")python3 scripts/imessage_send.py --file "path/to/file.md" --yesExport Conversations (imessage_dump.py)
python3 scripts/imessage_dump.py --contacts "john smith" --since 2024-01-01Extract Tasks (imessage_ingest.py)
python3 scripts/imessage_ingest.py --since today --dry-runList Unread (email_cli.py)
python3 scripts/email_cli.py
python3 scripts/email_cli.py --sender "example.com" --jsonClean Up Marketing (targeted_cleanup.py)
python3 scripts/email_cli.py --limit 500 --json | \
python3 scripts/targeted_cleanup.py --dry-runStatus Report (status_reporter.py)
python status_reporter.py
python status_reporter.py --dump-content leadsTask Audit (audit_tasks.sh)
./audit_tasks.shShows incomplete tasks with color coding:
- ☐ (Red) = Incomplete
- ➡️ (Yellow) = Moved once
- 🔁 (Orange) = Moved multiple times
Filter Tasks (filter_tasks.sh)
./filter_tasks.shShows tasks by status: Complete, In Progress, Not Started, Blocked
./scripts/focus_timer.sh "Write blog post" 90 15
# 90 minutes total, notify every 15 minutesHow the AI Assistant Works
I use Cursor AI rules (.cursor/rules/*.mdc) to understand how to help you:
use-every-time.mdc- Daily habits, weekly planning, task trackingreminders.mdc- Apple Reminders integration rulestask_context.mdc- Task context systemexperiments.mdc- Networking experiments frameworkuse-for-all-files-made.mdc- File creation standardsupdate-target-profiles-rule.mdc- Target profile updates
These rules are automatically applied when you work with me in Cursor.
When you mention new contacts/opportunities:
- Create files in the right folders
- Extract key details from your conversation
- Set up standard status blocks
When you share updates:
- Find the relevant files
- Add notes to the appropriate sections
- Update status fields and dates
- Ask for confirmation on major changes
When things progress:
- Suggest moving leads to projects (when won)
- Suggest archiving leads (when lost)
- Suggest moving projects to done (when complete)
- Paste freely: Drop meeting notes, call summaries, or email threads into chat
- Just ask: "What's stale?" "Who should I follow up with?" "Create a reminder for this"
- Let me infer: I'll figure out what needs updating from context
- Use natural language: No need to format things perfectly
Remember: The whole system is conversational. If you're ever unsure, just ask me!