thedandano/callback
v1.8.0MIT
Job application MCP workflows for profile onboarding, resume tailoring, lead scanning, and application review.
Changelog
Unreleased
Features
required_anyOR-groups + atomic keyword extraction — disjunctive requirements ("one or more of A, B, C") now score as a single required unit matched if any member matches; unmatched groups surface asscore_gap.required_missing_any.preferred_anyOR-groups — the same primitive on the preferred side: disjunctions in a nice-to-have section score as a single preferred unit at preferred weight; unmatched groups surface asscore_gap.preferred_missing_any.
Miscellaneous
- chore: remove deprecated go-apply bridge (
bridge.py) and its tests — the module was wired into nothing at runtime.
Important Upgrade Note
- Existing users must re-run
onboard_userafter upgrading to the HTML renderer + extractor fixes. Oldersections.jsonfiles may contain corrupted contact fields (for example duplicated email or incorrect location). - A host that emits
required_anyorpreferred_anyagainst an OLD callback server is silently degraded:dataclass_wizarddrops the unknown key, so the group is ignored (not matched, not reported). Upgrade the server before relying on either.
1.8.0 (2026-10-03)
Features
1.7.0 (2026-10-02)
Features
Documentation
1.6.1 (2026-09-27)
Bug Fixes
1.6.0 (2026-09-27)
Features
- callback owns its settings file, stop writing host MCP configs (#105) (0751554)
- honor XDG_STATE_HOME; move session DBs and log to state dir (#107) (29804f5)
- support installation as a Hermes Agent portable plugin (#103) (1ff47c0)
Bug Fixes
- JSON archive follows output_dir the same as the PDF (#106) (55c6e5a)
- make skills host-neutral (paths, ledger, time zone) (#104) (6b4ea4d)
1.5.0 (2026-09-25)
Features
- eval tooling, curly-quote scoring fix, and CI cleanup (M6) (#101) (839eefa)
- evals: add extract, tailor, and compile evals (#91) (316f5b0)
- harden the profile-onboarding trust boundary (M1) (#95) (33bb284)
- make the apply and profile graphs honest (M2) (#96) (551ff78)
- profile wiki story pages are the source of truth (OKF frontmatter, M2.5) (#99) (81b4417)
- replace the fetcher with Playwright + trafilatura (M3) (#97) (716c966)
- shed weight — 11 runtime deps, paths.py owns data directory (M4) (#98) (e5454d3)
Bug Fixes
1.4.1 (2026-08-25)
Bug Fixes
- plugin: drop command wrappers that duplicate skill registrations (80e2c92)
1.4.0 (2026-08-23)
Features
- skill: merge auto-job-apply role tables into one scored summary table (d49c7e1)
Bug Fixes
- skill: address PR review on the auto-job-apply summary table (b60fe09)
- skill: key remaining summary rules on condition, not label (945642b)
- skill: widen Roles scope and details eligibility (d99cfb5)
1.3.1 (2026-08-22)
Bug Fixes
- release: bump plugin manifests with release-please (091fa85)
1.3.0 (2026-08-22)
Features
- scorer: surface required and preferred keyword coverage (3546039)
1.2.1 (2026-07-29)
Documentation
- rewrite README for new users and relicense under MIT (21f786c)
- strengthen README opening and lead with the plugin install (5397aa6)
1.2.0 (2026-07-13)
Features
- plugin: Codex marketplace install support (#63) (e90ba7c)
- plugin: Codex marketplace install support (#63) (ef00e74)
1.1.0 (2026-07-12)
Features
- apply: wire required_any OR-groups into scoring and score_gap (9d5f170)
- jd_data: add required_any OR-group schema + atomic extraction guidance (e893706)
- onboarded profile as single source of truth for job-search criteria (#59) (2771fa8)
- scorer: add preferred_any OR-groups mirroring required_any (a8795e7)
- scorer: add required_any OR-group primitive to keyword scoring (9496a71)
- skills: add hard-blocker gates and align OR-groups guidance (a646a61)
Bug Fixes
- apply: honor absent required key in _run_score to match guard (b494ce3)
Documentation
- remove deleted go-apply bridge from architecture diagram (e85fbd9)
1.0.0 (2026-06-26)
⚠ BREAKING CHANGES
- composite weights and ExperienceFit semantics changed.
- CLI is now
callback, env vars use the CALLBACK_ prefix, the import package iscallback, and state lives under ~/.local/share/callback/.
Features
- add before/after scores to report, surface finalized_at in state (150dd28)
- add LangSmith observability with thread grouping and redacted I/O (297588d)
- add project-local pi-apply logs (5ca2301)
- cli: add install-browsers, uninstall (--purge), and update commands (ceccae0)
- cross-harness plugin (manifests, setup-plugin, uvx self-bootstrap) (aba59f6)
- epic3-m1: deps + models (CreatedStory, CompiledProfile, OrphanedSkill) (f4eb5d8)
- epic3-m2: resume repository (save, get, list — XDG-aware) (622898f)
- epic3-m3: accomplishments repository (AccomplishmentsStore, atomic JSON) (0477e75)
- extract_sections — SectionMap output from resume text (M3) (2a72bcb)
- extractor,profile: improve PDF extraction and feed resume skills into compiler (56b1151)
- implement epic 1 packaging and ci (1e389d1)
- keyword-match refinements, report decomposition, golden determinism test (d6ba67a)
- PreferencesStore persistence for search preferences (3a2d583)
- profile preferences wiring + init skill; de-PII job-search skills (7cb7918)
- profile: add ProfileCompiler with three-tier skill union and coverage lint (42b830c)
- profile: M5 WikiRenderer — experience pages and index (9644480)
- profile: M6 wire profile nodes to real stores (0c956d1)
- profile: M6 wire profile nodes to real stores + update graph tests (7162b7e)
- profile: M7 rewrite profile MCP tools to use real graph + nodes (93b3a94)
- profile: M8 add compile_profile to graph interrupt_after (642104b)
- profile: M9 integration tests + smoke script update (752598c)
- rank project candidates for tailoring (da74ecb)
- rename pi-apply to callback for v1.0.0 (db850ea)
- render: switch resume PDFs to HTML (1952670)
- scoring redesign v2 — reweight to 55/15/10/10/10, years-only ExperienceFit (2804146)
- SearchPreferences domain model (e8b8b1b)
- SectionMap data model + WikiStore + get_wiki_pages tool (M1+M2) (4b73663)
- server: browser check at startup + check_update MCP tool + update notification (f7ad5ac)
- server: expose workflow diagnostics (e55d61b)
- server: remove resume_path from load_jd; add auto-discovery via registry (89510d3)
- set/get_search_preferences MCP tools (2b754ac)
- use candidate-company naming for rendered resumes (6256d40)
- wire holistic tailor end-to-end (e8c7ac4)
Bug Fixes
- cli: setup-mcp writes absolute binary path so Claude can find the server (1e77129)
- move inline imports to module-level; guard empty primary_skill (2f0cc91)
- profile: stabilize resume parsing and onboarding (bcfefcf)
- render: bundle Inter font; eliminate system font scan on first call (d717526)
- render: tolerate browser test doubles (0976633)
- stop codex project log registration (763d9ca)
- type: fix Pyright errors in test_server_profile.py (b1279cd)
Documentation
- add README with install, update, uninstall, and how-to-use (22eafed)
- clarify pi-apply architecture guidance (7d6c698)
- cross-harness plugin packaging design + plan (38aefba)
- mark Epic 2 complete, update dependency graph and next action (129e569)
- onboard-profile: clarify section grouping is job_title-driven (c68bc88)
- post-rename coherence sweep (365728d)
- reframe callback as standalone post go-apply deprecation (6d94f78)
- repoint CHANGELOG commit links to rewritten history (3bd4ec9)
- retro for v1.0.0 rename and migration (31e41fa)
- search-preferences implementation plan (fb506db)
- search-preferences subsystem design spec (9d7c2b5)
1.0.1 (2026-06-11)
Documentation
1.0.0 (2026-06-11)
⚠ BREAKING CHANGES
- CLI is now
callback, env vars use the CALLBACK_ prefix, the import package iscallback, and state lives under ~/.local/share/callback/.
Features
- rename pi-apply to callback for v1.0.0 (5807c84)
0.5.0 (2026-06-11)
Features
- add LangSmith observability with thread grouping and redacted I/O (21e90b4)
0.4.1 (2026-05-21)
Bug Fixes
- stop codex project log registration (55f31d2)
0.4.0 (2026-05-21)
Features
0.3.1 (2026-05-21)
Documentation
- clarify callback architecture guidance (d4c0af7)
0.3.0 (2026-05-18)
Features
- cli: add install-browsers, uninstall (--purge), and update commands (881a45e)
- extractor,profile: improve PDF extraction and feed resume skills into compiler (88f7712)
- render: switch resume PDFs to HTML (326b714)
- server: browser check at startup + check_update MCP tool + update notification (fb4e3cf)
- server: expose workflow diagnostics (1e30785)
- server: remove resume_path from load_jd; add auto-discovery via registry (34e1698)
- use candidate-company naming for rendered resumes (b1cf280)
Bug Fixes
- cli: setup-mcp writes absolute binary path so Claude can find the server (bfa0f76)
- profile: stabilize resume parsing and onboarding (d6895da)
- render: bundle Inter font; eliminate system font scan on first call (a8a8ff9)
- render: tolerate browser test doubles (70f2d3c)
Documentation
- add README with install, update, uninstall, and how-to-use (db1f8a2)
0.2.0 (2026-05-06)
Features
- add before/after scores to report, surface finalized_at in state (1a67776)
- epic3-m1: deps + models (CreatedStory, CompiledProfile, OrphanedSkill) (75c7f9e)
- epic3-m2: resume repository (save, get, list — XDG-aware) (ad3d81e)
- epic3-m3: accomplishments repository (AccomplishmentsStore, atomic JSON) (f0f989d)
- extract_sections — SectionMap output from resume text (M3) (40b5e32)
- implement epic 1 packaging and ci (18b7c22)
- profile: add ProfileCompiler with three-tier skill union and coverage lint (fab873c)
- profile: M5 WikiRenderer — experience pages and index (8005547)
- profile: M6 wire profile nodes to real stores (05b015d)
- profile: M6 wire profile nodes to real stores + update graph tests (045c680)
- profile: M7 rewrite profile MCP tools to use real graph + nodes (d255bf0)
- profile: M8 add compile_profile to graph interrupt_after (ef8c414)
- profile: M9 integration tests + smoke script update (99a8c29)
- SectionMap data model + WikiStore + get_wiki_pages tool (M1+M2) (2cf739c)
- wire holistic tailor end-to-end (303f464)
Bug Fixes
- move inline imports to module-level; guard empty primary_skill (95761b5)
- type: fix Pyright errors in test_server_profile.py (be4b53a)
Documentation
- mark Epic 2 complete, update dependency graph and next action (1bf5832)