Local-first job search workspace: sourcing, scoring, case tracking, applications and interview prep.
  • Python 98%
  • Shell 2%
Find a file
Kjell Tore Guttormsen 41854ae01a docs(m1): record three probe findings outside the four gated bullets
Recorded here rather than as extra bullets: the four are gated on a count of
exactly four and Step 31 adds a fifth, so a sixth would break the Verify.
Checked both ways -- the live file still counts 0, a fully answered copy still
counts exactly 4.

O1. Host-side MCP reaches a cloud session through localMcpBridge. research/03
    dimension 4 quoted Anthropic saying local MCP servers do not run in cloud
    sessions, and flagged as unverified whether they still spawn on this Mac.
    They do: main.log records Connecting / negotiated 2025-11-25 / Connected
    (1 tools) / announcing, and ps shows the server as a child of Claude.app on
    the host Python 3.14. The session addresses it as
    mcp__remote-devices__plugin_jobbsok-probe_probe-tools__probe_ping. So
    "host-side server" and "cloud session" are not exclusive here.

O2. Sandbox and host are two different interpreters: 3.11.15 [GCC 13.3.0] Linux
    inside, 3.14.0 macOS outside, with CLAUDE_PLUGIN_ROOT resolving under
    /root/.claude/plugins/synced/. That is also what answers the session-mode
    question -- measured from the paths, not read off a settings screen. It
    matters for M3: guard_ingest.py cannot import the guard in the sandbox, so
    it belongs on the host side of the bridge that O1 shows is reachable.

O3. Cowork's built-in browser rendered a Finn job ad in full, with the operator
    logged in after signing in by hand inside that browser. That is the brief's
    invariant by a shorter route -- no credential handling, manual auth, an
    already-authenticated browser. It raises an M3 question about what
    Playwright over CDP still adds; the question is recorded, not decided.
    Two limits are stated rather than glossed: login persistence across
    sessions was not measured, and the built-in browser leaves no host-side
    trace, so unlike O1 and O2 the operator's observation is the only
    instrument.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 19:02:06 +02:00
.claude-plugin feat: initial commit — plugin manifest and build brief 2026-09-03 20:27:23 +02:00
docs docs(m1): record three probe findings outside the four gated bullets 2026-09-04 19:02:06 +02:00
scripts fix(m1): correct two wrong queries in the Cowork probe check 2026-09-04 18:51:45 +02:00
tests feat(m1): add pinned workspace root and ASCII slug helpers 2026-09-04 17:29:52 +02:00
.gitignore chore: gitignore .claude/projects (local-only on public remote); brief validated 2026-09-03 21:17:47 +02:00
CHANGELOG.md feat: initial commit — plugin manifest and build brief 2026-09-03 20:27:23 +02:00
CLAUDE.md feat: initial commit — plugin manifest and build brief 2026-09-03 20:27:23 +02:00
LICENSE feat: initial commit — plugin manifest and build brief 2026-09-03 20:27:23 +02:00
pyproject.toml build(m1): pin toolchain and guard v1.3.0 in pyproject 2026-09-04 17:26:20 +02:00
README.md feat: initial commit — plugin manifest and build brief 2026-09-03 20:27:23 +02:00

jobbsok

Local-first job search workspace: sourcing, scoring, case tracking, applications and interview prep.

A read-only job search operating system for one person searching for their own job. It reads listings the operator is already looking at, scores them against a maintained candidate profile, records every accept/reject decision with a reason, keeps each case's full correspondence in one folder, drafts applications as files, and flags threads that have gone silent. It never submits, never sends, never stores a credential.

Solo-maintained, fork-and-own. This plugin is a starting point, not a vendor product. Issues are welcome as signals; pull requests are not accepted.

AI-generated: all code produced by Claude Code through dialog-driven development.

Version Platform License

Status: pre-release. Nothing is built yet beyond the manifest; the build brief in docs/build-brief.md is the contract, and milestones ship in order (M1–M6).

Install

Not installable yet. When released, the plugin is pinned by tag in the ktg-plugin-marketplace catalog:

claude plugin marketplace add https://git.fromaitochitta.com/open/ktg-plugin-marketplace.git
claude plugin install jobbsok@ktg-plugin-marketplace

Non-goals

Submitting applications. Sending email. Any write to Finn.no or LinkedIn. Credential storage. Background jobs. Multi-user support. Recruiter-side features. Bulk listing harvest.

Changelog

See CHANGELOG.md.

License

MIT — see LICENSE.