Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Two-column headerless work history is dropped and the probe still reports ok

Open
#848 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
68/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
typescript
Domain
testing-qa

Research direction

Start in src/lib/heuristics/sections.ts and src/lib/heuristics/localize/experience.ts, especially the region-scoping logic around line 92, then inspect the EXPERIENCE_DEFECT_CLASSES definition and tests for /probe-experience. Add coverage for a two-column headerless work-history fixture using the synthetic-persona policy in tests/fixtures/pdfs/README.md. Done means the dated cluster produces experience-no-section rather than Verify: ok, without widening recovery.

Written by the indexing model from the issue text.

Description

bug testing

Follow-up to #492, split out so the residue that PR #842 does not cover is recorded before #492 closes on merge.

What still breaks

recoverHeaderlessExperience (src/lib/heuristics/sections.ts) returns early on !singleColumn. So a two-column résumé whose work history carries no recognized experience heading is still dropped whole — exactly the #492 symptom, on the layout the recovery deliberately excludes.

The single-column case is fixed by #842 and is not in scope here.

Why it is invisible

#492's AC 5 asked that /probe-experience report a defect (not ok) on a headerless-experience résumé. #842 satisfies that AC by dissolving it for single-column — the fixture now routes an experience section, so ok is the correct verdict. It does not satisfy it for two-column:

  • localizeExperience scopes its date-range oracle to the already-routed experience region (src/lib/heuristics/localize/experience.ts:92). With no experience section routed, there is no region, so the oracle never sees the dated role cluster sitting in other.
  • EXPERIENCE_DEFECT_CLASSES has only experience-parser-miss and experience-under-segmented. Neither describes "no experience region exists at all".

Net: the probe reports Verify: ok with zero roles parsed, silently. That is worse than the parse miss itself — the lane whose job is to flag the miss reports clean.

Acceptance criteria

  1. A new experience-no-section defect class in EXPERIENCE_DEFECT_CLASSES.
  2. The oracle runs document-wide (not region-scoped) when no experience section was routed, so a dated title-cased cluster anywhere in the document raises the defect.
  3. /probe-experience reports experience-no-section — not ok — on a two-column headerless-experience fixture.
  4. A fixture pinning the two-column headerless shape, with a synthetic persona per the tests/fixtures/pdfs/README.md policy.
  5. Recovery itself stays out of scope: this issue makes the drop visible, it does not make it parse. Widening recoverHeaderlessExperience past singleColumn is a separate decision — the two-column reader has to distinguish a headerless work-history rail from a sidebar, which the single-column recovery never has to.

Notes

  • Non-regression: these résumés were dropped before #842 too. This is uncaptured pre-existing behaviour, not new breakage.
  • Related: #492 (the parent symptom, closed by #842 for single-column), #646 (the scored-router item that would subsume the region-scoping limitation).
Dominant language
TypeScript
Stars
11
Forks
4
Avg merge
2d 17h
Merged PRs (30d)
40

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from offlinecv/OfflineCV

All issues in offlinecv/OfflineCV

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.