[epic] Fix It guidance: advice that is right for the résumé in front of the user
@Samhit21 is already working on this.
Since Sep 28, 2026.
Assessment
This issue has not been assessed yet.
Description
Part of #811.
Owner: @Samhit21. This epic is a feature, not a ticket. The owner decides what "done" means for it, files what is missing, and gets each child implemented, mostly through Gaal.
Goal
Fix It (#810, landed in #1000) walks the user through what to change, one item at a time. It is only useful if every step it offers is right for the résumé in front of the user. Today several classes of résumé get advice that is wrong, and some signals the guidance depends on are miscounted or never recorded. This epic makes the guidance trustworthy across résumé shapes, and makes sure we can tell whether it is working.
Children
- #1023: Fix It gives wrong advice for scanned PDFs, low-confidence contact, short summaries and multi-label Experience. These are the findings carried over from the closed PR #994.
- #678:
extractBulletsFromLinespools a marker-only line under an empty key, which inflates the Specificity denominator that the guidance reads from. - #1006: a feedback rating that is picked and then dismissed is never recorded. That is the signal that tells us whether Fix It helped.
The owner adds more children as they are found, and closes or splits any that turn out stale.
What owning it means
- Make each child Gaal-ready. Gaal reads only the issue body, never comments. So any decision the issue leaves open ("A or B", "decide, don't assume") goes into the body before the label does. #1023 and #1006 are both
needs-clarificationtoday, for exactly this reason. - Label
gaalin dependency order. A child is ready when it has one approach, touches no blocked paths (.github/,package.json,.claude/,CLAUDE.md, hook scripts), and fits in one PR. When in doubt, ask in the issue. - Review and approve Gaal's PRs. Your approval is the merge gate. Check the diff against the child's acceptance criteria, not just CI.
docs/reviewing-agent-prs.mdcovers what to look for. - Flag the calls that are not yours alone. Some changes need a maintainer before they merge: anything that bumps
ATS_SCORE_ALGO_VERSION(possible for #678) or changes an analytics event's shape (#1006). Tag @s-annam on those. - Hand-write only what Gaal can't do, such as UX judgement or a blocked path.
Done when
- Every child is closed, or explicitly deferred with a reason
- Fix It gives no step on a scanned PDF that asks the user to add content already on the page
- A dismissed rating is recorded
- Dominant language
- TypeScript
- Stars
- 11
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from offlinecv/OfflineCV
-
fix(heuristics): unit number before a Saint-named city drops "St." from the locationPossibly taken @gaal-agent claimed this 9 days ago. Openbug gaal ux:parsing
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
-
Migrate Gaal implement/review/revise to the local gaal watch; keep mechanical workflows on ActionsOpenarchitecture chore github_actions needs-human ready-for-agent
Difficulty 5/5 Over a week Newbie friendliness 8/100
-
Parser: achievement year lost on re-import when '· YYYY' wrapped to its own linePossibly taken @gaal-agent claimed this 4 days ago. Openbug gaal ready-for-agent ux:parsing
Difficulty 3/5 1-2 days Newbie friendliness 25/100
-
Export: auto-bolded metric bullets extract one word per line in stream-order parsers (pypdf/Drive)Possibly taken @gaal-agent claimed this 4 days ago. Openbatch:export-standards bug gaal ready-for-agent ux:edit-export
Difficulty 3/5 1-2 days Newbie friendliness 25/100
-
bug duplicate improvement
Difficulty 3/5 Half a day Newbie friendliness 66/100
All issues in offlinecv/OfflineCV
Similar issues
-
backend priority:P3 privacy-fix
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug desktop v3 windows
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
esengine/DeepSeek-Reasonix#13697 · 1 comment ·
Maintainers usually reply within 1 day
-
area:security documentation effort:S priority:P2
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
app:web meta:ops
Difficulty 2/5 Half a day Newbie friendliness 78/100
osu-tournament-rating/otr#1113 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100