Devlog · Job Scout

Résumé and cover-letter drafts that can't invent anything

  • Every job card gained two buttons: Résumé and Cover letter. Each copies a prompt made of the job, a bank of confirmed facts about the person, and rules for drafting: use only these facts, end every line with the ID of the fact behind it, and put anything the job wants that the facts don't support in a GAPS section instead of the draft.
  • The fact bank is a plain list, one confirmed claim per line with an ID. Tailoring means choosing, ordering and rewording those facts. Adding an employer, a date, a number or a tool that isn't in them is out of reach by construction, not by good behaviour.
  • A checker reads a finished draft back: python -m scout.check_draft <file>. A line with no fact cited, a citation that doesn't exist, or a number the cited fact doesn't contain is an error. A name or tool that appears mid-sentence but not in the cited fact is an error too; one that opens a sentence only warns, since a capital there may just be a capital. The judgement is in code, so a draft can't talk its way past it.
  • Why it matters: a generated résumé that overstates one line is worse than no résumé, because the overstatement is smooth enough to miss and surfaces in an interview. Every line now points at the fact behind it, and the person still reads and sends it themselves.
  • The demo carries its own invented fact bank, so nothing published can show a real history.
Résumé and cover-letter drafts that can't invent anything, screenshot