This is a submission for DEV's Summer Bug Smash: Smash Stories powered by Sentry.

Some bugs make noise. They throw errors, they crash a build, they light up your terminal in red. This is not that kind of story. This is about the quiet kind, the ones that sit there working exactly as written, doing something you never meant for them to do, until someone actually stops and asks the right question.

The Project

I built smart-resume-analyzer, an AI powered resume analyzer and interview coach. You upload a resume, it checks your ATS score, gives you clear feedback on structure and wording, and generates interview questions tailored to your profile. It runs on Next.js, uses Clerk for authentication, PostgreSQL through Prisma for storage, and calls out to Gemini and Sarvam for the actual analysis.

Like a lot of modern Next.js apps, most of the real logic does not live in API routes. It lives in server actions, plain async functions marked with use server that the client can call directly as if they were local functions, while Next.js quietly turns them into network requests behind the scenes.