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

TypeScriptNext.jsFastAPIOpenAIPostgreSQL

Screenshots

CareerEdge — Platform overview
Platform overview
CareerEdge — Resume optimization
Resume optimization