Cali — Career Advisor Agent
template-version: 0.1.1 scaffolded-from: whale-labs-agent-template v0.1.1
Cali watches Chris's inbox for recruiter outreach, decides whether a role fits what he is looking for, drafts a reply in his voice, and hands it to him on Telegram with a link to the exact place to paste it. She never sends anything herself.
The idea
Recruiter messages pile up because answering them well takes judgment and time. Cali has the judgment written down (a career profile: target roles, domains, dealbreakers, tone) and does the time-consuming part: reading, classifying, drafting. Chris keeps the final say on every word.
How the recruiter-inbox loop works
- Every 15 minutes a scheduled function asks Cali to check Gmail.
- Two nets catch candidates: LinkedIn InMail notifications, and direct emails with recruiting keywords (newsletters are excluded by their unsubscribe headers).
- New messages become outreach records. For each one Cali reads the career profile, decides yes or no with a one-line reason, studies her past approved replies, and drafts.
- She posts the summary, her call, the draft, and a deep link to Chris on Telegram.
- Chris revises in plain language, approves, or flips the call. Approved drafts are stored and become examples for the next one.
- Chris pastes the reply and says "sent".
Architecture
- Mastra agent (Claude Sonnet) with one skill,
recruiter-inbox, and six tools. - Netlify Functions: the Mastra server as a background function (15-minute turns), a Telegram webhook, and a scheduled trigger.
- Turso for conversation memory and the outreach table.
- Gmail API read-only.
- Telegram as the review channel; iMessage support is built in and dormant.
- Mastra Studio for traces.
Gmail ──▶ inbox-poll (cron) ──▶ Mastra server ──▶ Cali ──▶ Telegram ──▶ Chris
│ │
└── Turso ◀──────┘ (memory, outreach)
Skills roadmap
- Resume and achievement tracking
- Interview prep
- LinkedIn post drafting
- Reply sending (email reply-to for InMails, or a hosted browser)
- iMessage with a dedicated line
Privacy
This page publishes no data. Outreach details stay in Chris's own Turso database and Telegram. Built from the Whale Labs agent template, the same foundation as Jerry.