28 Commits

Author SHA1 Message Date
Shaheer Sarfaraz
b88d00b15d
Make projects optional when moving jobs to Ready (#189)
* Make resume projects optional and reuse selection rules

* Apply Biome import/format fixes

* Handle explicit empty project selection in PDF generation

* Hide selected projects section when catalog is empty

* Avoid projects section flash while catalog is loading
2026-02-18 22:31:59 +00:00
Shaheer Sarfaraz
5ed74bb59c
Tracer links (#174)
* initial commit

* format links right

jobops.dakheera47.com/cv/shaheer-google-de

* don't support legacy

* remove phishing look

* smaller links

* readiness check in settings

* rework UX

* right col

* pop a modal

* modal improvements

* show links

* documentation disclaimer

* fix(tracer-links): preserve descriptive resume link labels

* fix(tracer-links): classify bot user agents before browser families

* fix(tracer-links): reject non-http redirect destinations

* fix(tracer-redirect): disable caching for tracked redirects

* fix(origin): prefer canonical public base url over forwarded headers

* fix(auth): protect tracer analytics routes behind basic auth

* fix(ui): rename misleading tracer drilldown human metric

* style(tests): format tracer-links invalid-destination assertion

* fix(tests): prevent mocked fs from breaking sqlite data-dir resolution

* style(docs): format versioned docs json for biome

* fix(tests): mock tracer-links in pdf skills validation suite
2026-02-18 22:05:15 +00:00
Shaheer Sarfaraz
b94f85b149
Reduce low risk duplication (#79)
* clean up helpers

* shared in it's own top level folder

* workspaces setup

* build fix

* disable workspaces?

* run ci

* rename job-flow to gradcracker

* optional dependencies

* formatting?

* more optional modules

* allow post install runs

* node bump

* remove post install

* add optionals

* add more

* formatting

* comments, but im unsure

* run typescript DIRECTLY

* better build

* camoufox simplification

* lint

* build process doesn't exist

* build fix

* lockfile

* type check everything, build only for client

* rename steps correctly

* import from package!

* fix formatting

* don't fetch twice

* fix concern
2026-02-02 21:30:14 +00:00
Shaheer Sarfaraz
b02dac5fe8
Fix for level 1 being added to skills (#73)
* single commit fix!

* fix tests!
2026-01-31 23:20:05 +00:00
DaKheera47
d4e83c0674 gem3 flash lint fix 2026-01-25 13:14:59 +00:00
DaKheera47
5c2eef2fc8 ran check:fix in orchestrator 2026-01-25 12:41:44 +00:00
DaKheera47
9dfb862649 ready panel now works with external resume json instead of local 2026-01-23 11:40:34 +00:00
DaKheera47
4798846483 v4 api based, with the same code facing api as v5 2026-01-23 00:55:44 +00:00
DaKheera47
44779c96fa Merge branch 'main' into reactive-resume-v5 2026-01-22 22:57:37 +00:00
DaKheera47
9c1252c7fd onboarding validation for each field 2026-01-22 21:29:05 +00:00
Anas Syed
0aed4e06a2 remove validateAndRepairJson function and tests 2026-01-22 20:32:13 +00:00
Anas Syed
a0401bc38c use @paralleldrive/cuid2 2026-01-22 20:17:10 +00:00
Anas Syed
322feb8b67 Fix PDF generation failures from malformed AI responses
- Add OpenRouter response-healing plugin to auto-fix malformed JSON
- Add stream: false to all OpenRouter API calls (required for plugin)
- Add Zod schema validation before PDF generation with AI repair fallback
- Fix CUID2 ID generation for skills (was generating invalid "skill-0")
- Update idSchema to validate CUID2 format matching RXResume's validation
- Save failed JSON and screenshots to data/errors/ for debugging
- Add tests for CUID2 validation to prevent regression
2026-01-22 20:07:50 +00:00
DaKheera47
4b65f39650 robustness 2026-01-21 16:31:25 +00:00
DaKheera47
9363a58e46 ensure generated resume is valid for rxresu.me by using their schema 2026-01-21 15:18:34 +00:00
DaKheera47
6a3a25578a use person name from base.json for file downloads 2026-01-21 14:48:17 +00:00
DaKheera47
e5c99d54bf formatting improvement 2026-01-21 14:26:57 +00:00
DaKheera47
d45b22f5df temp: loading multiple apikeys from env 2026-01-20 21:34:17 +00:00
DaKheera47
e66a3de283 ensure skills always have the right spec 2026-01-20 14:56:35 +00:00
DaKheera47
47fd4a0959 api implemented 2026-01-20 12:02:58 +00:00
DaKheera47
8108688609 load data from data directory correctly, honour env first 2026-01-19 18:43:40 +00:00
DaKheera47
e954cba4b1 ai can update more fields 2026-01-11 00:42:49 +00:00
DaKheera47
cd5ec25c3b allowing tailoring of resume before being manually built 2026-01-06 23:06:19 +00:00
DaKheera47
8a236c0be9 can regenerate pdfs, because sometimes the ai gets it wrong, and we need to help it out 2025-12-17 17:48:03 +00:00
DaKheera47
43f54a708c ai chooses projects 2025-12-15 18:25:40 +00:00
DaKheera47
051c09d943 Dockerization :) 2025-12-11 23:56:07 +00:00
DaKheera47
302fadb494 pdf generation fix 2025-12-11 23:15:20 +00:00
DaKheera47
1b082a3eb6 orchestrator initial commit... 2025-12-11 22:31:59 +00:00