#20 by GitHub stars
career-ops-hq/career-ops
Open-source AI job search agent and job finder: scan job boards, score each job 1-5 against your CV before you apply, tailor an ATS-friendly resume and cover letter, get interview prep and an application tracker. It helps you fill in each application; you press Submit. Runs locally in Codex, OpenCode and other AI CLIs, or as a Claude Code plugin.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
.antigravitycli/skills/career-ops/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
.grok/skills/career-ops/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
.kimi/skills/career-ops/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
.opencode/skills/career-ops/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
.qwen/skills/career-ops/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
antigravity-directory/skills/career-ops/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
claude-directory/skills/career-ops/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
cursor-directory/skills/career-ops/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
openai-directory/skills/career-ops/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
plugins/apify/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
plugins/gmail/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
plugins/h1b-sponsor/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
plugins/notion/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → cd3793734fcd
No earlier version was observed for comparison.
Verified commit cd3793734fcd57693ddd97a20ccf0d3298b7d47e
git clone --filter=blob:none --no-checkout https://github.com/career-ops-hq/career-ops.git .hotskills/career-ops-hq-career-ops && git -C .hotskills/career-ops-hq-career-ops checkout --detach cd3793734fcd57693ddd97a20ccf0d3298b7d47e
# Copy each selected skill directory from .hotskills/career-ops-hq-career-ops into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/career-ops-hq/career-ops.git .hotskills/career-ops-hq-career-ops && git -C .hotskills/career-ops-hq-career-ops checkout --detach cd3793734fcd57693ddd97a20ccf0d3298b7d47e
# Copy each selected skill directory from .hotskills/career-ops-hq-career-ops into .agents/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/career-ops-hq/career-ops.git .hotskills/career-ops-hq-career-ops && git -C .hotskills/career-ops-hq-career-ops checkout --detach cd3793734fcd57693ddd97a20ccf0d3298b7d47e
# Copy each selected skill directory from .hotskills/career-ops-hq-career-ops into .gemini/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/career-ops-hq/career-ops.git .hotskills/career-ops-hq-career-ops && git -C .hotskills/career-ops-hq-career-ops checkout --detach cd3793734fcd57693ddd97a20ccf0d3298b7d47e
# Copy each selected skill directory from .hotskills/career-ops-hq-career-ops into .github/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/career-ops-hq/career-ops.git .hotskills/career-ops-hq-career-ops && git -C .hotskills/career-ops-hq-career-ops checkout --detach cd3793734fcd57693ddd97a20ccf0d3298b7d47e
# Copy each selected skill directory from .hotskills/career-ops-hq-career-ops into .opencode/skills/<skill-name>/Heat
7.8- Star growth, last 7 daysAhead of 92% of tracked repositories
- Star growth, last 24 hoursAhead of 93% of tracked repositories
- Rank movement, last 7 daysAhead of 74% of tracked repositories
- Commits, last 30 daysAhead of 99% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- career-ops
.antigravitycli/skills/career-ops - career-ops
.grok/skills/career-ops - career-ops
.kimi/skills/career-ops - career-ops
.opencode/skills/career-ops - career-ops
.qwen/skills/career-ops - career-ops
antigravity-directory/skills/career-ops - career-ops
claude-directory/skills/career-ops - career-ops
cursor-directory/skills/career-ops - career-ops
openai-directory/skills/career-ops - career-ops-plugin-apify
plugins/apify - career-ops-plugin-gmail
plugins/gmail - h1b-sponsor
plugins/h1b-sponsor - career-ops-plugin-notion
plugins/notion
How it works
career-ops
When your agent uses it
Open-source AI job search agent -- evaluate offers, generate CVs, scan portals, track applications. Use when the user pastes a job URL or JD, asks to scan portals, generate a CV/PDF, track applications, prepare for interviews, draft outreach/emails, or run any career-ops mode.
What it loads into context
Frontmatter
205 tokensAlways available to the agent
SKILL.md
5,474 tokensWhen the skill is activated
Reference documents
5,474 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Project Root Resolution
- Invocation Notes
- Mode Routing
- Output Language Directive
- Session Title (host-optional, #5303)
- Discovery Mode (no arguments)
- Context Loading by Mode
Scripts executed separately
../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../remember-cli.mjs../../../remember-cli.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../verify-portals.mjs../../../verify-portals.mjs../../../verify-portals.mjs
Files
../../../.agents/skills/career-ops/SKILL.mddoc22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytes../../../.claude-plugin/marketplace.jsonasset705 bytes../../../.claude-plugin/marketplace.jsonasset705 bytes../../../.claude-plugin/marketplace.jsonasset705 bytes../../../.claude-plugin/plugin.jsonasset641 bytes../../../.claude-plugin/plugin.jsonasset641 bytes../../../claude-directory/.claude-plugin/icon.pngasset18,380 bytes../../../claude-directory/.claude-plugin/plugin.jsonasset1,076 bytes../../../claude-directory/.claude-plugin/plugin.jsonasset1,076 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../hooks/hooks.jsonasset367 bytes../../../hooks/hooks.jsonasset367 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../remember-cli.mjsruns1,948 bytes../../../remember-cli.mjsruns1,948 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# career-ops: open-source AI job search agent
career-ops is a multi-CLI AI job search agent. The routing below is shared across supported agent CLIs even when the invocation surface differs.
## Project Root Resolution
Before reading any repo-relative path, derive `PROJECT_ROOT` from this loaded `SKILL.md`: start at the skill file's directory and walk upward until the nearest directory containing both `AGENTS.md` and `modes/`. This is required even when the checkout itself is nested (for example `Development\\career-ops`) or the command starts from a subdirectory. If those two sentinels cannot be found, career-ops itself is not installed next to this skill: follow **Skill installed without career-ops** below before reading or writing any file. Then derive `DATA_ROOT`, where the user's own files live, with the precedence `path-resolver.mjs` uses: `CAREER_OPS_ROOT` or `CAREER_OPS_DATA_DIR` if either is set; otherwise the path written in `PROJECT_ROOT/.career-ops-data` if that file exists and is not empty; otherwise `~/career-ops-data` when `PROJECT_ROOT` is a Claude Code plugin install copy (inside `~/.claude/plugins/cache/`, `marketplaces/` or `synced/`); otherwise `PROJECT_ROOT` itself. A relative value in either place resolves against `PROJECT_ROOT`. Run from `PROJECT_ROOT`, `node -e "import('./path-resolver.mjs').then(m => console.log(m.getCareerOpsRoot()))"` prints the same directory. In a checkout with no override, the two roots are one directory. A plugin install copy never shares its directory with `DATA_ROOT`.
Resolve every path in this router against one of these two roots, never against the process's current working directory. User Layer paths resolve against `DATA_ROOT`. They include `cv.md`, `article-digest.md`, `portals.yml`, `config/` (except the shipped `*.example.*` files), `data/`, `reports/`, `output/`, `interview-prep/`, `modes/_profile.md`, `modes/_custom.md`, `modes/_brief.md`, `batch/tracker-additions/`, and every other User Layer path in `DATA_CONTRACT.md`. Everything else (the other `modes/` files, scripts, templates, the `config/*.example.*` files) resolves against `PROJECT_ROOT`.
### Skill installed without career-ops
A skills catalog, or the career-ops plugin from a plugin directory (Claude or OpenAI), installs only this `SKILL.md`. The modes, scripts and `AGENTS.md` it routes to live in the career-ops repository, so no mode can run until career-ops is installed. Never improvise a mode from this file alone: an evaluation without the repo's modes and the user's CV is not a career-ops evaluation.
View the complete source on GitHubcareer-ops
When your agent uses it
Open-source AI job search agent -- evaluate offers, generate CVs, scan portals, track applications. Use when the user pastes a job URL or JD, asks to scan portals, generate a CV/PDF, track applications, prepare for interviews, draft outreach/emails, or run any career-ops mode.
What it loads into context
Frontmatter
205 tokensAlways available to the agent
SKILL.md
5,474 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Project Root Resolution
- Invocation Notes
- Mode Routing
- Output Language Directive
- Session Title (host-optional, #5303)
- Discovery Mode (no arguments)
- Context Loading by Mode
Scripts executed separately
../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../remember-cli.mjs../../../remember-cli.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../verify-portals.mjs../../../verify-portals.mjs../../../verify-portals.mjs
Files
SKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../remember-cli.mjsruns1,948 bytes../../../remember-cli.mjsruns1,948 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# career-ops: open-source AI job search agent
career-ops is a multi-CLI AI job search agent. The routing below is shared across supported agent CLIs even when the invocation surface differs.
## Project Root Resolution
Before reading any repo-relative path, derive `PROJECT_ROOT` from this loaded `SKILL.md`: start at the skill file's directory and walk upward until the nearest directory containing both `AGENTS.md` and `modes/`. This is required even when the checkout itself is nested (for example `Development\\career-ops`) or the command starts from a subdirectory. If those two sentinels cannot be found, career-ops itself is not installed next to this skill: follow **Skill installed without career-ops** below before reading or writing any file. Then derive `DATA_ROOT`, where the user's own files live, with the precedence `path-resolver.mjs` uses: `CAREER_OPS_ROOT` or `CAREER_OPS_DATA_DIR` if either is set; otherwise the path written in `PROJECT_ROOT/.career-ops-data` if that file exists and is not empty; otherwise `~/career-ops-data` when `PROJECT_ROOT` is a Claude Code plugin install copy (inside `~/.claude/plugins/cache/`, `marketplaces/` or `synced/`); otherwise `PROJECT_ROOT` itself. A relative value in either place resolves against `PROJECT_ROOT`. Run from `PROJECT_ROOT`, `node -e "import('./path-resolver.mjs').then(m => console.log(m.getCareerOpsRoot()))"` prints the same directory. In a checkout with no override, the two roots are one directory. A plugin install copy never shares its directory with `DATA_ROOT`.
Resolve every path in this router against one of these two roots, never against the process's current working directory. User Layer paths resolve against `DATA_ROOT`. They include `cv.md`, `article-digest.md`, `portals.yml`, `config/` (except the shipped `*.example.*` files), `data/`, `reports/`, `output/`, `interview-prep/`, `modes/_profile.md`, `modes/_custom.md`, `modes/_brief.md`, `batch/tracker-additions/`, and every other User Layer path in `DATA_CONTRACT.md`. Everything else (the other `modes/` files, scripts, templates, the `config/*.example.*` files) resolves against `PROJECT_ROOT`.
### Skill installed without career-ops
A skills catalog, or the career-ops plugin from a plugin directory (Claude or OpenAI), installs only this `SKILL.md`. The modes, scripts and `AGENTS.md` it routes to live in the career-ops repository, so no mode can run until career-ops is installed. Never improvise a mode from this file alone: an evaluation without the repo's modes and the user's CV is not a career-ops evaluation.
View the complete source on GitHubcareer-ops
When your agent uses it
Open-source AI job search agent -- evaluate offers, generate CVs, scan portals, track applications. Use when the user pastes a job URL or JD, asks to scan portals, generate a CV/PDF, track applications, prepare for interviews, draft outreach/emails, or run any career-ops mode.
What it loads into context
Frontmatter
205 tokensAlways available to the agent
SKILL.md
5,474 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Project Root Resolution
- Invocation Notes
- Mode Routing
- Output Language Directive
- Session Title (host-optional, #5303)
- Discovery Mode (no arguments)
- Context Loading by Mode
Scripts executed separately
../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../remember-cli.mjs../../../remember-cli.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../verify-portals.mjs../../../verify-portals.mjs../../../verify-portals.mjs
Files
SKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../remember-cli.mjsruns1,948 bytes../../../remember-cli.mjsruns1,948 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# career-ops: open-source AI job search agent
career-ops is a multi-CLI AI job search agent. The routing below is shared across supported agent CLIs even when the invocation surface differs.
## Project Root Resolution
Before reading any repo-relative path, derive `PROJECT_ROOT` from this loaded `SKILL.md`: start at the skill file's directory and walk upward until the nearest directory containing both `AGENTS.md` and `modes/`. This is required even when the checkout itself is nested (for example `Development\\career-ops`) or the command starts from a subdirectory. If those two sentinels cannot be found, career-ops itself is not installed next to this skill: follow **Skill installed without career-ops** below before reading or writing any file. Then derive `DATA_ROOT`, where the user's own files live, with the precedence `path-resolver.mjs` uses: `CAREER_OPS_ROOT` or `CAREER_OPS_DATA_DIR` if either is set; otherwise the path written in `PROJECT_ROOT/.career-ops-data` if that file exists and is not empty; otherwise `~/career-ops-data` when `PROJECT_ROOT` is a Claude Code plugin install copy (inside `~/.claude/plugins/cache/`, `marketplaces/` or `synced/`); otherwise `PROJECT_ROOT` itself. A relative value in either place resolves against `PROJECT_ROOT`. Run from `PROJECT_ROOT`, `node -e "import('./path-resolver.mjs').then(m => console.log(m.getCareerOpsRoot()))"` prints the same directory. In a checkout with no override, the two roots are one directory. A plugin install copy never shares its directory with `DATA_ROOT`.
Resolve every path in this router against one of these two roots, never against the process's current working directory. User Layer paths resolve against `DATA_ROOT`. They include `cv.md`, `article-digest.md`, `portals.yml`, `config/` (except the shipped `*.example.*` files), `data/`, `reports/`, `output/`, `interview-prep/`, `modes/_profile.md`, `modes/_custom.md`, `modes/_brief.md`, `batch/tracker-additions/`, and every other User Layer path in `DATA_CONTRACT.md`. Everything else (the other `modes/` files, scripts, templates, the `config/*.example.*` files) resolves against `PROJECT_ROOT`.
### Skill installed without career-ops
A skills catalog, or the career-ops plugin from a plugin directory (Claude or OpenAI), installs only this `SKILL.md`. The modes, scripts and `AGENTS.md` it routes to live in the career-ops repository, so no mode can run until career-ops is installed. Never improvise a mode from this file alone: an evaluation without the repo's modes and the user's CV is not a career-ops evaluation.
View the complete source on GitHubcareer-ops
When your agent uses it
Open-source AI job search agent -- evaluate offers, generate CVs, scan portals, track applications. Use when the user pastes a job URL or JD, asks to scan portals, generate a CV/PDF, track applications, prepare for interviews, draft outreach/emails, or run any career-ops mode.
What it loads into context
Frontmatter
205 tokensAlways available to the agent
SKILL.md
5,474 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Project Root Resolution
- Invocation Notes
- Mode Routing
- Output Language Directive
- Session Title (host-optional, #5303)
- Discovery Mode (no arguments)
- Context Loading by Mode
Scripts executed separately
../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../remember-cli.mjs../../../remember-cli.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../verify-portals.mjs../../../verify-portals.mjs../../../verify-portals.mjs
Files
SKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../remember-cli.mjsruns1,948 bytes../../../remember-cli.mjsruns1,948 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# career-ops: open-source AI job search agent
career-ops is a multi-CLI AI job search agent. The routing below is shared across supported agent CLIs even when the invocation surface differs.
## Project Root Resolution
Before reading any repo-relative path, derive `PROJECT_ROOT` from this loaded `SKILL.md`: start at the skill file's directory and walk upward until the nearest directory containing both `AGENTS.md` and `modes/`. This is required even when the checkout itself is nested (for example `Development\\career-ops`) or the command starts from a subdirectory. If those two sentinels cannot be found, career-ops itself is not installed next to this skill: follow **Skill installed without career-ops** below before reading or writing any file. Then derive `DATA_ROOT`, where the user's own files live, with the precedence `path-resolver.mjs` uses: `CAREER_OPS_ROOT` or `CAREER_OPS_DATA_DIR` if either is set; otherwise the path written in `PROJECT_ROOT/.career-ops-data` if that file exists and is not empty; otherwise `~/career-ops-data` when `PROJECT_ROOT` is a Claude Code plugin install copy (inside `~/.claude/plugins/cache/`, `marketplaces/` or `synced/`); otherwise `PROJECT_ROOT` itself. A relative value in either place resolves against `PROJECT_ROOT`. Run from `PROJECT_ROOT`, `node -e "import('./path-resolver.mjs').then(m => console.log(m.getCareerOpsRoot()))"` prints the same directory. In a checkout with no override, the two roots are one directory. A plugin install copy never shares its directory with `DATA_ROOT`.
Resolve every path in this router against one of these two roots, never against the process's current working directory. User Layer paths resolve against `DATA_ROOT`. They include `cv.md`, `article-digest.md`, `portals.yml`, `config/` (except the shipped `*.example.*` files), `data/`, `reports/`, `output/`, `interview-prep/`, `modes/_profile.md`, `modes/_custom.md`, `modes/_brief.md`, `batch/tracker-additions/`, and every other User Layer path in `DATA_CONTRACT.md`. Everything else (the other `modes/` files, scripts, templates, the `config/*.example.*` files) resolves against `PROJECT_ROOT`.
### Skill installed without career-ops
A skills catalog, or the career-ops plugin from a plugin directory (Claude or OpenAI), installs only this `SKILL.md`. The modes, scripts and `AGENTS.md` it routes to live in the career-ops repository, so no mode can run until career-ops is installed. Never improvise a mode from this file alone: an evaluation without the repo's modes and the user's CV is not a career-ops evaluation.
View the complete source on GitHubcareer-ops
When your agent uses it
Open-source AI job search agent -- evaluate offers, generate CVs, scan portals, track applications. Use when the user pastes a job URL or JD, asks to scan portals, generate a CV/PDF, track applications, prepare for interviews, draft outreach/emails, or run any career-ops mode.
What it loads into context
Frontmatter
205 tokensAlways available to the agent
SKILL.md
5,474 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Project Root Resolution
- Invocation Notes
- Mode Routing
- Output Language Directive
- Session Title (host-optional, #5303)
- Discovery Mode (no arguments)
- Context Loading by Mode
Scripts executed separately
../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../remember-cli.mjs../../../remember-cli.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../verify-portals.mjs../../../verify-portals.mjs../../../verify-portals.mjs
Files
SKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../remember-cli.mjsruns1,948 bytes../../../remember-cli.mjsruns1,948 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# career-ops: open-source AI job search agent
career-ops is a multi-CLI AI job search agent. The routing below is shared across supported agent CLIs even when the invocation surface differs.
## Project Root Resolution
Before reading any repo-relative path, derive `PROJECT_ROOT` from this loaded `SKILL.md`: start at the skill file's directory and walk upward until the nearest directory containing both `AGENTS.md` and `modes/`. This is required even when the checkout itself is nested (for example `Development\\career-ops`) or the command starts from a subdirectory. If those two sentinels cannot be found, career-ops itself is not installed next to this skill: follow **Skill installed without career-ops** below before reading or writing any file. Then derive `DATA_ROOT`, where the user's own files live, with the precedence `path-resolver.mjs` uses: `CAREER_OPS_ROOT` or `CAREER_OPS_DATA_DIR` if either is set; otherwise the path written in `PROJECT_ROOT/.career-ops-data` if that file exists and is not empty; otherwise `~/career-ops-data` when `PROJECT_ROOT` is a Claude Code plugin install copy (inside `~/.claude/plugins/cache/`, `marketplaces/` or `synced/`); otherwise `PROJECT_ROOT` itself. A relative value in either place resolves against `PROJECT_ROOT`. Run from `PROJECT_ROOT`, `node -e "import('./path-resolver.mjs').then(m => console.log(m.getCareerOpsRoot()))"` prints the same directory. In a checkout with no override, the two roots are one directory. A plugin install copy never shares its directory with `DATA_ROOT`.
Resolve every path in this router against one of these two roots, never against the process's current working directory. User Layer paths resolve against `DATA_ROOT`. They include `cv.md`, `article-digest.md`, `portals.yml`, `config/` (except the shipped `*.example.*` files), `data/`, `reports/`, `output/`, `interview-prep/`, `modes/_profile.md`, `modes/_custom.md`, `modes/_brief.md`, `batch/tracker-additions/`, and every other User Layer path in `DATA_CONTRACT.md`. Everything else (the other `modes/` files, scripts, templates, the `config/*.example.*` files) resolves against `PROJECT_ROOT`.
### Skill installed without career-ops
A skills catalog, or the career-ops plugin from a plugin directory (Claude or OpenAI), installs only this `SKILL.md`. The modes, scripts and `AGENTS.md` it routes to live in the career-ops repository, so no mode can run until career-ops is installed. Never improvise a mode from this file alone: an evaluation without the repo's modes and the user's CV is not a career-ops evaluation.
View the complete source on GitHubcareer-ops
When your agent uses it
Open-source AI job search agent -- evaluate offers, generate CVs, scan portals, track applications. Use when the user pastes a job URL or JD, asks to scan portals, generate a CV/PDF, track applications, prepare for interviews, draft outreach/emails, or run any career-ops mode.
What it loads into context
Frontmatter
205 tokensAlways available to the agent
SKILL.md
5,474 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Project Root Resolution
- Invocation Notes
- Mode Routing
- Output Language Directive
- Session Title (host-optional, #5303)
- Discovery Mode (no arguments)
- Context Loading by Mode
Scripts executed separately
../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../remember-cli.mjs../../../remember-cli.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../verify-portals.mjs../../../verify-portals.mjs../../../verify-portals.mjs
Files
SKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../remember-cli.mjsruns1,948 bytes../../../remember-cli.mjsruns1,948 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# career-ops: open-source AI job search agent
career-ops is a multi-CLI AI job search agent. The routing below is shared across supported agent CLIs even when the invocation surface differs.
## Project Root Resolution
Before reading any repo-relative path, derive `PROJECT_ROOT` from this loaded `SKILL.md`: start at the skill file's directory and walk upward until the nearest directory containing both `AGENTS.md` and `modes/`. This is required even when the checkout itself is nested (for example `Development\\career-ops`) or the command starts from a subdirectory. If those two sentinels cannot be found, career-ops itself is not installed next to this skill: follow **Skill installed without career-ops** below before reading or writing any file. Then derive `DATA_ROOT`, where the user's own files live, with the precedence `path-resolver.mjs` uses: `CAREER_OPS_ROOT` or `CAREER_OPS_DATA_DIR` if either is set; otherwise the path written in `PROJECT_ROOT/.career-ops-data` if that file exists and is not empty; otherwise `~/career-ops-data` when `PROJECT_ROOT` is a Claude Code plugin install copy (inside `~/.claude/plugins/cache/`, `marketplaces/` or `synced/`); otherwise `PROJECT_ROOT` itself. A relative value in either place resolves against `PROJECT_ROOT`. Run from `PROJECT_ROOT`, `node -e "import('./path-resolver.mjs').then(m => console.log(m.getCareerOpsRoot()))"` prints the same directory. In a checkout with no override, the two roots are one directory. A plugin install copy never shares its directory with `DATA_ROOT`.
Resolve every path in this router against one of these two roots, never against the process's current working directory. User Layer paths resolve against `DATA_ROOT`. They include `cv.md`, `article-digest.md`, `portals.yml`, `config/` (except the shipped `*.example.*` files), `data/`, `reports/`, `output/`, `interview-prep/`, `modes/_profile.md`, `modes/_custom.md`, `modes/_brief.md`, `batch/tracker-additions/`, and every other User Layer path in `DATA_CONTRACT.md`. Everything else (the other `modes/` files, scripts, templates, the `config/*.example.*` files) resolves against `PROJECT_ROOT`.
### Skill installed without career-ops
A skills catalog, or the career-ops plugin from a plugin directory (Claude or OpenAI), installs only this `SKILL.md`. The modes, scripts and `AGENTS.md` it routes to live in the career-ops repository, so no mode can run until career-ops is installed. Never improvise a mode from this file alone: an evaluation without the repo's modes and the user's CV is not a career-ops evaluation.
View the complete source on GitHubcareer-ops
When your agent uses it
Open-source AI job search agent -- evaluate offers, generate CVs, scan portals, track applications. Use when the user pastes a job URL or JD, asks to scan portals, generate a CV/PDF, track applications, prepare for interviews, draft outreach/emails, or run any career-ops mode.
What it loads into context
Frontmatter
205 tokensAlways available to the agent
SKILL.md
5,474 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Project Root Resolution
- Invocation Notes
- Mode Routing
- Output Language Directive
- Session Title (host-optional, #5303)
- Discovery Mode (no arguments)
- Context Loading by Mode
Scripts executed separately
../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../remember-cli.mjs../../../remember-cli.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../verify-portals.mjs../../../verify-portals.mjs../../../verify-portals.mjs
Files
SKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../remember-cli.mjsruns1,948 bytes../../../remember-cli.mjsruns1,948 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# career-ops: open-source AI job search agent
career-ops is a multi-CLI AI job search agent. The routing below is shared across supported agent CLIs even when the invocation surface differs.
## Project Root Resolution
Before reading any repo-relative path, derive `PROJECT_ROOT` from this loaded `SKILL.md`: start at the skill file's directory and walk upward until the nearest directory containing both `AGENTS.md` and `modes/`. This is required even when the checkout itself is nested (for example `Development\\career-ops`) or the command starts from a subdirectory. If those two sentinels cannot be found, career-ops itself is not installed next to this skill: follow **Skill installed without career-ops** below before reading or writing any file. Then derive `DATA_ROOT`, where the user's own files live, with the precedence `path-resolver.mjs` uses: `CAREER_OPS_ROOT` or `CAREER_OPS_DATA_DIR` if either is set; otherwise the path written in `PROJECT_ROOT/.career-ops-data` if that file exists and is not empty; otherwise `~/career-ops-data` when `PROJECT_ROOT` is a Claude Code plugin install copy (inside `~/.claude/plugins/cache/`, `marketplaces/` or `synced/`); otherwise `PROJECT_ROOT` itself. A relative value in either place resolves against `PROJECT_ROOT`. Run from `PROJECT_ROOT`, `node -e "import('./path-resolver.mjs').then(m => console.log(m.getCareerOpsRoot()))"` prints the same directory. In a checkout with no override, the two roots are one directory. A plugin install copy never shares its directory with `DATA_ROOT`.
Resolve every path in this router against one of these two roots, never against the process's current working directory. User Layer paths resolve against `DATA_ROOT`. They include `cv.md`, `article-digest.md`, `portals.yml`, `config/` (except the shipped `*.example.*` files), `data/`, `reports/`, `output/`, `interview-prep/`, `modes/_profile.md`, `modes/_custom.md`, `modes/_brief.md`, `batch/tracker-additions/`, and every other User Layer path in `DATA_CONTRACT.md`. Everything else (the other `modes/` files, scripts, templates, the `config/*.example.*` files) resolves against `PROJECT_ROOT`.
### Skill installed without career-ops
A skills catalog, or the career-ops plugin from a plugin directory (Claude or OpenAI), installs only this `SKILL.md`. The modes, scripts and `AGENTS.md` it routes to live in the career-ops repository, so no mode can run until career-ops is installed. Never improvise a mode from this file alone: an evaluation without the repo's modes and the user's CV is not a career-ops evaluation.
View the complete source on GitHubcareer-ops
When your agent uses it
Open-source AI job search agent -- evaluate offers, generate CVs, scan portals, track applications. Use when the user pastes a job URL or JD, asks to scan portals, generate a CV/PDF, track applications, prepare for interviews, draft outreach/emails, or run any career-ops mode.
What it loads into context
Frontmatter
205 tokensAlways available to the agent
SKILL.md
5,474 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Project Root Resolution
- Invocation Notes
- Mode Routing
- Output Language Directive
- Session Title (host-optional, #5303)
- Discovery Mode (no arguments)
- Context Loading by Mode
Scripts executed separately
../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../remember-cli.mjs../../../remember-cli.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../verify-portals.mjs../../../verify-portals.mjs../../../verify-portals.mjs
Files
SKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../remember-cli.mjsruns1,948 bytes../../../remember-cli.mjsruns1,948 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# career-ops: open-source AI job search agent
career-ops is a multi-CLI AI job search agent. The routing below is shared across supported agent CLIs even when the invocation surface differs.
## Project Root Resolution
Before reading any repo-relative path, derive `PROJECT_ROOT` from this loaded `SKILL.md`: start at the skill file's directory and walk upward until the nearest directory containing both `AGENTS.md` and `modes/`. This is required even when the checkout itself is nested (for example `Development\\career-ops`) or the command starts from a subdirectory. If those two sentinels cannot be found, career-ops itself is not installed next to this skill: follow **Skill installed without career-ops** below before reading or writing any file. Then derive `DATA_ROOT`, where the user's own files live, with the precedence `path-resolver.mjs` uses: `CAREER_OPS_ROOT` or `CAREER_OPS_DATA_DIR` if either is set; otherwise the path written in `PROJECT_ROOT/.career-ops-data` if that file exists and is not empty; otherwise `~/career-ops-data` when `PROJECT_ROOT` is a Claude Code plugin install copy (inside `~/.claude/plugins/cache/`, `marketplaces/` or `synced/`); otherwise `PROJECT_ROOT` itself. A relative value in either place resolves against `PROJECT_ROOT`. Run from `PROJECT_ROOT`, `node -e "import('./path-resolver.mjs').then(m => console.log(m.getCareerOpsRoot()))"` prints the same directory. In a checkout with no override, the two roots are one directory. A plugin install copy never shares its directory with `DATA_ROOT`.
Resolve every path in this router against one of these two roots, never against the process's current working directory. User Layer paths resolve against `DATA_ROOT`. They include `cv.md`, `article-digest.md`, `portals.yml`, `config/` (except the shipped `*.example.*` files), `data/`, `reports/`, `output/`, `interview-prep/`, `modes/_profile.md`, `modes/_custom.md`, `modes/_brief.md`, `batch/tracker-additions/`, and every other User Layer path in `DATA_CONTRACT.md`. Everything else (the other `modes/` files, scripts, templates, the `config/*.example.*` files) resolves against `PROJECT_ROOT`.
### Skill installed without career-ops
A skills catalog, or the career-ops plugin from a plugin directory (Claude or OpenAI), installs only this `SKILL.md`. The modes, scripts and `AGENTS.md` it routes to live in the career-ops repository, so no mode can run until career-ops is installed. Never improvise a mode from this file alone: an evaluation without the repo's modes and the user's CV is not a career-ops evaluation.
View the complete source on GitHubcareer-ops
When your agent uses it
Open-source AI job search agent -- evaluate offers, generate CVs, scan portals, track applications. Use when the user pastes a job URL or JD, asks to scan portals, generate a CV/PDF, track applications, prepare for interviews, draft outreach/emails, or run any career-ops mode.
What it loads into context
Frontmatter
205 tokensAlways available to the agent
SKILL.md
5,474 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Project Root Resolution
- Invocation Notes
- Mode Routing
- Output Language Directive
- Session Title (host-optional, #5303)
- Discovery Mode (no arguments)
- Context Loading by Mode
Scripts executed separately
../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../doctor.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../plugins.mjs../../../remember-cli.mjs../../../remember-cli.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../scan.mjs../../../verify-portals.mjs../../../verify-portals.mjs../../../verify-portals.mjs
Files
../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytes../../../doctor.mjsruns92,391 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytesSKILL.mdcore22,300 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../plugins.mjsruns35,298 bytes../../../remember-cli.mjsruns1,948 bytes../../../remember-cli.mjsruns1,948 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../scan.mjsruns266,922 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes../../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# career-ops: open-source AI job search agent
career-ops is a multi-CLI AI job search agent. The routing below is shared across supported agent CLIs even when the invocation surface differs.
## Project Root Resolution
Before reading any repo-relative path, derive `PROJECT_ROOT` from this loaded `SKILL.md`: start at the skill file's directory and walk upward until the nearest directory containing both `AGENTS.md` and `modes/`. This is required even when the checkout itself is nested (for example `Development\\career-ops`) or the command starts from a subdirectory. If those two sentinels cannot be found, career-ops itself is not installed next to this skill: follow **Skill installed without career-ops** below before reading or writing any file. Then derive `DATA_ROOT`, where the user's own files live, with the precedence `path-resolver.mjs` uses: `CAREER_OPS_ROOT` or `CAREER_OPS_DATA_DIR` if either is set; otherwise the path written in `PROJECT_ROOT/.career-ops-data` if that file exists and is not empty; otherwise `~/career-ops-data` when `PROJECT_ROOT` is a Claude Code plugin install copy (inside `~/.claude/plugins/cache/`, `marketplaces/` or `synced/`); otherwise `PROJECT_ROOT` itself. A relative value in either place resolves against `PROJECT_ROOT`. Run from `PROJECT_ROOT`, `node -e "import('./path-resolver.mjs').then(m => console.log(m.getCareerOpsRoot()))"` prints the same directory. In a checkout with no override, the two roots are one directory. A plugin install copy never shares its directory with `DATA_ROOT`.
Resolve every path in this router against one of these two roots, never against the process's current working directory. User Layer paths resolve against `DATA_ROOT`. They include `cv.md`, `article-digest.md`, `portals.yml`, `config/` (except the shipped `*.example.*` files), `data/`, `reports/`, `output/`, `interview-prep/`, `modes/_profile.md`, `modes/_custom.md`, `modes/_brief.md`, `batch/tracker-additions/`, and every other User Layer path in `DATA_CONTRACT.md`. Everything else (the other `modes/` files, scripts, templates, the `config/*.example.*` files) resolves against `PROJECT_ROOT`.
### Skill installed without career-ops
A skills catalog, or the career-ops plugin from a plugin directory (Claude or OpenAI), installs only this `SKILL.md`. The modes, scripts and `AGENTS.md` it routes to live in the career-ops repository, so no mode can run until career-ops is installed. Never improvise a mode from this file alone: an evaluation without the repo's modes and the user's CV is not a career-ops evaluation.
View the complete source on GitHubcareer-ops-plugin-apify
When your agent uses it
How to scan a job source through an Apify actor as a keyed provider.
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
256 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- portals.yml entry
- Then
Scripts executed separately
_apify.mjsindex.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../verify-portals.mjs../../verify-portals.mjs../../verify-portals.mjs
Files
_apify.mjsruns8,046 bytesindex.mjsruns9,385 bytesmanifest.jsonasset355 bytesskill.mdcore985 bytesskill.mdcore985 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../verify-portals.mjsruns58,406 bytes../../verify-portals.mjsruns58,406 bytes../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# apify plugin
A keyed provider: runs an Apify actor and maps its dataset items into the
scanner. It fires ONLY on a `portals.yml` entry that sets `provider: apify` —
never via auto-detection. Put `APIFY_TOKEN` in `.env`.
## portals.yml entry
```yaml
tracked_companies:
- name: "Indeed — VP Engineering (Chicago)"
provider: apify
actor: misceres/indeed-scraper
input: { position: "VP of Engineering", location: "Chicago, IL", maxItems: 25 }View the complete source on GitHubcareer-ops-plugin-gmail
When your agent uses it
How to pull job leads from a Gmail label into the career-ops pipeline.
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
237 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Command
- Setup
- Data it produces
Scripts executed separately
../../plugins.mjs../../plugins.mjs../../plugins.mjs../../plugins.mjs../../plugins.mjs../../plugins.mjs_helpers.mjsindex.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../verify-portals.mjs../../verify-portals.mjs../../verify-portals.mjs
Files
../../plugins.mjsruns35,298 bytes../../plugins.mjsruns35,298 bytes../../plugins.mjsruns35,298 bytes../../plugins.mjsruns35,298 bytes../../plugins.mjsruns35,298 bytes../../plugins.mjsruns35,298 bytes_helpers.mjsruns10,785 bytesindex.mjsruns6,997 bytesmanifest.jsonasset496 bytesskill.mdcore957 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../verify-portals.mjsruns58,406 bytes../../verify-portals.mjsruns58,406 bytes../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# gmail plugin
Reads a Gmail label, extracts clean job URLs from authentic (DMARC-passing)
emails, and returns them as leads. The engine writes them to the pipeline.
## Command
- `node plugins.mjs run gmail` — ingest new leads from the configured label.
## Setup
Put `GMAIL_CLIENT_ID` + `GMAIL_CLIENT_SECRET` + `GMAIL_REFRESH_TOKEN` in `.env`
(an OAuth Desktop client + a refresh token from the consent flow). Configure the
label + lookback in `config/plugins.yml`:View the complete source on GitHubWhen your agent uses it
What it loads into context
Frontmatter
0 tokensAlways available to the agent
SKILL.md
2,961 tokensWhen the skill is activated
Reference documents
3,049 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to run this check
- If there is no index installed
- How to call it
- Getting a token (HTTP backend only)
- How to interpret each tier
- Block G Signal #3 bullet
- Non-scoring note
- Honesty rule
Scripts executed separately
../../merge-tracker.mjs../../merge-tracker.mjs../../merge-tracker.mjs../../merge-tracker.mjs../../merge-tracker.mjs../../merge-tracker.mjs../../merge-tracker.mjs../../normalize-statuses.mjs../../normalize-statuses.mjs../../normalize-statuses.mjs../../normalize-statuses.mjscheck.mjsindex.mjsinstall-h1b-index.mjslib/api.mjslib/cache.mjslib/clean.mjslib/index.mjslib/tier.mjstoken.mjs
Files
../../merge-tracker.mjsruns132,625 bytes../../merge-tracker.mjsruns132,625 bytes../../merge-tracker.mjsruns132,625 bytes../../merge-tracker.mjsruns132,625 bytes../../merge-tracker.mjsruns132,625 bytes../../merge-tracker.mjsruns132,625 bytes../../merge-tracker.mjsruns132,625 bytes../../normalize-statuses.mjsruns11,658 bytes../../normalize-statuses.mjsruns11,658 bytes../../normalize-statuses.mjsruns11,658 bytes../../normalize-statuses.mjsruns11,658 bytesREADME.mddoc13,360 bytescheck.mjsruns14,756 bytesindex.mjsruns764 bytesinstall-h1b-index.mjsruns13,800 byteslib/api.mjsruns24,629 byteslib/cache.mjsruns3,541 byteslib/clean.mjsruns811 byteslib/index.mjsruns17,365 byteslib/tier.mjsruns2,275 bytesmanifest.jsonasset626 bytesskill.mdcore12,822 bytesskill.mdcore12,822 bytesskill.mdcore12,822 bytesskill.mdcore12,822 bytesskill.mdcore12,822 bytestoken.mjsruns7,840 bytes
Read SKILL.md
# H-1B sponsor check skill
Use this plugin during `oferta` evaluations of US roles to attach a factual sponsorship signal to Block G.
## When to run this check
Run it when any one of these is true:
- `config/profile.yml` has `location.country == "US"`.
- The JD lists a US work location, remote-US, or a US-based employing entity.
- The user asks explicitly about sponsorship for this role.
If none of those apply, skip the check silently. Do not run it on non-US roles just because the parent company is US-headquartered.
## If there is no index installedView the complete source on GitHubcareer-ops-plugin-notion
When your agent uses it
How to mirror the career-ops tracker to a Notion database and read records back as job leads.
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
289 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Commands
- Setup
- Data it produces
Scripts executed separately
../../plugins.mjs../../plugins.mjs../../plugins.mjs../../plugins.mjs../../plugins.mjs../../plugins.mjs_notion.mjsindex.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../scan.mjs../../verify-portals.mjs../../verify-portals.mjs../../verify-portals.mjs
Files
../../plugins.mjsruns35,298 bytes../../plugins.mjsruns35,298 bytes../../plugins.mjsruns35,298 bytes../../plugins.mjsruns35,298 bytes../../plugins.mjsruns35,298 bytes../../plugins.mjsruns35,298 bytes_notion.mjsruns5,772 bytesindex.mjsruns5,056 bytesmanifest.jsonasset413 bytesskill.mdcore1,209 bytesskill.mdcore1,209 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../scan.mjsruns266,922 bytes../../verify-portals.mjsruns58,406 bytes../../verify-portals.mjsruns58,406 bytes../../verify-portals.mjsruns58,406 bytes
Read SKILL.md
# notion plugin
Mirrors your application tracker to a Notion database (export) and reads records
back into the pipeline (search). `data/applications.md` stays the source of
truth — Notion is an additive mirror.
## Commands
- `node plugins.mjs run notion export` — push each tracker row (company / role /
status / score) to the "Applications" database under your Career Ops page.
Add `--dry-run` to preview without writing.
- `node plugins.mjs run notion search "<query>"` — return Notion records that
carry a job URL, matching the query, and append them to the pipeline.
View the complete source on GitHubSkills included
- career-ops
- career-ops
- career-ops
- career-ops
- career-ops
- career-ops
- career-ops
- career-ops
- career-ops
- career-ops-plugin-apify
- career-ops-plugin-gmail
- career-ops-plugin-notion
Repository facts
- License
- MIT
- Created
- Apr 4, 2026
- Last pushed
- Nov 6, 2026
- Forks
- 14,810
- Open issues
- 269
- Project activity
- Active
Rank over the last 12 weeks
Now #20 · best #20 · up 2 in 30 days
- #20 from Aug 23 to Sep 27
- #21 from Sep 28 to Sep 30
- #22 from Oct 1 to Oct 13
- #21 from Oct 14 to Oct 24
- #23 on Oct 25
- #20 since Oct 28
2 earlier periods
- #22 on Aug 2
- #21 from Aug 7 to Aug 22
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 381 notes
.antigravitycli/skills/career-ops/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed.antigravitycli/skills/career-ops/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed.antigravitycli/skills/career-ops/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed.claude-plugin/marketplace.json:1Analysis incomplete: Referenced executable target unavailable; not analyzed.claude-plugin/marketplace.json:1Analysis incomplete: Referenced executable target unavailable; not analyzed.claude-plugin/plugin.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedclaude-directory/.claude-plugin/plugin.json:1Analysis incomplete: Referenced executable target unavailable; not analyzeddoctor.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzeddoctor.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzeddoctor.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzeddoctor.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzeddoctor.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzeddoctor.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzeddoctor.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzeddoctor.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzeddoctor.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzeddoctor.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzedhooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins.mjs:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 18 dangerous shell commandsin 1 file: doctor.mjs:351
- 610 network referencesin 29 files: scan.mjs:8 verify-portals.mjs:119 doctor.mjs:1705 and 26 more
- No hidden or obfuscated text
- No instruction overrides
- 413 executable scriptsin 22 files: scan.mjs:1 doctor.mjs:1 plugins.mjs:1 and 19 more
- 232 references to secretsin 17 files: doctor.mjs:126 scan.mjs:95 plugins.mjs:256 and 14 more
- No requests to vote in Hot
Show all 1,273 signals by file
.agents/skills/career-ops/SKILL.md
- Network accessline 25
1. Look for an existing install before offering a new one: the directory in `CAREER_OPS_ROOT` if it is set, then `./career-ops`, then `~/career-ops`. The first one that contains both `AGENTS.md` and `modes/` is `PROJECT_ROOT`; tell the user - Network accessline 26
2. If there is none, tell the user in a few lines that career-ops runs from its own folder, and offer to set it up with `npx @santifer/career-ops@1.39.0 init`. It needs Node.js, downloads the latest release from https://github.com/career-op - Network accessline 47
Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
.antigravitycli/skills/career-ops/SKILL.md
- Network accessline 25
1. Look for an existing install before offering a new one: the directory in `CAREER_OPS_ROOT` if it is set, then `./career-ops`, then `~/career-ops`. The first one that contains both `AGENTS.md` and `modes/` is `PROJECT_ROOT`; tell the user - Network accessline 26
2. If there is none, tell the user in a few lines that career-ops runs from its own folder, and offer to set it up with `npx @santifer/career-ops@1.39.0 init`. It needs Node.js, downloads the latest release from https://github.com/career-op - Network accessline 47
Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
.claude-plugin/marketplace.json
.claude-plugin/plugin.json
- Network accessline 5
"author": { "name": "santifer", "url": "https://santifer.io" - Network accessline 6
"name": "santifer", "url": "https://santifer.io" }, - Network accessline 7
"url": "https://santifer.io" - Network accessline 8
}, "homepage": "https://career-ops.org", "repository": "https://github.com/career-ops-hq/career-ops", - Network accessline 9
"homepage": "https://career-ops.org", - Network accessline 10
"repository": "https://github.com/career-ops-hq/career-ops",
.grok/skills/career-ops/SKILL.md
- Network accessline 25
1. Look for an existing install before offering a new one: the directory in `CAREER_OPS_ROOT` if it is set, then `./career-ops`, then `~/career-ops`. The first one that contains both `AGENTS.md` and `modes/` is `PROJECT_ROOT`; tell the user - Network accessline 26
2. If there is none, tell the user in a few lines that career-ops runs from its own folder, and offer to set it up with `npx @santifer/career-ops@1.39.0 init`. It needs Node.js, downloads the latest release from https://github.com/career-op - Network accessline 47
Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
.kimi/skills/career-ops/SKILL.md
- Network accessline 25
1. Look for an existing install before offering a new one: the directory in `CAREER_OPS_ROOT` if it is set, then `./career-ops`, then `~/career-ops`. The first one that contains both `AGENTS.md` and `modes/` is `PROJECT_ROOT`; tell the user - Network accessline 26
2. If there is none, tell the user in a few lines that career-ops runs from its own folder, and offer to set it up with `npx @santifer/career-ops@1.39.0 init`. It needs Node.js, downloads the latest release from https://github.com/career-op - Network accessline 47
Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
.opencode/skills/career-ops/SKILL.md
- Network accessline 25
1. Look for an existing install before offering a new one: the directory in `CAREER_OPS_ROOT` if it is set, then `./career-ops`, then `~/career-ops`. The first one that contains both `AGENTS.md` and `modes/` is `PROJECT_ROOT`; tell the user - Network accessline 26
2. If there is none, tell the user in a few lines that career-ops runs from its own folder, and offer to set it up with `npx @santifer/career-ops@1.39.0 init`. It needs Node.js, downloads the latest release from https://github.com/career-op - Network accessline 47
Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
.qwen/skills/career-ops/SKILL.md
- Network accessline 25
1. Look for an existing install before offering a new one: the directory in `CAREER_OPS_ROOT` if it is set, then `./career-ops`, then `~/career-ops`. The first one that contains both `AGENTS.md` and `modes/` is `PROJECT_ROOT`; tell the user - Network accessline 26
2. If there is none, tell the user in a few lines that career-ops runs from its own folder, and offer to set it up with `npx @santifer/career-ops@1.39.0 init`. It needs Node.js, downloads the latest release from https://github.com/career-op - Network accessline 47
Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
antigravity-directory/skills/career-ops/SKILL.md
- Network accessline 25
1. Look for an existing install before offering a new one: the directory in `CAREER_OPS_ROOT` if it is set, then `./career-ops`, then `~/career-ops`. The first one that contains both `AGENTS.md` and `modes/` is `PROJECT_ROOT`; tell the user - Network accessline 26
2. If there is none, tell the user in a few lines that career-ops runs from its own folder, and offer to set it up with `npx @santifer/career-ops@1.39.0 init`. It needs Node.js, downloads the latest release from https://github.com/career-op - Network accessline 47
Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
claude-directory/.claude-plugin/plugin.json
- Network accessline 6
"author": { "name": "santifer", "url": "https://santifer.io" - Network accessline 7
"name": "santifer", "url": "https://santifer.io" }, - Network accessline 8
"url": "https://santifer.io" - Network accessline 9
}, "homepage": "https://career-ops.org", "repository": "https://github.com/career-ops-hq/career-ops", - Network accessline 10
"homepage": "https://career-ops.org", - Network accessline 11
"repository": "https://github.com/career-ops-hq/career-ops", - Network accessline 12
"license": "MIT", "icon": "./.claude-plugin/icon.png", "documentationUrl": "https://career-ops.org/docs", - Network accessline 13
"icon": "./.claude-plugin/icon.png", "documentationUrl": "https://career-ops.org/docs", "supportUrl": "https://github.com/career-ops-hq/career-ops/issues", - Network accessline 14
"documentationUrl": "https://career-ops.org/docs", - Network accessline 15
"supportUrl": "https://github.com/career-ops-hq/career-ops/issues", - Network accessline 16
"privacyPolicyUrl": "https://github.com/career-ops-hq/career-ops/blob/main/claude-directory/README.md#what-it-runs-sends-and-fetches",
claude-directory/skills/career-ops/SKILL.md
- Network accessline 25
1. Look for an existing install before offering a new one: the directory in `CAREER_OPS_ROOT` if it is set, then `./career-ops`, then `~/career-ops`. The first one that contains both `AGENTS.md` and `modes/` is `PROJECT_ROOT`; tell the user - Network accessline 26
2. If there is none, tell the user in a few lines that career-ops runs from its own folder, and offer to set it up with `npx @santifer/career-ops@1.39.0 init`. It needs Node.js, downloads the latest release from https://github.com/career-op - Network accessline 47
Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
cursor-directory/skills/career-ops/SKILL.md
- Network accessline 25
1. Look for an existing install before offering a new one: the directory in `CAREER_OPS_ROOT` if it is set, then `./career-ops`, then `~/career-ops`. The first one that contains both `AGENTS.md` and `modes/` is `PROJECT_ROOT`; tell the user - Network accessline 26
2. If there is none, tell the user in a few lines that career-ops runs from its own folder, and offer to set it up with `npx @santifer/career-ops@1.39.0 init`. It needs Node.js, downloads the latest release from https://github.com/career-op - Network accessline 47
Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
doctor.mjs
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Access to secretsline 201
[Credential-related source omitted] - Dangerous shell operationline 351
'git rm --cached <each path> # untrack, leaving the file on disk', - Dangerous shell operationline 351
'git rm --cached <each path> # untrack, leaving the file on disk', - Dangerous shell operationline 351
'git rm --cached <each path> # untrack, leaving the file on disk', - Dangerous shell operationline 351
'git rm --cached <each path> # untrack, leaving the file on disk', - Dangerous shell operationline 351
'git rm --cached <each path> # untrack, leaving the file on disk', - Dangerous shell operationline 351
'git rm --cached <each path> # untrack, leaving the file on disk', - Dangerous shell operationline 351
'git rm --cached <each path> # untrack, leaving the file on disk', - Dangerous shell operationline 351
'git rm --cached <each path> # untrack, leaving the file on disk', - Dangerous shell operationline 351
'git rm --cached <each path> # untrack, leaving the file on disk', - Dangerous shell operationline 487
const sudo = process.platform !== 'win32' && process.getuid?.() ? 'sudo ' : ''; - Dangerous shell operationline 487
const sudo = process.platform !== 'win32' && process.getuid?.() ? 'sudo ' : ''; - Dangerous shell operationline 487
const sudo = process.platform !== 'win32' && process.getuid?.() ? 'sudo ' : ''; - Dangerous shell operationline 487
const sudo = process.platform !== 'win32' && process.getuid?.() ? 'sudo ' : ''; - Dangerous shell operationline 487
const sudo = process.platform !== 'win32' && process.getuid?.() ? 'sudo ' : ''; - Dangerous shell operationline 487
const sudo = process.platform !== 'win32' && process.getuid?.() ? 'sudo ' : ''; - Dangerous shell operationline 487
const sudo = process.platform !== 'win32' && process.getuid?.() ? 'sudo ' : ''; - Dangerous shell operationline 487
const sudo = process.platform !== 'win32' && process.getuid?.() ? 'sudo ' : ''; - Dangerous shell operationline 487
const sudo = process.platform !== 'win32' && process.getuid?.() ? 'sudo ' : ''; - Access to secretsline 1013
[Credential-related source omitted] - Access to secretsline 1013
[Credential-related source omitted] - Access to secretsline 1013
[Credential-related source omitted] - Access to secretsline 1013
[Credential-related source omitted] - Access to secretsline 1013
[Credential-related source omitted] - Access to secretsline 1013
[Credential-related source omitted] - Access to secretsline 1013
[Credential-related source omitted] - Access to secretsline 1013
[Credential-related source omitted] - Access to secretsline 1013
[Credential-related source omitted] - Access to secretsline 1018
[Credential-related source omitted] - Access to secretsline 1018
[Credential-related source omitted] - Access to secretsline 1018
[Credential-related source omitted] - Access to secretsline 1018
[Credential-related source omitted] - Access to secretsline 1018
[Credential-related source omitted] - Access to secretsline 1018
[Credential-related source omitted] - Access to secretsline 1018
[Credential-related source omitted] - Access to secretsline 1018
[Credential-related source omitted] - Access to secretsline 1018
[Credential-related source omitted] - Access to secretsline 1090
[Credential-related source omitted] - Access to secretsline 1090
[Credential-related source omitted] - Access to secretsline 1090
[Credential-related source omitted] - Access to secretsline 1090
[Credential-related source omitted] - Access to secretsline 1090
[Credential-related source omitted] - Access to secretsline 1090
[Credential-related source omitted] - Access to secretsline 1090
[Credential-related source omitted] - Access to secretsline 1090
[Credential-related source omitted] - Access to secretsline 1090
[Credential-related source omitted] - Access to secretsline 1094
[Credential-related source omitted] - Access to secretsline 1094
[Credential-related source omitted] - Access to secretsline 1094
[Credential-related source omitted] - Access to secretsline 1094
[Credential-related source omitted] - Access to secretsline 1094
[Credential-related source omitted] - Access to secretsline 1094
[Credential-related source omitted] - Access to secretsline 1094
[Credential-related source omitted] - Access to secretsline 1094
[Credential-related source omitted] - Access to secretsline 1094
[Credential-related source omitted] - Access to secretsline 1098
[Credential-related source omitted] - Access to secretsline 1098
[Credential-related source omitted] - Access to secretsline 1098
[Credential-related source omitted] - Access to secretsline 1098
[Credential-related source omitted] - Access to secretsline 1098
[Credential-related source omitted] - Access to secretsline 1098
[Credential-related source omitted] - Access to secretsline 1098
[Credential-related source omitted] - Access to secretsline 1098
[Credential-related source omitted] - Access to secretsline 1098
[Credential-related source omitted] - Access to secretsline 1100
[Credential-related source omitted] - Access to secretsline 1100
[Credential-related source omitted] - Access to secretsline 1100
[Credential-related source omitted] - Access to secretsline 1100
[Credential-related source omitted] - Access to secretsline 1100
[Credential-related source omitted] - Access to secretsline 1100
[Credential-related source omitted] - Access to secretsline 1100
[Credential-related source omitted] - Access to secretsline 1100
[Credential-related source omitted] - Access to secretsline 1100
[Credential-related source omitted] - Access to secretsline 1262
[Credential-related source omitted] - Access to secretsline 1262
[Credential-related source omitted] - Access to secretsline 1262
[Credential-related source omitted] - Access to secretsline 1262
[Credential-related source omitted] - Access to secretsline 1262
[Credential-related source omitted] - Access to secretsline 1262
[Credential-related source omitted] - Access to secretsline 1262
[Credential-related source omitted] - Access to secretsline 1262
[Credential-related source omitted] - Access to secretsline 1262
[Credential-related source omitted] - Access to secretsline 1299
[Credential-related source omitted] - Access to secretsline 1299
[Credential-related source omitted] - Access to secretsline 1299
[Credential-related source omitted] - Access to secretsline 1299
[Credential-related source omitted] - Access to secretsline 1299
[Credential-related source omitted] - Access to secretsline 1299
[Credential-related source omitted] - Access to secretsline 1299
[Credential-related source omitted] - Access to secretsline 1299
[Credential-related source omitted] - Access to secretsline 1299
[Credential-related source omitted] - Access to secretsline 1455
[Credential-related source omitted] - Access to secretsline 1455
[Credential-related source omitted] - Access to secretsline 1455
[Credential-related source omitted] - Access to secretsline 1455
[Credential-related source omitted] - Access to secretsline 1455
[Credential-related source omitted] - Access to secretsline 1455
[Credential-related source omitted] - Access to secretsline 1455
[Credential-related source omitted] - Access to secretsline 1455
[Credential-related source omitted] - Access to secretsline 1455
[Credential-related source omitted] - Access to secretsline 1461
[Credential-related source omitted] - Access to secretsline 1461
[Credential-related source omitted] - Access to secretsline 1461
[Credential-related source omitted] - Access to secretsline 1461
[Credential-related source omitted] - Access to secretsline 1461
[Credential-related source omitted] - Access to secretsline 1461
[Credential-related source omitted] - Access to secretsline 1461
[Credential-related source omitted] - Access to secretsline 1461
[Credential-related source omitted] - Access to secretsline 1461
[Credential-related source omitted] - Access to secretsline 1649
[Credential-related source omitted] - Access to secretsline 1649
[Credential-related source omitted] - Access to secretsline 1649
[Credential-related source omitted] - Access to secretsline 1649
[Credential-related source omitted] - Access to secretsline 1649
[Credential-related source omitted] - Access to secretsline 1649
[Credential-related source omitted] - Access to secretsline 1649
[Credential-related source omitted] - Access to secretsline 1649
[Credential-related source omitted] - Access to secretsline 1649
[Credential-related source omitted] - Network accessline 1705
} console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1705
} console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1705
} console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1705
} console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1705
} console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1705
} console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1705
} console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1705
} console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1705
} console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1706
console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); console.log('Read the manifesto: `npm run manifesto` — a new way of job searching is taking shape, and you are now part of it.'); - Network accessline 1706
console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); console.log('Read the manifesto: `npm run manifesto` — a new way of job searching is taking shape, and you are now part of it.'); - Network accessline 1706
console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); console.log('Read the manifesto: `npm run manifesto` — a new way of job searching is taking shape, and you are now part of it.'); - Network accessline 1706
console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); console.log('Read the manifesto: `npm run manifesto` — a new way of job searching is taking shape, and you are now part of it.'); - Network accessline 1706
console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); console.log('Read the manifesto: `npm run manifesto` — a new way of job searching is taking shape, and you are now part of it.'); - Network accessline 1706
console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); console.log('Read the manifesto: `npm run manifesto` — a new way of job searching is taking shape, and you are now part of it.'); - Network accessline 1706
console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); console.log('Read the manifesto: `npm run manifesto` — a new way of job searching is taking shape, and you are now part of it.'); - Network accessline 1706
console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); console.log('Read the manifesto: `npm run manifesto` — a new way of job searching is taking shape, and you are now part of it.'); - Network accessline 1706
console.log(''); console.log('Join the community: https://discord.gg/8pRpHETxa4'); console.log('Read the manifesto: `npm run manifesto` — a new way of job searching is taking shape, and you are now part of it.'); - Network accessline 1707
console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1707
console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1707
console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1707
console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1707
console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1707
console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1707
console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1707
console.log('Join the community: https://discord.gg/8pRpHETxa4'); - Network accessline 1707
console.log('Join the community: https://discord.gg/8pRpHETxa4');
merge-tracker.mjs
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Network accessline 181
* UNMATCHED one silently changes what comes back: * * https://x.com/a)b → [x.com](https://x.com/a)b) → reads https://x.com/a - Network accessline 182
* * https://x.com/a)b → [x.com](https://x.com/a)b) → reads https://x.com/a * https://x.com/a(b → [x.com](https://x.com/a(b) → reads nothing at all - Network accessline 183
* https://x.com/a)b → [x.com](https://x.com/a)b) → reads https://x.com/a - Network accessline 184
* https://x.com/a(b → [x.com](https://x.com/a(b) → reads nothing at all - Network accessline 249
// The pipe rule comes BEFORE the already-linked passthrough, not after it. // An incoming value can arrive already linked — a headed TSV whose `url` // column carries `[Jobs](https://…?team=eng|ml)` — and `value` is that cell - Network accessline 250
// An incoming value can arrive already linked — a headed TSV whose `url // column carries `[Jobs](https://…?team=eng|ml)` — and `value` is that cell - Network accessline 251
// column carries `[Jobs](https://…?team=eng|ml)` — and `value` is that cell
normalize-statuses.mjs
openai-directory/skills/career-ops/SKILL.md
- Network accessline 25
1. Look for an existing install before offering a new one: the directory in `CAREER_OPS_ROOT` if it is set, then `./career-ops`, then `~/career-ops`. The first one that contains both `AGENTS.md` and `modes/` is `PROJECT_ROOT`; tell the user - Network accessline 26
2. If there is none, tell the user in a few lines that career-ops runs from its own folder, and offer to set it up with `npx @santifer/career-ops@1.39.0 init`. It needs Node.js, downloads the latest release from https://github.com/career-op - Network accessline 47
Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123
plugins.mjs
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Access to secretsline 256
[Credential-related source omitted] - Access to secretsline 256
[Credential-related source omitted] - Access to secretsline 256
[Credential-related source omitted] - Access to secretsline 256
[Credential-related source omitted] - Access to secretsline 256
[Credential-related source omitted] - Access to secretsline 256
[Credential-related source omitted] - Access to secretsline 256
[Credential-related source omitted] - Access to secretsline 256
[Credential-related source omitted] - Access to secretsline 256
[Credential-related source omitted] - Access to secretsline 256
[Credential-related source omitted] - Access to secretsline 256
[Credential-related source omitted]
plugins/apify/_apify.mjs
- Executable scriptline 1
Executable file - Network accessline 14
// Egress note: this helper keeps its own fetch (its retry / shared-deadline / - Network accessline 20
const APIFY_API_BASE = 'https://api.apify.com/v2'; - Access to secretsline 27
[Credential-related source omitted] - Network accessline 61
const timer = setTimeout(() => controller.abort(), timeoutMs); try { const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 62
try { const res = await fetch(url, { ...init, signal: controller.signal }); if (!res.ok) { - Network accessline 63
const res = await fetch(url, { ...init, signal: controller.signal }); - Network accessline 135
const timer = setTimeout(() => controller.abort(), 5_000); try { await fetch(url, { method: 'POST', headers: authHeaders(token), signal: controller.signal }); - Network accessline 136
try { await fetch(url, { method: 'POST', headers: authHeaders(token), signal: controller.signal }); } catch {} finally { - Network accessline 137
await fetch(url, { method: 'POST', headers: authHeaders(token), signal: controller.signal }); - Access to secretsline 187
[Credential-related source omitted]
plugins/apify/index.mjs
plugins/apify/manifest.json
plugins/gmail/_helpers.mjs
- Executable scriptline 1
Executable file - Network accessline 59
// token in the query string: not a posting, and not something to write into a // file. Only reachable since quoted-printable parts are decoded — before that // the URL arrived cut at the fold (`https://subscriptio=`). - Network accessline 61
// the URL arrived cut at the fold (`https://subscriptio=`).
plugins/gmail/index.mjs
- Executable scriptline 1
Executable file - Access to secretsline 18
[Credential-related source omitted] - Network accessline 28
const TOKEN_URL = 'https://oauth2.googleapis.com/token'; - Network accessline 29
const GMAIL_API = 'https://gmail.googleapis.com/gmail/v1/users/me'; - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted] - Access to secretsline 96
[Credential-related source omitted] - Access to secretsline 97
[Credential-related source omitted] - Access to secretsline 99
[Credential-related source omitted] - Network accessline 118
let url = `${GMAIL_API}/messages?q=${encodeURIComponent(query)}`; if (pageToken) url += `&pageToken=${pageToken}`; const data = await (await ctx.fetch(url, { headers: auth })).json(); - Network accessline 119
if (pageToken) url += `&pageToken=${pageToken}`; const data = await (await ctx.fetch(url, { headers: auth })).json(); if (data.messages) messages.push(...data.messages); - Network accessline 120
const data = await (await ctx.fetch(url, { headers: auth })).json(); - Network accessline 132
let msg; try { msg = await (await ctx.fetch(`${GMAIL_API}/messages/${m.id}?format=full`, { headers: auth })).json(); - Network accessline 133
try { msg = await (await ctx.fetch(`${GMAIL_API}/messages/${m.id}?format=full`, { headers: auth })).json(); } catch (err) { - Network accessline 134
msg = await (await ctx.fetch(`${GMAIL_API}/messages/${m.id}?format=full`, { headers: auth })).json();
plugins/gmail/manifest.json
- Access to secretsline 9
[Credential-related source omitted] - Network accessline 11
"skill": "skill.md", "humanInTheLoop": true, "homepage": "https://developers.google.com/gmail/api" - Network accessline 12
"humanInTheLoop": true, "homepage": "https://developers.google.com/gmail/api" } - Network accessline 13
"homepage": "https://developers.google.com/gmail/api"
plugins/gmail/skill.md
- Access to secretsline 18
[Credential-related source omitted]
plugins/h1b-sponsor/README.md
- Network accessline 140
export H1B_API_BASE=https://api.surakshith.com/immigration/v1 - Network accessline 143
The dataset is public DOL disclosure data and the worker that serves it is open source at https://github.com/msampath/h1b-sponsor-data, so a private instance answers the same questions from the same source. `api.surakshith.com` is operated - Network accessline 151
- The URL must be https. Loopback (`http://localhost:8787/...`) is allowed so you can develop against a local worker. - The redirect guard follows whatever you configure: a response that redirects off your configured host is refused, so a p - Network accessline 173
Data comes from public US Department of Labor disclosure files (LCA, PERM), published at https://www.dol.gov/agencies/eta/foreign-labor/performance. The plugin does not scrape private data and does not store any personally identifying infor
plugins/h1b-sponsor/check.mjs
plugins/h1b-sponsor/index.mjs
- Executable scriptline 1
Executable file
plugins/h1b-sponsor/install-h1b-index.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 48
const RELEASE_ORIGINS = [ 'https://github.com', - Network accessline 49
'https://github.com', - Network accessline 50
'https://objects.githubusercontent.com', - Network accessline 51
'https://release-assets.githubusercontent.com', - Network accessline 74
function assetUrl(tag, name) { return `https://github.com/${REPO}/releases/download/${encodeURIComponent(tag)}/${encodeURIComponent(name)}`; - Network accessline 75
return `https://github.com/${REPO}/releases/download/${encodeURIComponent(tag)}/${encodeURIComponent(name)}`;
plugins/h1b-sponsor/lib/api.mjs
- Executable scriptline 1
Executable file - Network accessline 6
const DEFAULT_BASE = 'https://api.surakshith.com/immigration/v1'; - Access to secretsline 37
[Credential-related source omitted] - Network accessline 138
let requestUrl = url; for (let hop = 0; ; hop++) { const res = await fetch(requestUrl, { method, headers, body, signal: controller.signal, redirect: 'manual' }); - Network accessline 139
for (let hop = 0; ; hop++) { const res = await fetch(requestUrl, { method, headers, body, signal: controller.signal, redirect: 'manual' }); if (res.status < 300 || res.status > 399) { - Network accessline 140
const res = await fetch(requestUrl, { method, headers, body, signal: controller.signal, redirect: 'manual' });
plugins/h1b-sponsor/lib/cache.mjs
- Executable scriptline 1
Executable file
plugins/h1b-sponsor/lib/clean.mjs
- Executable scriptline 1
Executable file
plugins/h1b-sponsor/lib/index.mjs
- Executable scriptline 1
Executable file
plugins/h1b-sponsor/lib/tier.mjs
- Executable scriptline 1
Executable file
plugins/h1b-sponsor/manifest.json
- Network accessline 5
"description": "US DOL H-1B/PERM sponsorship history per employer, answered from a local index; set H1B_API_BASE to use an HTTP endpoint instead", "version": "0.2.0", "homepage": "https://github.com/msampath/h1b-sponsor-data", - Network accessline 6
"version": "0.2.0", "homepage": "https://github.com/msampath/h1b-sponsor-data", "humanInTheLoop": true, - Network accessline 7
"homepage": "https://github.com/msampath/h1b-sponsor-data",
plugins/h1b-sponsor/skill.md
- Access to secretsline 63
[Credential-related source omitted]
plugins/h1b-sponsor/token.mjs
plugins/notion/_notion.mjs
- Executable scriptline 1
Executable file - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Network accessline 73
const r = await fetchFn(`https://api.notion.com/v1/${path}`, { method, headers: HEADERS, body: body ? JSON.stringify(body) : undefined }); - Access to secretsline 88
[Credential-related source omitted]
plugins/notion/index.mjs
plugins/notion/manifest.json
- Access to secretsline 8
[Credential-related source omitted] - Network accessline 10
"skill": "skill.md", "humanInTheLoop": true, "homepage": "https://developers.notion.com" - Network accessline 11
"humanInTheLoop": true, "homepage": "https://developers.notion.com" } - Network accessline 12
"homepage": "https://developers.notion.com"
plugins/notion/skill.md
- Access to secretsline 25
[Credential-related source omitted]
remember-cli.mjs
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted]
scan.mjs
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 8
* - id: string — matched against `provider:` in portals.yml * - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 9
* - detect(entry): {url}|null — optional auto-detection from careers_url * - fetch(entry, ctx): [{title,url,company,location}] — required * - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Network accessline 10
* - fetch(entry, ctx): [{title,url,company,location}] — required - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Access to secretsline 118
[Credential-related source omitted] - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1485
function resolveSearchHref(href) { try { const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1486
try { const u = new URL(href, 'https://duckduckgo.com'); const isDdgHost = u.hostname === 'duckduckgo.com' || u.hostname.endsWith('.duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1487
const u = new URL(href, 'https://duckduckgo.com'); - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1530
try { await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1531
await page.goto( `https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, { waitUntil: 'domcontentloaded', timeout: REDISCOVER_TIMEOUT_MS }, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 1532
`https://html.duckduckgo.com/html/?q=${encodeURIComponent(query)}`, - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4722
let jobs; try { jobs = await provider.fetch(company, ctx); - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4723
try { jobs = await provider.fetch(company, ctx); } catch (parserErr) { - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4724
jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4730
sourceName = `${provider.id}-api`; ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4731
ctx.idCache = idCaches.forProvider(provider.id); jobs = await provider.fetch(company, ctx); errors.push({ - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4732
jobs = await provider.fetch(company, ctx); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4737
} if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4738
if (!Array.isArray(jobs)) { throw new Error(`${provider.id}: fetch() did not return an array`); } - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 4739
throw new Error(`${provider.id}: fetch() did not return an array`); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5454
console.log(`\n${pipelineRunHint()}`); console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5455
console.log('→ Share results and get help: https://discord.gg/8pRpHETxa4'); - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5501
|| parseInt(process.env.VTE_VERSION || '0', 10) >= 5000; const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5502
const link = osc8 ? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' : 'career-ops.org/manifesto?utm_source=cli'; - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\' - Network accessline 5503
? '\x1b]8;;https://career-ops.org/manifesto?utm_source=cli\x1b\\career-ops.org/manifesto\x1b]8;;\x1b\\'
verify-portals.mjs
- Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env node - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
Executable file; content unavailable - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 119
greenhouse: { probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 120
probeUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, jobCount: (json) => (Array.isArray(json?.jobs) ? json.jobs.length : null), - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 121
`https://boards-api.greenhouse.io/v1/boards/${slug}/jobs`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 126
ownerUrl: (slug) => `https://boards-api.greenhouse.io/v1/boards/${slug}`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 130
ashby: { probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 131
probeUrl: (slug) => `https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, timeoutMs: ASHBY_TIMEOUT_MS, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 132
`https://api.ashbyhq.com/posting-api/job-board/${slug}?includeCompensation=true`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 138
ownerUrl: (slug) => `https://jobs.ashbyhq.com/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 145
probeUrl: (slug, { eu = false } = {}) => `https://api.${eu ? 'eu.' : ''}lever.co/v0/postings/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 146
timeoutMs: LEVER_TIMEOUT_MS, jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 147
jobCount: (json) => (Array.isArray(json) ? json.length : null), ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, ownerKind: 'html', - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 148
ownerUrl: (slug, { eu = false } = {}) => `https://jobs.${eu ? 'eu.' : ''}lever.co/${slug}`, - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 167
// providers/lever.mjs's resolveApiUrl) instead of matching the hostname as a // loose substring anywhere in the URL — otherwise a crafted // https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 169
// https://evil.com/jobs.lever.co/x careers_url would falsely resolve as Lever. - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 804
const { ctx, wasTripped } = boundedProbeCtx(baseCtx); try { const jobs = await provider.fetch(entry, ctx); - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 805
try { const jobs = await provider.fetch(entry, ctx); const count = Array.isArray(jobs) ? jobs.length : 0; - Network accessline 806
const jobs = await provider.fetch(entry, ctx); - Network accessline 806
const jobs = await provider.fetch(entry, ctx); - Network accessline 806
const jobs = await provider.fetch(entry, ctx); - Network accessline 806
const jobs = await provider.fetch(entry, ctx); - Network accessline 806
const jobs = await provider.fetch(entry, ctx); - Network accessline 806
const jobs = await provider.fetch(entry, ctx); - Network accessline 806
const jobs = await provider.fetch(entry, ctx); - Network accessline 806
const jobs = await provider.fetch(entry, ctx); - Network accessline 806
const jobs = await provider.fetch(entry, ctx); - Network accessline 806
const jobs = await provider.fetch(entry, ctx); - Network accessline 806
const jobs = await provider.fetch(entry, ctx); - Network accessline 806
const jobs = await provider.fetch(entry, ctx);
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 8 facts
- Contacts discord.gg, which SKILL.md, the README and the plugin manifest do not mentiondoctor.mjs:1707High confidence
- Contacts api.apify.com, which SKILL.md, the README and the plugin manifest do not mentionapify/_apify.mjs:20High confidence
- Contacts oauth2.googleapis.com, which SKILL.md, the README and the plugin manifest do not mentiongmail/index.mjs:28High confidence
- Contacts gmail.googleapis.com, which SKILL.md, the README and the plugin manifest do not mentiongmail/index.mjs:29High confidence
- Contacts objects.githubusercontent.com, which SKILL.md, the README and the plugin manifest do not mentionh1b-sponsor/install-h1b-index.mjs:50High confidence
- Contacts release-assets.githubusercontent.com, which SKILL.md, the README and the plugin manifest do not mentionh1b-sponsor/install-h1b-index.mjs:51High confidence
- Contacts api.surakshith.com, which SKILL.md, the README and the plugin manifest do not mentionh1b-sponsor/lib/api.mjs:6High confidence
- Contacts api.notion.com, which SKILL.md, the README and the plugin manifest do not mentionnotion/_notion.mjs:73High confidence
Signal confidence: 492 facts
- Network access in prose of the SKILL.md.agents/skills/career-ops/SKILL.md:25Low confidence
- Network access in prose of the SKILL.md.agents/skills/career-ops/SKILL.md:26Low confidence
- Network access in code of the SKILL.md.agents/skills/career-ops/SKILL.md:47High confidence
- Network access in prose of the SKILL.mdcareer-ops/SKILL.md:25Low confidence
- Network access in prose of the SKILL.mdcareer-ops/SKILL.md:26Low confidence
- Network access in code of the SKILL.mdcareer-ops/SKILL.md:47High confidence
- Network access in prose of the SKILL.mdcareer-ops/SKILL.md:25Low confidence
- Network access in prose of the SKILL.mdcareer-ops/SKILL.md:26Low confidence
- Network access in code of the SKILL.mdcareer-ops/SKILL.md:47High confidence
- Network access in prose of the SKILL.mdcareer-ops/SKILL.md:25Low confidence
- Network access in prose of the SKILL.mdcareer-ops/SKILL.md:26Low confidence
- Network access in code of the SKILL.mdcareer-ops/SKILL.md:47High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
- Executable script in code of a file that runsdoctor.mjs:1High confidence
and 442 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest .omp/AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md .antigravitycli/skills/career-ops/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Native | Path GEMINI.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Native | Manifest .github/copilot-instructions.md | .github/skills/<skill-name>/ |
| OpenCode | Native | Path .opencode/commands/career-ops-interview-intel.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/career-ops-hq-career-ops/)