AI-powered job search automation — evaluate offers, generate ATS-optimized CVs, scan portals, negotiate, and track applications. One config drives OpenCode, Cursor, Claude Code, and Codex. Free end-to-end via OpenCode + Geometra MCP.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 48c37bf · analyzer v33 · 3w ago
skills & prompt files 2
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 117
filesystem 86
- fs Agent-Pattern-Labs-JobForge-48c37bf/bin/create-job-forge.mjs :25
import { existsSync, mkdirSync, writeFileSync, copyFileSync, readFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/bin/geometra-mcp-launcher.mjs :4
import { appendFileSync, existsSync, mkdirSync, readFileSync } from 'node:fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/bin/job-forge.mjs :52
import { existsSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/bin/sync.mjs :23
import { existsSync, lstatSync, readlinkSync, symlinkSync, mkdirSync, readFileSync, writeFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/cv-sync-check.mjs :18
import { readFileSync, existsSync, statSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/dedup-tracker.mjs :16
import { readFileSync, writeFileSync, copyFileSync, existsSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/generate-pdf.mjs :16
import { existsSync, mkdirSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/archive-claims.mjs :1
import { constants, copyFileSync, existsSync, unlinkSync } from 'node:fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/batch-artifact.mjs :1
import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/batch-lock.mjs :2
import { mkdir, readFile, rm, writeFile } from 'node:fs/promises'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/canonical-states.mjs :19
import { readFileSync, existsSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-cache.mjs :1
import { existsSync } from 'fs';
show 28 more
- fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-canon.mjs :1
import { readFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-capabilities.mjs :1
import { existsSync, readFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-context.mjs :1
import { existsSync, readFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-contracts.mjs :1
import { existsSync, readFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-facts.mjs :1
import { existsSync, readFileSync, writeFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-index.mjs :1
import { existsSync, readFileSync, writeFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-ledger.mjs :1
import { existsSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-lineage.mjs :1
import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-migrate.mjs :1
import { existsSync, readFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-observability.mjs :2
import { existsSync, mkdtempSync, readdirSync, rmSync, statSync } from 'node:fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-postflight.mjs :1
import { readFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-preflight.mjs :1
import { readFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-prioritize.mjs :1
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-redact.mjs :1
import { existsSync, readFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-score.mjs :1
import { readFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-timeline.mjs :1
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/pdf-font-assets.mjs :1
import { readFile, realpath, stat } from 'node:fs/promises'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/portal-diversity.mjs :1
import { existsSync, readFileSync } from 'node:fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/lib/report-number.mjs :1
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/merge-tracker.mjs :27
} from 'fs'; - fs Agent-Pattern-Labs-JobForge-48c37bf/normalize-statuses.mjs :18
import { readFileSync, writeFileSync, copyFileSync, existsSync } from 'fs'; - fs (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/add-tags.mjs :16
import { readFileSync, writeFileSync } from "node:fs"; - fs (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/apply-queue.mjs :12
import { createWriteStream, existsSync } from 'node:fs'; - fs (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/apply-worker-guard.mjs :14
} from 'node:fs'; - fs (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/apply-worker-mcp.mjs :8
} from 'node:fs'; - fs (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/balance-scan-results.mjs :13
import { existsSync, readFileSync } from 'node:fs'; - fs (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/batch-orchestrator.mjs :16
import { existsSync } from 'node:fs'; - fs (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/build-client-skills.mjs :3
import { mkdir, readFile, writeFile } from 'node:fs/promises';
46 more not shown — this panel samples each group; the count above is the real total.
shell / exec 23
- shell Agent-Pattern-Labs-JobForge-48c37bf/bin/geometra-mcp-launcher.mjs :3
import { spawn } from 'node:child_process'; - shell Agent-Pattern-Labs-JobForge-48c37bf/bin/job-forge.mjs :49
import { spawnSync } from 'child_process'; - shell Agent-Pattern-Labs-JobForge-48c37bf/lib/jobforge-observability.mjs :1
import { spawnSync } from 'node:child_process'; - shell Agent-Pattern-Labs-JobForge-48c37bf/merge-tracker.mjs :496
const { execSync } = await import('child_process'); - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/apply-queue.mjs :10
import { spawn, spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/apply-worker-mcp.mjs :3
import { spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/batch-orchestrator.mjs :14
import { spawn, spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/receipts.mjs :3
import { spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/session-report.mjs :21
import { execSync } from 'child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/token-usage-report.mjs :16
import { execSync } from 'child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/trace.mjs :3
import { spawnSync } from 'child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/apply-queue.test.mjs :2
import { spawn, spawnSync } from 'node:child_process';
show 11 more
- shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/apply-worker-guard.test.mjs :2
import { spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/apply-worker-mcp.test.mjs :2
import { spawn, spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/batch-report-number.test.mjs :13
import { spawn, spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/client-skills.test.mjs :6
import { spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/diversity-cli.test.mjs :6
import { spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/geometra-release-chain.test.mjs :2
import { spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/merge-tracker-number-collision.test.mjs :5
import { spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/next-num.test.mjs :5
import { spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/portal-diversity.test.mjs :5
import { spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/tracker-pipe-roundtrip.test.mjs :6
import { spawnSync } from 'node:child_process'; - shell (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/tracker-role-identity.test.mjs :5
import { spawnSync } from 'node:child_process';
network 5
- net (weak) Agent-Pattern-Labs-JobForge-48c37bf/scripts/verify-greenhouse-urls.mjs :69
const res = await fetch(entry.url, { - net (weak) Agent-Pattern-Labs-JobForge-48c37bf/test-support/fixtures/loopback-mcp.mjs :6
import { createServer } from 'node:net'; - net (weak) Agent-Pattern-Labs-JobForge-48c37bf/test-support/fixtures/responses-jobforge-read-mock.mjs :6
import { createServer } from 'node:http'; - net (weak) Agent-Pattern-Labs-JobForge-48c37bf/test-support/fixtures/responses-mock.mjs :6
import { createServer } from 'node:http'; - net (weak) Agent-Pattern-Labs-JobForge-48c37bf/test/apply-worker-guard.test.mjs :275
'node -e "fetch(\'https://jobs.example.test/1\')"',
install hooks 2
- prepack Agent-Pattern-Labs-JobForge-48c37bf/package.json :135
npm run build:config - postinstall Agent-Pattern-Labs-JobForge-48c37bf/package.json :137
node bin/sync.mjs
declared dependencies 52
- @modelcontextprotocol/sdk@1.29.0
- @agent-pattern-labs/iso-cache@^0.1.2
- @agent-pattern-labs/iso-canon@^0.1.1
- @agent-pattern-labs/iso-capabilities@^0.1.1
- @agent-pattern-labs/iso-context@^0.1.2
- @agent-pattern-labs/iso-contract@^0.1.2
- @agent-pattern-labs/iso-facts@^0.1.2
- @agent-pattern-labs/iso-guard@^0.1.2
- @agent-pattern-labs/iso-index@^0.1.2
- @agent-pattern-labs/iso-ledger@^0.1.1
- @agent-pattern-labs/iso-lineage@^0.1.2
- @agent-pattern-labs/iso-migrate@^0.1.2
show 28 more
- @agent-pattern-labs/iso-orchestrator@^0.2.2
- @agent-pattern-labs/iso-postflight@^0.1.2
- @agent-pattern-labs/iso-preflight@^0.1.2
- @agent-pattern-labs/iso-prioritize@^0.1.2
- @agent-pattern-labs/iso-receipts@^0.1.1
- @agent-pattern-labs/iso-redact@^0.1.1
- @agent-pattern-labs/iso-score@^0.1.2
- @agent-pattern-labs/iso-timeline@^0.1.2
- @agent-pattern-labs/iso-trace@^0.5.2
- @geometra/mcp@1.65.8
- @razroo/gmail-mcp@1.8.1
- playwright@1.61.1
- zod@4.4.3
- @agent-pattern-labs/agentmd@^0.3.2
- @agent-pattern-labs/iso@^0.3.2
- @agent-pattern-labs/iso-eval@^0.4.2
- @agent-pattern-labs/iso-harness@^0.8.2
- @agent-pattern-labs/iso-route@^0.6.2
- github.com/charmbracelet/bubbletea@v1.3.10
- github.com/charmbracelet/lipgloss@v1.1.0
- github.com/aymanbagabas/go-osc52/v2@v2.0.1
- github.com/charmbracelet/colorprofile@v0.4.1
- github.com/charmbracelet/x/ansi@v0.11.5
- github.com/charmbracelet/x/cellbuf@v0.0.15
- github.com/charmbracelet/x/term@v0.2.2
- github.com/clipperhouse/displaywidth@v0.9.0
- github.com/clipperhouse/stringish@v0.1.1
- github.com/clipperhouse/uax29/v2@v2.5.0
12 more not shown — this panel samples each group; the count above is the real total.