# Ingest Resume History

> Use when the user has dropped existing resume PDFs, markdown notes, or text files into inbox/ and wants to bootstrap or update content/master.yaml. Extracts text via bun run ingest, then reconciles into master.yaml with per-change reasoning and explicit approval.

- Skill: `clickblipclick/ingest-resume-history` (Agent Skill)
- Install (CLI): `npx skillmds@latest add clickblipclick/ingest-resume-history`
- Raw SKILL.md: https://api.skillmd.com/api/skills/clickblipclick/ingest-resume-history/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: clickblipclick (https://skillmd.com/u/clickblipclick)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/clickblipclick/ingest-resume-history

---


# Ingest Resume History Skill

## When to use

First-time setup, or whenever the user adds new source material (old resumes, work-history notes) to `inbox/` and wants it merged into `content/master.yaml`.

## Hard rules

1. **Never overwrite `master.yaml` without showing diffs and getting explicit approval.**
2. **Always run `bun run ingest` first** to produce the extracted text. Do not try to read PDFs directly.
3. **Dedupe conservatively.** Prefer flagging possible duplicates to the user over silently merging them.

## Workflow

### 1. Extract

Run:

```
bun run ingest
```

This reads everything in `inbox/` and writes plain-text versions to `inbox/.extracted/`.

### 2. Read everything

- All files in `inbox/.extracted/`
- Current `content/master.yaml` (if it exists; may be the example)

### 3. Propose a reconciled master

Build a proposed `master.yaml` that:

- Collects roles across all sources, keyed by `(company, title, start)` for dedupe.
- Merges bullet variants for the same role: prefer longer/more specific wording; flag conflicts to the user.
- Assigns stable IDs. ID scheme: `<company-slug>-<startYear>` for roles; `<role-id>-<keyword>` for bullets.
- Preserves any existing IDs in the current `master.yaml` exactly — do not renumber.

Present the proposal as:

- A list of new roles being added (with reasoning: "from Acme-2023.pdf").
- A list of new bullets per existing role.
- A list of _possible_ duplicates you'd like confirmation on.

### 4. Apply on approval

On explicit user approval, write the full proposed `master.yaml`. Commit:

```
git add content/master.yaml
git commit -m "Ingest history from inbox"
```

### 5. Archive originals

Move processed PDFs from `inbox/` to `jobs/archive/<inferred-company>/` (create folder if needed). For each moved PDF, create a stub `job.md` next to it with whatever context you can infer from filename or content. If inference is weak, write "inferred context TBD" and flag to the user.

## Editing discipline

- When re-running ingest on new files, update master incrementally — do not regenerate from scratch.
- If a source file contradicts existing master content (e.g., different dates for the same role), raise the conflict to the user rather than picking a winner.

