CareerEdge
Paste a job description, get a resume tailored to it. Built to pass ATS filters, not just look good.
About
CareerEdge started from a real frustration: generic resumes get filtered out by ATS before a human ever reads them. The insight was that every job description is its own keyword document — so the resume should mirror it. The core pipeline uses OpenAI to extract structured requirements from a job description (skills, seniority signals, must-haves vs. nice-to-haves), then maps those against the user's experience to generate a tailored resume that ranks high on ATS keyword scoring. I spent most of the engineering time on the prompt design: the first versions hallucinated experience the user hadn't listed. The fix was a two-step approach — extract user facts first, then compose — with a constraint prompt that refused to invent details not present in the input. The backend is FastAPI with PostgreSQL storing user profiles and generation history. The front end is Next.js with a live preview pane that shows ATS score changes in real time as the resume updates. The biggest takeaway: structured output from LLMs is hard to get right at scale, and Pydantic validation as the output schema saved hours of debugging downstream.
Features
- AI-driven resume creation aligned with specific job descriptions
- Seamless resume download functionality
- User-friendly interface for inputting job details
- Integration with OpenAI for content generation
- Backend powered by FastAPI and PostgreSQL for efficient data handling
Tech stack
Screenshots

