Career-Ops Gmail Lead Plugin
career-ops-hq/career-ops
Pulls job leads from a Gmail label into the career-ops pipeline, extracting job URLs from DMARC-passing emails and de-duplicating against existing leads.
Ongoing Gmail inbox management via scheduled runs. An agent skill from vellum-ai/vellum-assistant.
$ npx skills add vellum-ai/vellum-assistant --skill inbox-management -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vellum-ai/vellum-assistant inbox-management --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/inbox-management .claude/skills/inbox-management && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "inbox-management" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/inbox-management into .claude/skills/inbox-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-management", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vellum-ai/vellum-assistant/tree/main/skills/inbox-managementType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vellum-ai/vellum-assistant --skill inbox-management -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vellum-ai/vellum-assistant inbox-management --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/inbox-management .agents/skills/inbox-management && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "inbox-management" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/inbox-management into .agents/skills/inbox-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-management", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vellum-ai/vellum-assistant --skill inbox-management -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vellum-ai/vellum-assistant inbox-management --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/inbox-management .cursor/skills/inbox-management && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "inbox-management" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/inbox-management into .cursor/skills/inbox-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-management", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vellum-ai/vellum-assistant.git --path skills/inbox-management--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vellum-ai/vellum-assistant --skill inbox-management -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vellum-ai/vellum-assistant inbox-management --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/inbox-management .gemini/skills/inbox-management && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "inbox-management" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/inbox-management into .gemini/skills/inbox-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-management", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vellum-ai/vellum-assistant inbox-managementInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vellum-ai/vellum-assistant --skill inbox-management -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/inbox-management .github/skills/inbox-management && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "inbox-management" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/inbox-management into .github/skills/inbox-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-management", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vellum-ai/vellum-assistant --skill inbox-management -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vellum-ai/vellum-assistant inbox-management --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vellum-ai/vellum-assistant.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/inbox-management .opencode/skills/inbox-management && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "inbox-management" agent skill from https://github.com/vellum-ai/vellum-assistant/tree/main/skills/inbox-management into .opencode/skills/inbox-management/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "inbox-management", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
inbox-managementOngoing Gmail inbox management via scheduled runs. An agent skill from vellum-ai/vellum-assistant.
Inbox Management is an agent skill from vellum-ai/vellum-assistant. Ongoing Gmail inbox management via scheduled runs. Archives known noise, flags urgent items, drafts replies in-thread (never auto-sends), and catches stale follow-ups. Empty polls spend no model tokens. Starts in flag-only mode.
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and assets (for example `scripts/__tests__/poll-lib.test.ts`, `scripts/poll-lib.ts` and `scripts/poll.ts`). Compatibility notes: Designed for Vellum personal assistants
It sits in Productivity & Automation, covering Email management. It works with Gmail. The repository describes itself as: An AI Assistant that’s easy to setup, does your work 24/7, knows your preferences and gets better over time. The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 33cc983. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (TypeScript), which the agent can run.
Shell commands in SKILL.md call:
bunFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Vellum personal assistants
From compatibility in the SKILL.md frontmatter.
Inbox Management loads about 4.7k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 2,256 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from vellum-ai/vellum-assistant at commit 33cc983, republished under its MIT licence (© vellum-ai). 2,256 words, ~4,653 tokens.
.claude/skills/inbox-management/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Companion to inbox-cleanup. Cleanup drains the backlog once. Management keeps the inbox clean on a schedule: archiving noise, flagging urgents, drafting replies, and catching stale follow-ups.
Runs as a script-mode schedule. Each fire polls Gmail deterministically. An empty poll (no new inbox mail and no due follow-up) exits without waking the assistant, so leftover Stage 0 mail is not re-judged every few hours. The assistant runs only when the poll attaches a digest.
Default posture: high recall on noise archiving, high precision on user interruption. Archive aggressively on known-safe patterns. Ping sparingly. Never auto-send a reply. When unsure, flag instead of archiving.
A single wrong archive of an important email kills trust. Earn autonomy in stages:
| Stage | Archive behavior | Draft behavior | Alerts |
|---|---|---|---|
| 0. Flag-only (default) | Nothing archived. All archive calls use --dry-run. Summary shows what would be archived for user review. | Drafts created in-thread, listed in summary. | Urgent scan active. |
| 1. Standard | Silent archive of known-safe categories only (calendar responses, no-reply, newsletters). Cold outreach still flagged. Batches > 1,000 ops auto-dry-run. | Drafts created in-thread, summarized per run. | Urgent scan active. |
| 2. Aggressive | Above + cold outreach archived by LLM judgment (default archive, flag only when relevant to user). All ops logged for reversal. | Same as Stage 1. | Urgent scan active. |
Graduation requires the user to explicitly say "graduate me" or equivalent. Do not infer from silence.
Never auto-send a draft. No toggle for this rule.
Before anything else, explain what the user is opting into. Be direct:
"Here's what inbox management does: on a schedule you choose (e.g. every few hours on weekdays), I'll scan new mail and take action based on a trust level you control. Quiet polls (no new mail) do not use the model.
Stage 0 (the default starting point): I watch but don't touch. I'll tell you what I would archive among new mail, show you draft replies I wrote, and flag urgent items, but I won't move or delete anything. This lasts until you explicitly tell me to graduate.
Stage 1 (you opt in): I silently archive obvious noise (calendar responses, no-reply senders, newsletters). Everything else is still flagged for your review.
Stage 2 (you opt in): I also archive cold outreach using my judgment. Higher autonomy, slightly higher risk of a wrong call.
At every stage: I will never send an email on your behalf. I create drafts for you to review. You can pause or stop this at any time."
Wait for explicit confirmation before proceeding. If the user hesitates or asks clarifying questions, answer them. Don't rush past this step.
Default to Stage 0 (flag-only). When the user (directly or via a caller like
admin-copilot setup) has made an explicit, informed choice to start higher,
honor it: Stage 1 (silent archive of known-safe categories only) or Stage 2
(also cold outreach by judgment). Do not infer a higher stage from enthusiasm;
require an explicit choice made after the §0 consent framing for that stage. Store
the chosen stage via gmail-prefs.ts --action set-management-config --stage <0|1|2>.
Ask for senders/domains that may look like outreach but matter. Seed categories:
Store via gmail-prefs.ts --action add-safelist --emails "...". The safe-list is shared with inbox-cleanup.
Default urgency bar for alerts:
Store threshold level via gmail-prefs.ts --action set-management-config --interrupt-threshold "default".
Do not create an execute-mode job. Empty inbox fires must not start an agent turn. This skill only sets up new script-mode schedules. Do not convert or rewrite leftover execute-mode jobs.
Inbox Management0 */3 * * 1-5 (every 3 hours on weekdays)scriptbun "$VELLUM_WORKSPACE_DIR/schedules/$__SCHEDULE_ID/poll.ts"timeout_ms: 900000 (the poll's runtime includes the woken assistant turn)inference_profile: "cost-optimized" (applies to wake handoff turns)quiet: truereuse_conversation: false (each wake is a fresh conversation)If assistant oauth status google shows more than one active connection, ask which inbox to watch and append one --account user@example.com flag per chosen mailbox.
By default the first poll baselines at now and does not escalate pre-existing mail (that is what stops the leftover Stage 0 pile from being re-billed). If the user wants the first sync to include recent mail, append --lookback <duration> (90m/4h/2d/1w).
mkdir -p "$VELLUM_WORKSPACE_DIR/schedules/<id>"
cp "$VELLUM_WORKSPACE_DIR/skills/inbox-management/scripts/poll.ts" \
"$VELLUM_WORKSPACE_DIR/skills/inbox-management/scripts/poll-lib.ts" \
"$VELLUM_WORKSPACE_DIR/schedules/<id>/"The schedule owns this copy. poll.ts self-provisions JSON state on first run (schedules/<id>/state/state.json).
assistant schedules execute <id>. The first run records {"ok":true,"new":0,...,"baselined":true}. Later empty polls record "new":0 without waking the assistant.Confirm cadence with the user. Overnight wakes (when the digest is non-empty): urgent-scan only.
Run messaging_analyze_style on the user's recent sent mail. Store the style profile in the Personal Knowledge Base for draft generation.
Confirm the user wants drafts generated. Some prefer flag-only forever.
The poll attached a digest as untrusted external content. Run these steps only against message ids in that digest. Do not search in:inbox or in:sent for the whole mailbox. Do not re-judge mail that is not in the digest.
Each step is silent unless something qualifies for interrupt.
Resume interrupted runs first. Before starting a new pipeline pass, check bun run scripts/gmail-runs.ts list. If the most recent run has status: "interrupted", resume it via bun run scripts/gmail-archive.ts archive --resume "<run-id>" before proceeding. Also run bun run scripts/gmail-runs.ts prune to clean up logs older than 30 days.
Read the last-run timestamp via gmail-prefs.ts --action get-management-config. If last-run is more than 2x the scheduled interval ago (e.g. >6 hours for a 3-hour schedule), notify the user:
Then update last-run to now via gmail-prefs.ts --action set-management-config --last-run "..." before continuing.
Restrict the usual archive queries to digest inbox ids (or --dry-run the matching ids). Queries for context:
subject:(Accepted: OR Declined: OR Tentative: OR "has accepted" OR "has declined") in:inbox
from:(noreply OR no-reply OR donotreply) in:inbox
subject:("newsletter" OR "weekly digest" OR "monthly digest") in:inboxCross-check the safe-list before each batch. Use gmail-prefs.ts --action list to load the safe-list. Remove any safe-listed sender from the batch before archiving.
Stage 0: Collect digest matches but do not archive. Include in summary with "would archive" label.
Scope the scan to the poll window, then intersect it with the digest:
bun run scripts/gmail-scan.ts outreach-scan --time-range 1d--time-range feeds Gmail's newer_than:, whose granularity is days, so 1d is the smallest window that covers the default 0 */3 * * 1-5 cadence. On a first sync, use the schedule's --lookback value rounded up to whole days. Append one --account user@example.com flag per mailbox when the schedule watches specific inboxes.
Then drop every result that is not in the digest: keep only senders that appear among the digest's inbox messages, and ignore the rest. The scan has no digest filter and its cache spans the whole window, so its results reach back past the mail this run is allowed to judge.
For each surviving sender, judge: is this person/offer potentially relevant to the user?
Archive only the digest ids for that sender, as one comma-separated list:
bun run scripts/gmail-archive.ts --message-ids <id1>,<id2>,<id3>Never archive through the --cache-key + --sender-emails path here. That path replays the scan's cache and pulls the sender's older messages, which are outside the digest.
Scan digest inbox messages (unread or not) for urgency signals:
| Signal | Why |
|---|---|
| "past due", "overdue", "final notice", "balance due" | Financial consequence |
| "will be suspended", "service interruption", "account closure" | Operational consequence |
| "signature required", "agreement", "DocuSign pending" from real sender | Legal action needed |
| .gov domain, "IRS", "state of", "department of" | Regulatory |
| Safe-list sender with deadline language | Known-important, urgent framing |
If any qualify, send one alert:
🚨 urgent email: count + per-item bullets (sender · subject · why)Overnight wakes: stop after this step.
From digest inbox messages, filter out anything caught by Steps 1-2, calendar responses, receipts, no-reply senders, one-way FYIs.
For each remaining email from real humans expecting a response:
gmail-email.ts draft --thread-id "..." --in-reply-to "...". Draft must be fully written in the user's voice (use Personal Knowledge Base style profile), substantive, no placeholders. Never auto-send.After the pass, send one summary:
[N] drafts ready for review: + per-item bulletsThe poll script ages sent mail in JSON state and only includes a follow-up in the digest when it is 2 to 14 days old and the thread still has no later message. Look only at digest followups (and any digest sent items the script already judged due). Do not search in:sent newer_than:14d yourself.
For each of those threads:
Ask: did this email clearly expect a response? Only flag if 2+ signals are present:
Do not flag: cold outreach the user sent, intros where silence is normal, thank-yous, FYIs, one-line acknowledgments, or threads where the user's last message was itself a reply to a no-reply sender.
If yes, alert with: recipient, subject, date sent, and a ready-to-send follow-up draft.
At Stage 0, send one summary for this digest only. This wake is a new conversation and only sees the current digest, so do not claim a full-day rollup. Skip the recap when the digest is a single obvious item.
📬 Inbox digest (flag-only mode):
Would archive ([N]):
• [category]: [count] ([sample sender/subject])
Cold outreach flagged ([N]):
• [sender] · [subject] · relevant: [y/n]
Drafts ready ([N]):
• [sender] · [subject]: [one-line summary]
Follow-ups suggested ([N]):
• [recipient] · [subject] · sent [date]User responds with:
Capture every correction: add protected senders to safe-list immediately.
Cursor state is JSON at schedules/<id>/state/state.json (same idea as the gmail skill's data/gmail-preferences.json). There is no SQLite database.
poll.ts syncs incrementally with Gmail's History API via assistant oauth request --provider google. New INBOX mail is judged now. New SENT mail is stored as a follow-up candidate and does not wake the model by itself. Drafts, spam, and other non-inbox/non-sent additions are ignored. No model call when history is empty and no follow-up is due.historyId and reports new: 0 unless --lookback was set. Mail already sitting in the inbox is not attached to a digest.pending and are retried on the next poll. The History API will not resend them after historyId advances, so pending is the retry queue. Overflow is never marked reported.--external-content (untrusted data). The pipeline hint is the trusted framing. The prompt is this digest only, not a day-wide journal.historyId has expired, the account re-baselines and catches up with a one-day inbox+sent search; the reported-id ledger absorbs the overlap.--account flags).poll.ts / poll-lib.ts.schedules/<id>/, re-applying any custom edits.schedules/<id>/ directory.assistant oauth ping google; if that fails, load the vellum-oauth-integrations skill to reconnect.name@domain) and domain-level (example.com) matches.inbox-cleanup. Both skills read/write the same store via gmail-prefs.ts.inbox-cleanup first. Management assumes the backlog is drained.gmail-auto-filters.ts generate to propose Gmail filters for safe categories (no-reply, calendar, sketchy TLDs, confirmed newsletters). The user confirms before any filter is created. These filters prevent re-accumulation immediately. Management Step 1 handles only new digest mail that slips through.gmail-prefs.ts.© vellum-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts, assets) in skills/inbox-management of vellum-ai/vellum-assistant.
Open the folder on GitHubat commit 33cc983
Inbox Management next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Inbox Management this skillvellum-ai/vellum-assistant | 1.4k | — | ~4.7k | Automated safety check: Pass | MIT | |
| Career-Ops Gmail Lead Plugincareer-ops-hq/career-ops | 74k | — | ~233 | Automated safety check: Notes | MIT | |
| Gmailteam-attention/plugins-for-claude-natives | 827 | — | ~967 | Automated safety check: Pass | MIT | |
| Connect Apps with ComposioComposioHQ/awesome-claude-skills | 77k | 3 repos | ~557 | Automated safety check: Pass | None | |
| Gmail Emailopen-gitagent/gitagent | 714 | — | ~235 | Automated safety check: Notes | MIT | |
| Google Workspaceyc-software/qm | 15k | — | ~1.8k | Automated safety check: Pass | MIT |
career-ops-hq/career-ops
Pulls job leads from a Gmail label into the career-ops pipeline, extracting job URLs from DMARC-passing emails and de-duplicating against existing leads.
team-attention/plugins-for-claude-natives
This skill should be used when the user asks to "check email", "read emails", "send email", "reply to email", "search inbox", or manages Gmail.
ComposioHQ/awesome-claude-skills
Connects an agent to 1000+ external apps through the Composio Tool Router plugin, so it can actually send emails, create issues and post messages instead of only drafting them.
open-gitagent/gitagent
Send emails via Gmail SMTP using App Password authentication.
yc-software/qm
Read and act on the user's Gmail, Google Calendar, and Google Tasks through per-user OAuth.
badlogic/pi-skills
Gmail CLI for searching emails, reading threads, sending messages, managing drafts, and handling labels/attachments.
vellum-ai/vellum-assistant
Create and configure a GitHub App so the assistant can push commits, open PRs, and comment under its own bot identity.
vellum-ai/vellum-assistant
Connect a Discord bot to the assistant via the Discord Gateway with guided application creation and intent configuration
vellum-ai/vellum-assistant
Create and configure a Sentry internal integration so the assistant can manage issues, alerts, and releases under its own identity
vellum-ai/vellum-assistant
Ingest a large dataset into memory as a skimmed map. An agent skill from vellum-ai/vellum-assistant.
vellum-ai/vellum-assistant
A skill your agent uses when the user wants to build, scaffold, ship, or edit a Vellum plugin that bundles multiple surfaces (hooks, tools, skills, and more) into one installable package.
vellum-ai/vellum-assistant
Connect a Slack app to the Vellum Assistant via Socket Mode.
Works with
Categories
Ongoing Gmail inbox management via scheduled runs. An agent skill from vellum-ai/vellum-assistant. Inbox Management is an agent skill from vellum-ai/vellum-assistant. Ongoing Gmail inbox management via scheduled runs.
Inbox Management fits situations like: tasks that involve Email management.
Run `npx skills add vellum-ai/vellum-assistant --skill inbox-management -a claude-code`. Or copy the skill folder (skills/inbox-management in vellum-ai/vellum-assistant) into .claude/skills/inbox-management in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vellum-ai/vellum-assistant --skill inbox-management -a codex`. Or copy the skill folder (skills/inbox-management in vellum-ai/vellum-assistant) into .agents/skills/inbox-management in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vellum-ai/vellum-assistant --skill inbox-management -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/inbox-management, .gemini/skills/inbox-management, .github/skills/inbox-management and .opencode/skills/inbox-management in your project.
Going by SKILL.md and its folder, Inbox Management needs TypeScript for the scripts in its folder and the command-line tools its instructions call (bun). Our summary lists: Node.js. Compatibility (from SKILL.md): Designed for Vellum personal assistants.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Inbox Management is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Inbox Management: Career-Ops Gmail Lead Plugin (career-ops-hq/career-ops, 74k stars), Gmail (team-attention/plugins-for-claude-natives, 827 stars), Connect Apps with Composio (ComposioHQ/awesome-claude-skills, 77k stars) and Gmail Email (open-gitagent/gitagent, 714 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vellum-ai (a GitHub organization) maintains it in vellum-ai/vellum-assistant, which has 1,408 GitHub stars. The repository holds 108 skills in this directory. The repository was last updated on October 9, 2026.
Source: vellum-ai/vellum-assistant on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.