← ClaudeAtlas

freehire-mail-triagelisted

Use when sorting a job seeker's application mail into the freehire tracker from their own mail client (himalaya, mbsync, notmuch, the Gmail API, any IMAP) — pushing a fetched batch, judging what each message is, linking it to an application, advancing a stage from a reply, or draining the two queues the matcher fills (suggested links awaiting a verdict, and mail with no application to attach to).
strelov1/freehire-cli · ★ 5 · AI & Automation · score 72
Install: claude install-skill strelov1/freehire-cli
# Sorting application mail into the tracker Needs a key: `freehire auth login --token fhk_…` (or `FREEHIRE_TOKEN`). `freehire` does **not** fetch mail. You bring your own client — [himalaya], `mbsync`, `notmuch`, the Gmail API, anything that can emit JSON — and hand the result over. In exchange you get the inbox wired into the application tracker without paying for a mail connector or a classifier. [himalaya]: https://github.com/pimalaya/himalaya The loop is four steps, and then two queues that only a human's verdict can empty: ```bash # 1. Your client fetches; you shape it into the batch and push it. himalaya envelope list --output json | jq '[.[] | { external_id: .message_id, from_addr: .from.addr, from_name: .from.name, subject: .subject, received_at: .date }]' | freehire inbox push # 2. Ask for what still needs judging, with the text to judge. freehire --json inbox list --unclassified --body --limit 50 # 3. You decide what each message is (and which application it belongs to). # 4. Record the verdict — one call sets the label, the link, and the stage. freehire inbox triage 812 rejection --slug go-dev-acme-t35nijto freehire inbox triage 813 interview_invitation --slug data-eng-globex-9f2k1a0z --confidence 0.9 ``` **`external_id` is the deduplication key** — use the message's `Message-ID`. Pushing the same id again *updates* that message rather than storing a copy, so re-running your sync over an overlapping window is safe and cheap. It never un-reads a mess