LOCAL XLSX / STATUS PROVENANCE

Which email actually moved the role?

Join application rows to dated mail updates by ID, remove repeats, quarantine unknown roles, and keep the exact subject and comment behind every status.

Applicationsapplication_id · company · role · current_status · applied_at
Mail Updatesreceived_at · application_id · status · subject · comment

No workbook loaded.

SheetJS is ready. No reconciliation has run.

TWO SHEETS / ONE CURRENT STATUS

A status is only as good as its trail.

The application row keeps the prior value. Only a later, matched, explicit mail status can change it; duplicates and orphan IDs stay outside the ledger.

VALIDATEDEDUPEMATCH IDSORT TIMEAPPLY LATEST

WHY THE JOIN MATTERS

Entities stay put. Events move them.

Worked reconciliation

Eight mail rows become seven unique rows. APP-999 has no application entity, so six matched events remain. The latest event changes three of four roles.

Conflict counterexample

Interview and Rejected at the same APP-101 timestamp cannot be ordered by recency. The tool blocks instead of choosing a convenient status.

Transfer boundary

Status must be explicit in the sheet. The tool does not infer from prose, open a mailbox, access LinkedIn, call ChatGPT, or schedule a daily refresh.

Every mail row updates a role.Exact repeats add no evidence, and unknown application IDs cannot mutate the tracker.
Excel already holds the truth.The prior value remains visible beside the later dated mail event that supports any change.
Local evidence onlyNo live LinkedIn, mailbox, database, ChatGPT, LLM, inferred status, or scheduled refresh. Use explicit statuses and ISO timestamps, then review exceptions before adopting the exported workbook.
Super generates helpful tools and automates fact-checking across the internet proactively. If you enjoyed this tool, build your own with Super and share it with a friend.