Skip to content

fix: one application per job however its emails word it, and stop missing real replies - #80

Merged
coderback merged 1 commit into
mainfrom
fix/email-application-tracking
Nov 3, 2026
Merged

coderback merged 1 commit into
mainfrom
fix/email-application-tracking

Conversation

@coderback

Copy link
Copy Markdown
Owner

Why

Checking the applications the Gmail backfill created turned up three problems: one job split into several applications when its emails named the role differently, real rejections never read, and real replies thrown away as job alerts.

What changes

One application per job (track_all)

  • An email joins the application in the same thread, otherwise the one whose role overlaps. If several could fit, it doesn't guess.
  • Two confirmations for the same employer stay two applications.
  • The title comes from the first confirmation's role, otherwise the newest email's.
  • A confirmation under 14 days after a later step doesn't undo that step.
  • Emails linked to an existing application now move its status by the usual rules, or are added as a past step.

Reading emails

  • A board's "your application was sent" for a different role no longer attaches to the application that was matched.
  • "Online assessment" no longer counts as a role name.

Real replies that were missed

  • Nine more application systems count as application senders: workablemail.com, teamtailor-mail.com, pinpoint.email, tal.net, brassring.com, njoyn.com, ambertrack.global, beapplied.com, earlycareerscompany.com.
  • An email from a job-alerts address whose body says "thank you for applying" or similar now reaches the model. Leonardo's rejections came from jobalerts.leonardojobs.co.uk and were dropped by this rule. Of 128 real emails the rule caught, this lets through 1, and it is about a real application.

Testing

  • Backend: 1204 passed, 8 skipped, 46 deselected. About 15 new tests in test_gmail.py.
  • Real-model email eval, now 23 emails with 3 new ones (Workable rejections in English and French, and a "position filled" email from a job-alerts address): 22 of 23 read correctly, no wrong application, nothing unrelated changed, no wrong automatic changes.
  • The browser tests were not run.

Known gaps, not changed here

  • One eval miss: "your application was sent to Globex Corporation" is read as unrelated. It's rare (the same mistake happened on 1 real email).
  • "Under review" emails for employers not yet tracked still don't create an application.

After merging

The next sync or backfill will also read Workable emails it skipped before. Most are second copies of what's tracked, but some could change a status, so check any that do. The API needs a rebuild, which clears the backfill summary in the Inbox.

The existing data has already been corrected separately, so this PR changes code only.

…sing real replies

Backfilling Gmail split one application into several when its emails named the role differently, and dropped real
replies. Emails now join the application they belong to: same thread first, then the one application whose role
overlaps. Two confirmations stay two, and nothing is guessed when several could fit. A board's "your application was
sent" for a different role no longer lands on the wrong application, and a late confirmation doesn't undo a later step.

More application systems are searched and read (Workable's among them), and an email from a job-alerts address whose
body says "thank you for applying" or similar is no longer thrown away as an alert.
@vercel

vercel Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
windrush-career-demo Error Error Nov 3, 2026 11:14pm UTC

@coderback
coderback merged commit 3b3ff75 into main Nov 3, 2026
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant