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.
Call nodetool.web or nodetool.email from a code action: search the web, news or images, read a page's text, make an HTTP request, download a file into the workspace, screenshot a page, or search…
$ npx skills add nodetool-ai/nodetool --skill api-web -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nodetool-ai/nodetool api-web --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/nodetool-ai/nodetool.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/system-skills/api-web .claude/skills/api-web && 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 "api-web" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/api-web into .claude/skills/api-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "api-web", 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/nodetool-ai/nodetool/tree/main/packages/system-skills/api-webType 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 nodetool-ai/nodetool --skill api-web -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nodetool-ai/nodetool api-web --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/system-skills/api-web .agents/skills/api-web && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "api-web" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/api-web into .agents/skills/api-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "api-web", 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 nodetool-ai/nodetool --skill api-web -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nodetool-ai/nodetool api-web --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/system-skills/api-web .cursor/skills/api-web && 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 "api-web" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/api-web into .cursor/skills/api-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "api-web", 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/nodetool-ai/nodetool.git --path packages/system-skills/api-web--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 nodetool-ai/nodetool --skill api-web -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nodetool-ai/nodetool api-web --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/system-skills/api-web .gemini/skills/api-web && 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 "api-web" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/api-web into .gemini/skills/api-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "api-web", 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 nodetool-ai/nodetool api-webInstalls 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 nodetool-ai/nodetool --skill api-web -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/system-skills/api-web .github/skills/api-web && 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 "api-web" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/api-web into .github/skills/api-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "api-web", 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 nodetool-ai/nodetool --skill api-web -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nodetool-ai/nodetool api-web --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nodetool-ai/nodetool.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/system-skills/api-web .opencode/skills/api-web && 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 "api-web" agent skill from https://github.com/nodetool-ai/nodetool/tree/main/packages/system-skills/api-web into .opencode/skills/api-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "api-web", 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.
api-webCall nodetool.web or nodetool.email from a code action: search the web, news or images, read a page's text, make an HTTP request, download a file into the workspace, screenshot a page, or search…
API Web is an agent skill from nodetool-ai/nodetool. Call nodetool.web or nodetool.email from a code action: search the web, news or images, read a page's text, make an HTTP request, download a file into the workspace, screenshot a page, or search, archive and label Gmail messages. Load before the first call into these namespaces.
Its SKILL.md is about 740 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Productivity & Automation, covering Email management and Web search. It works with Gmail. The repository describes itself as: Agent-first Creative Workspace. The licence is AGPL-3.0.
Read from SKILL.md and the folder at commit f99c652. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).
From 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.
API Web loads about 741 tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 348 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); files beside SKILL.md are not scanned.
The full file from nodetool-ai/nodetool at commit f99c652, republished under its AGPL-3.0 licence (© nodetool-ai). 348 words, ~741 tokens.
.claude/skills/api-web/SKILL.md (or your agent's skills folder).| Call | Does | Answers |
|---|---|---|
search(query, opts) | Web search. | Pages with a title, URL and snippet |
news(query, opts) | News search. | Articles with dates and sources |
images(query, opts) | Image search. num_results defaults to 20. | Title, page link, original image URL and thumbnail URL for each result |
browse(url) | Fetches a page and strips the HTML. | The readable text |
fetch(url, {method, headers, body}) | One raw HTTP request. method defaults to GET. | The response body as text |
download(url, outputFile) | Saves the bytes of a URL into the workspace. url may also be an asset:// URI, a /api/storage/ key or a data: URI. | The workspace path, an asset_url, and for media a display_markdown snippet |
screenshot(url, outputFile) | Renders the page in headless Chrome and saves a PNG. outputFile defaults to screenshot.png. | The workspace path |
Options for search, news and images:
provider pins one backend: "serpapi", "dataforseo", "brave",
"apify", "openai" or "google" (Gemini grounded search, or SerpAPI for
news). Without it the call uses the first configured backend.images cannot use "openai" or "google", because they answer with prose
instead of results.allowed_domains and blocked_domains scope the results.num_results sets how many come back (10 by default for web and news).Rules:
browse. Use search to search, and
browse to read a page it found.download is how an asset reaches the workspace, for ffmpeg or a document
conversion. To keep a downloaded file in the library, pass its asset_url
to nodetool.assets.save(name, {source}).display_markdown as it
is. Do not build a link from the workspace path.Promise.all. Ten searches take one round
trip:const hits = await Promise.all(topics.map((t) => nodetool.web.search(t)));Gmail, when the account is connected.
| Call | Does |
|---|---|
search({subject, text, since_hours_ago, max_results}) | Finds messages. since_hours_ago defaults to 6 and max_results to 50. Each result has message_id, subject, sender and body. |
archive(messageIds) | Archives one id or an array of ids. |
label(messageId, label) | Adds a label to one message. |
Archiving and labelling change the user's mailbox. Declare the action as high risk unless the user asked for exactly that change.
© nodetool-ai, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in packages/system-skills/api-web of nodetool-ai/nodetool.
Open the folder on GitHubat commit f99c652
API Web 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 |
|---|---|---|---|---|---|---|
| API Web this skillnodetool-ai/nodetool | 554 | — | ~741 | Automated safety check: Pass | AGPL-3.0 | |
| Career-Ops Gmail Lead Plugincareer-ops-hq/career-ops | 74k | — | ~233 | Automated safety check: Notes | MIT | |
| Gmailteam-attention/plugins-for-claude-natives | 825 | — | ~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 | 710 | — | ~235 | Automated safety check: Notes | MIT | |
| Zeleremorses/zele | 299 | — | ~1.3k | Automated safety check: Pass | None |
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.
remorses/zele
zele is a multi-account email and calendar CLI for Gmail, IMAP/SMTP (Fastmail, Outlook, any provider), and Google Calendar.
yc-software/qm
Read and act on the user's Gmail, Google Calendar, and Google Tasks through per-user OAuth.
nodetool-ai/nodetool
Cut a NodeTool timeline to music and shape its pacing — detect the beat grid, place cuts on phrases, pick a cut type, build speed ramps with time remap, and give the piece an arc.
nodetool-ai/nodetool
Add and animate a consistent text layer on an existing NodeTool timeline.
nodetool-ai/nodetool
Choose and animate colour on a NodeTool timeline, including shape and text gradients, colour grades, 3D LUTs, and dither.
nodetool-ai/nodetool
Write a shootable, precisely timed commercial beat sheet and store it as a NodeTool storyboard, with a consistent entity roster behind every shot.
nodetool-ai/nodetool
Direct ElevenLabs speech, dialogue, sound effects and music — the bracketed audio tags v3 acts on and why the voice decides whether a tag lands, stability as the delivery dial, punctuation instead…
nodetool-ai/nodetool
Stage the frame on a NodeTool timeline — grids, focal placement, safe areas per aspect ratio, depth layers and parallax, camera moves, and where elements enter and leave.
Works with
Categories
Call nodetool.web or nodetool.email from a code action: search the web, news or images, read a page's text, make an HTTP request, download a file into the workspace, screenshot a page, or search…. API Web is an agent skill from nodetool-ai/nodetool.email from a code action: search the web, news or images, read a page's text, make an HTTP request, download a file into the workspace, screenshot a page, or search, archive and label Gmail messages.
API Web fits situations like: tasks that involve Email management; tasks that involve Web search.
Run `npx skills add nodetool-ai/nodetool --skill api-web -a claude-code`. Or copy the skill folder (packages/system-skills/api-web in nodetool-ai/nodetool) into .claude/skills/api-web in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nodetool-ai/nodetool --skill api-web -a codex`. Or copy the skill folder (packages/system-skills/api-web in nodetool-ai/nodetool) into .agents/skills/api-web 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 nodetool-ai/nodetool --skill api-web -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/api-web, .gemini/skills/api-web, .github/skills/api-web and .opencode/skills/api-web in your project.
SKILL.md names no scripts, command-line tools or credentials: API Web is instructions for the agent only.
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. Review the folder before installing.
API Web is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 741 tokens (SKILL.md is roughly 3k 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 API Web: Career-Ops Gmail Lead Plugin (career-ops-hq/career-ops, 74k stars), Gmail (team-attention/plugins-for-claude-natives, 825 stars), Connect Apps with Composio (ComposioHQ/awesome-claude-skills, 77k stars) and Gmail Email (open-gitagent/gitagent, 710 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nodetool-ai (a GitHub organization) maintains it in nodetool-ai/nodetool, which has 554 GitHub stars. The repository holds 130 skills in this directory. The repository was last updated on October 7, 2026.
Source: nodetool-ai/nodetool on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.