Wera
A web app for managing internship applications: find roles, track status, tailor LaTeX resumes, draft cover letters, and plan weekly outreach.

The problem
Internship work is split across job boards, spreadsheets, resume folders, calendars, and notes. That fragmentation makes it easy to lose a deadline or tailor the wrong document. Wera puts discovery, application state, documents, and weekly planning in one typed workflow.
My contribution
I designed and built the product across the Next.js interface, Postgres schema, source connectors, AI boundary, LaTeX compiler, test suite, and Trigger.dev jobs. I also wrote the operating specification used to keep product language, state transitions, and implementation aligned.
Difficult decisions
Model the workflow
Applications use explicit status transitions while “needs attention” signals are derived. That keeps the database from storing stale urgency flags and makes pipeline behavior explainable.
Keep dedup visible
Source connectors fingerprint postings and surface disagreements instead of silently merging them. A user can see when two sources conflict before saving a role.
Bound model output
AI responses cross a schema-validated boundary, get one corrective retry, and write to a spend ledger. Raw model text never becomes application state.
Compile defensively
Resume compilation runs with no application secrets, no network, blocked shell escape, a hard timeout, and a hermetic Tectonic cache.
Evidence


The schema exports 23 tables and the repository contains 23 test files. The recorded full Turbo run completed all 24 lint, typecheck, test, and build tasks.
Result and next step
Wera now covers the full application loop without exposing a public demo account. The next useful test is a private pilot with real application seasons, measuring time from discovery to a ready-to-submit package and where users abandon the loop.