Mail says
Application emails, read once through your own CLI, matched to notes, confirmed by you.
The read covers the applicant-tracking senders (Greenhouse, Ashby, Lever, Workday, Gem, Rippling and the rest), the subject lines they use ("Update from <Company>", "Thank you for your interest"), the companies you have applied to by name, and recruiters or hiring managers writing about a specific role, including through LinkedIn's InMail relay. Outreach lands as its own kind, "reached out": confirming it creates a note at reviewing (or records it on the note that exists) and adds the person to People. Mass job alerts, newsletters and "let's connect" notes with no role are left alone. When an email links the posting or quotes a requisition id, the match is made by that rather than by the role's wording, and confirming an application that has no note yet creates the note from the posting itself, scored and described, instead of a stub.
Applications come back as email: a confirmation, a rejection, an interview request. The mail check reads those through Claude Code and its Gmail connector (this is the one part that needs Claude Code specifically: the run allows three Gmail read tools by name and denies everything else).
The model only extracts: company, role, kind, date, a one-line gist, the sender, the message id. Matching each email to a note and everything that changes a note is ordinary code, and nothing changes until you confirm an item on the Mail page.
What confirming does
- A confirmation on a note you had not marked applied marks it applied as of the mail's date and fills the packet's Applied on when empty. On a note already applied, it records the mail.
- A rejection marks the note rejected.
- An interview or scheduling email marks it interviewing.
- An email about a role the vault has no note for offers to create one, with the company's other notes as a pick.
- Every confirmed email writes a dated line with the gist and a link to the message into the note.
- When a human wrote the email (not a no-reply address), that person is added to People and put on the note.
Several emails about one application are grouped; the strongest speaks for the group. Confirm the exact matches handles the safe set in one click: confirmations whose note matched by exact title.
When it runs
run.cmd reads the mailbox right after the morning scan. Check mail on the Mail page reads again now; tekjobs mail --days N does it from a terminal; mail_check and mail_items over MCP read and start only. Confirming stays yours.
Stuck, or have an idea? Ideas and questions on GitHub Discussions.