3.8 KiB
3.8 KiB
Jobbjakt next session handoff
Last updated: 2026-03-23
What was completed today
- Added attachment-aware AI context selection across job AI tabs.
- Added attachment metadata:
- purpose
- AI inclusion toggle
- Added overview strategy snapshot in job details.
- Added AI draft variants for:
- cover letters
- recruiter messages
- Added route-level lazy loading/code splitting.
- Added CV section rewrite + replace flow.
- Added CV structure parsing UI and backend parsing endpoint.
- Added persisted structured CV section JSON on user profiles.
- Updated job-tailoring prompts to include structured CV sections.
- Added frontend tests for:
- attachments metadata controls
- job details generated drafts
- profile page CV structure parsing/persistence
- Added
tmp/to.gitignoreto protect local/private test files. - Used local file
tmp/test-data/my-cv.pdfonly for a lightweight private sanity check.
Deployment / CI fixes made
- Added
profile-page.test.tsxto frontend CI test command. - Hardened remote deploy shell with
set -euo pipefailin workflow. - Improved
deploy/deploy.shto:- retry Docker build after cleanup if layer extraction fails
- prune builder/cache on retry
- rebuild
ai-servicewith--no-cacheon retry - verify both backend and ai-service are running after deploy
- remove old legacy
app-summarizer-1container if present
Important production issue observed
Remote deploy failed with Docker layer extraction error during ai-service image export:
unpigz: corrupted -- crc32 mismatch
Most likely host-side Docker/cache/storage issue, not app code. Mitigation has been added in deploy script, but if it happens again check:
- available disk space on host
- Docker storage driver health
/var/lib/dockerfilesystem integrity- BuildKit cache corruption
- whether Docker daemon needs restart
Outstanding product/code items
Highest priority
- Expand structured CV data from JSON persistence into richer first-class usage:
- explicit section chooser in tailoring UI
- section-weighted tailored CV generation
- section-specific missing-keyword analysis
- Add more tests:
- profile CV rebuild/improve endpoints
- attachment AI filtering defaults
- strategy snapshot regeneration
- structured CV influence on tailoring prompts (backend tests if practical)
- Final UX polish pass on:
- Profile CV tools
- Job details AI tabs
- Attachments table metadata controls
Medium priority
- Dashboard polish toward requested SaaS references.
- System/admin page clarity pass.
- Translation consistency review across EN + NB.
- Audit username/full-name/email autofill consistency.
Lower priority
- Internal
Summarizer*→AiService*naming cleanup. - Broader performance review after latest UI additions.
Suggested next implementation order
- Add structured CV section influence visibility in UI:
- show which sections are being used for tailoring
- allow picking preferred sections for a job package
- Add tests for attachment AI defaults + profile persistence edge cases
- Final UX polish pass on profile/job details/attachments
- Dashboard + system polish
Files most relevant next time
JobTrackerApi/Controllers/JobApplicationsController.csJobTrackerApi/Controllers/ProfileCvController.csJobTrackerApi/Controllers/AuthController.csModels/ApplicationUser.csModels/Attachments.csJobTrackerApi/Program.csjob-tracker-ui/src/pages/ProfilePage.tsxjob-tracker-ui/src/components/JobDetailsDialog.tsxjob-tracker-ui/src/components/Attachments.tsxjob-tracker-ui/src/profile-page.test.tsxjob-tracker-ui/src/attachments.test.tsxjob-tracker-ui/src/job-details-generated-drafts.test.tsx.gitea/workflows/ci-deploy.ymldeploy/deploy.sh
Local private test asset
tmp/test-data/my-cv.pdf- Do not commit it.