Repository navigation
JobCtrl v0.2.0
JobCtrl v0.2.0
JobCtrl v0.2.0 refreshes the application, documentation, and public demo with a Swiss timetable-inspired interface; makes Jobs lifecycle triage a single filterable table; strengthens resumable discovery and preparation; and preserves profile, materials, and Gmail evidence more reliably.
Highlights
One Jobs table for lifecycle triage
- Filter Active, Deleted, and Hidden records from the Job state column, including combined states. The default view remains Active only, while pipeline Stage and Stage state stay separate.
- Apply lifecycle filtering on the server before totals and pagination. Hidden takes precedence over Deleted when both tombstones exist, and legacy deleted or closed links keep working.
- Preserve the filter in URLs and saved views, reset paging and selection when it changes, and keep mixed-state and all-matching actions limited to eligible jobs.
- Use the same filter and mutation rules in the browser-local public demo.
Swiss interface, guide, and demo
- Refresh the web app, documentation site, and public demo with the shared Swiss timetable visual system: compact typography, monochrome surfaces, square geometry, stronger section rules, and restrained status color.
- Improve Jobs density, route-level job evidence, responsive Apply Review gates, profile and settings inputs, pipeline controls, and narrow-screen layouts.
- Update the synthetic screenshot gallery and Product Tour to match the shipped interface. No personal workspace or application data is used in these assets.
Discovery that resumes and explains its work
- Prefer a selected, connected browser extension for Discovery and Enrichment, with anonymous public acquisition when it is disconnected. A site failure does not silently switch transport.
- Keep LinkedIn search listing-first, fetching detail early only when a sparse card needs duplicate resolution.
- Resume unfinished JobStreaming query, location, and board units with durable checkpoints and visible progress, and recover eligible public fetch failures through bounded destination rechecks without weakening private-network protections.
- Recover interrupted enrichment, scoring, and material preparation within their existing ownership, retry, and safety limits.
Profile, materials, and outcome evidence
- Let people reorder individual experience bullets while preserving required selections and achievement evidence; keep canonical field identity and newer edits intact across overlapping saves.
- Keep structured profile and Apply Review drafts stable through cache reconciliation, saves, reloads, and failed refreshes.
- Withhold unsupported compensation, distinguish accepted material availability from application prerequisites, and preserve the last accepted employer analysis when a refresh fails.
- Carry canonical job identity through Gmail outcome scans and store linked message evidence, suggestions, and events atomically after Gmail I/O.
Maintenance and runtime
- Resolve all 42 dependency alerts reported before this release, including the affected source and packaged dependency locks.
- Raise the source-development Node.js contract to
>=22.13.0 || >=24. Signed installations include their managed Node runtime, so installed users do not need Node, pnpm, Corepack, Python, uv, or Temporal onPATH.
Upgrade notes
Existing installations can update while preserving local state:
jobctrl updateThe application database advances to exact schema v10. During an installed update, JobCtrl stops the local runtime, creates a paired backup of jobctrl.db and Temporal state, builds and verifies the v10 candidate, and restores the prior pair if migration or readiness fails. V10 moves the canonical application URL from the legacy jobs column to enrichment-owned storage and retains historical application locators for unambiguous lookup.
For a fresh install on an Apple-silicon Mac running macOS 15 or newer:
curl -fsSL https://jobctrl.dev/install.sh | sh
# or
brew install ebarti/tap/jobctrlJobCtrl remains Beta early-access software. Review the getting-started guide, data and safety boundary, and supervised Apply controls before connecting providers or enabling application capabilities.
Full changelog: v0.1.1...v0.2.0