--- name: resume-intake-and-extraction description: Use when resume source material arrives as chat requirements, a Word file, a PDF, screenshots, or mixed artifacts and must be normalized before any 1-2 page resume drafting begins. --- # Resume Intake And Extraction ## Overview Normalize messy resume input into traceable working material. Extract first, map claims second, and stop before drafting when the source cannot safely support a concise 1-2 page resume. ## Inputs - Chat requirements - `.docx` - `.pdf` - Images or screenshots - Mixed bundles ## Preconditions - Use within a `resume-crafter` workspace that already has `input/` and `work/` directories. - If no current workspace with `input/` and `work/` exists, invoke or resume `resume-crafter`, or return a blocker asking for a workspace before writing files. ## Required Behavior - Use upstream `docx` for `.docx` inputs. - Use upstream `pdf` for `.pdf` inputs. - Prefer platform-native image reading or OCR for image inputs. - Save extracted content to `work/extracted.md`. - Save gaps, conflicts, omissions, and user confirmations to `work/requirements-summary.md`. - Save initial claim traceability to `work/claim-source-map.md`; authoring must later update this map to cover the final rendered resume claims. - For every uncertain field, keep the raw source wording when available instead of normalizing it into a cleaner fact. ## Confidence States Mark each usable or requested fact as: - `resolved` - `needs-confirmation` - `omitted-unresolved` - `missing-blocking` Legacy confidence labels may appear inside notes, but the state above controls whether drafting can proceed. Use `[confirm]` only for `needs-confirmation` items in working notes. Do not use `[confirm]` to bypass `missing-blocking`, and do not allow `[confirm]` or `needs-confirmation` claims in final resume prose. Final output eligibility: - `resolved`: may appear in final resume prose. - `needs-confirmation`: may appear only in working notes, never in final prose. - `omitted-unresolved`: records an intentional omission and must not appear in final prose. - `missing-blocking`: blocks authoring and finalization until resolved or audited as omitted with explicit user approval. ## Quality-Critical Unknowns Treat an uncertain fact as quality-critical when it affects identity/display name, localized name, target role/headline, required or user-visible contact-block choices, required photos, required language/style, user-explicit deliverable requirements, or any content whose omission would make the resume visibly worse or mismatched. Quality-critical unknowns must be marked `missing-blocking`, not `needs-confirmation`, until the user confirms them or explicitly approves omission. Do not downgrade them merely to keep drafting moving. Record the exact targeted question that should be asked in `work/requirements-summary.md`. Use a brainstorming-style question: clarify the purpose or constraint, ask one question at a time when it affects the next decision, and offer concise options when helpful. ## Claim Map Format Use this six-column table in `work/claim-source-map.md`: | Claim | Source artifact | Source locator | Raw wording or user confirmation | State | Final handling | |---|---|---|---|---|---| | Candidate held role X at Y | `input/source.pdf` | p.1, experience section | "Role X, Y" | resolved | use | | Led deployment for Z users | `input/screenshot-01.png` | visible project card, metric partly cropped | visible wording unclear; ask user to confirm Z | needs-confirmation | ask or keep out of final prose with working-note trace | | Chinese display name for a Chinese resume is unknown | `input/source.tex` | header/name line | source only says `LI Baichuan`; ask user how to display name in Chinese resume | missing-blocking | ask before drafting | This intake map covers source facts and uncertainties. After the final resume prose is drafted, `resume-authoring-and-assembly` must update the table so every final factual claim has a `resolved` row. ## Evidence Requirements - PDFs: include page numbers. - Images and screenshots: include filenames and visible regions. - Chat: quote the user's wording or cite the user confirmation. - Follow-up answers: record as user confirmation. ## Omission Audit For every intentionally omitted blocking item, record in `work/requirements-summary.md`: - omitted field or claim - reason for omission - explicit user approval - impact on final wording ## Follow-Up Confirmation Update Mode When the user answers clarification questions after intake: - update `work/extracted.md` with the confirmation wording and date/context of the answer - cite the answer as `user confirmation` in `work/claim-source-map.md` - change confirmed rows from `missing-blocking` or `needs-confirmation` to `resolved` only when the answer directly supports the final claim - keep unresolved non-blocking uncertainty as `needs-confirmation`; keep unresolved quality-critical or blocking uncertainty as `missing-blocking` unless the user explicitly approves omission; do not silently delete unresolved rows - update `work/requirements-summary.md` so resolved blockers, remaining blockers, and omission audits stay current ## Legacy Confidence Labels If helpful, also label extraction snippets as commentary only: - `high-confidence` - `low-confidence` - `missing-blocking` Legacy `high-confidence` and `low-confidence` commentary never controls final output eligibility. The Confidence States above are authoritative. ## Stop Conditions - If key chronology, identity, publication, title, or impact facts are missing, stop and ask targeted questions before drafting. - If a quality-critical unknown exists, stop and ask a targeted question before drafting. - Do not resolve quality-critical uncertainty by guessing, silently deleting the field, or converting it to a non-blocking note. - If OCR or extraction damage makes facts unreliable, stop and report which fields are unsafe. - If source artifacts conflict materially, ask for clarification before writing. - Do not synthesize missing dates, names, venues, role scopes, or metrics from context. - If the user requests a long academic CV, stop and ask whether to create a concise 1-2 page research resume. ## Workspace And Runtime Rules - Write normalized materials only inside the current workspace, typically under `work/`. - Do not write guessed or low-confidence resume content into `skills/`, `templates/`, or other repository paths. - Do not activate unrelated runtime skills to resolve core resume facts.