Inspiration I was tracking 200+ job applications in a spreadsheet and losing follow-ups. Applications would go silent and I'd have no system to know when to nudge or when to move on. I needed something that watches the silence for me.

What it does Ghosted is a job-application silence tracker. You log where you applied, and it sorts everything into a 4-column kanban: Waiting → Follow-up Due → Likely Ghosted → Resolved. A timing engine (7/14-day thresholds) moves cards automatically. Each application gets an AI ghosting score from 1–10 and a personalized follow-up email draft you can copy in one click. All data stays in your browser via localStorage — no account, no backend.

How we built it Next.js 14 with TypeScript and shadcn/ui for the interface. The timing engine is pure client-side logic — date math against the 7/14-day thresholds. For the AI features (ghosting score + follow-up drafts), we call an LLM through FastRouter with structured prompts that consider days-silent, company type, and role. The whole thing is a single-page app deployed on Vercel.

Challenges we ran into The biggest one was making the ghosting score feel trustworthy, not random. A flat "8/10" means nothing without context, so we tuned the prompt to weigh recency, company responsiveness patterns, and role competitiveness. We also had to keep everything client-side for privacy — no server means the LLM calls go directly from the browser, which took some careful prompt engineering to keep reliable.

Accomplishments that we're proud of The timing engine just works — applications flow through the columns on their own and the follow-up drafts are genuinely useful, not generic templates. We shipped a complete, usable product in a single day: kanban, AI scoring, email drafts, persistence, and a clean shadcn/ui interface.

What we learned The most useful AI features are the invisible ones. Nobody opens Ghosted for the AI — they open it to see what's overdue. The ghosting score and email draft just remove friction at the exact moment you need them. We also learned that localStorage is enough for a personal productivity tool — no backend, no auth, no complexity.

Built With

  • nextjs
Share this project:

Updates

Submission history