Inspiration
🚀 Inspiration
Standing out in today’s job market is tougher than ever. I kept seeing the same problem: most CV tools are static, outdated, and built like digital paper. For students and junior developers especially, writing a powerful CV felt more like a roadblock than a launchpad.
Inspired by the as-a-service philosophy behind modern, modular platforms, I asked myself:
What if CVs were programmable?
That question sparked CVaaS — CV as a Service.
My mission: turn every CV into a living, dynamic, embeddable career API.
🧠 What it does
CVaaS is a developer-centric platform that empowers users to:
- 📄 Build dynamic, structured CVs in a clean JSON-based schema
- 🤖 Optimize CV content with open-source LLMs — refining summaries, enhancing bullet points, and boosting keyword relevance
- 🔗 Share CVs securely using ephemeral smart links with password protection, access limits, and view analytics
- 🧩 Embed CVs seamlessly on personal websites — complete with customizable themes and a light/dark mode toggle
- 💾 Export CVs instantly in human-readable formats for recruiters and application submissions
🔧 How I built it
- Frontend: React + TailwindCSS with
shadcn/uifor fast, accessible, and elegant component styling - State & Routing: React Hooks + React Router DOM for SPA navigation and protected route access
- CV Engine: A modular, section-aware JSON renderer with ordered layouts, theming, and extensibility
- LLM Integration: Used Hugging Face open models (e.g.,
mistralai/Mistral-7B-Instruct) to suggest optimized summaries, bullets, and skills - Syndication System: Ephemeral sharing built on access tokens with download tracking, password validation, and view limits
- Embedding & Themes: Live widget previews with dark/light toggling, auto-update configs, and user-defined CSS overrides
🧗 Challenges I ran into
- Selecting the right LLMs for CV-focused tasks — balancing quality, speed, and staying within Hugging Face’s free-tier limits
- Rendering structured JSON CVs in a consistent, theme-aware layout while allowing for dynamic section ordering
- Designing secure yet intuitive access control for ephemeral links, including password protection and view limits
- Achieving responsive, embeddable previews without compromising performance or bloating the frontend bundle
🏆 Accomplishments that I'm proud of
- Built a real-time CV pipeline: JSON → UI → LLM-enhanced → updated JSON
- Developed a fully functional embeddable CV widget, effectively turning a resume into an API-powered portfolio
- Implemented theme-aware rendering with zero-config dark/light mode toggling
- Delivered a complete, polished MVP in under a week — functional, shareable, and production-ready
📚 What I learned
- The combination of structured data and AI unlocks powerful new ways to tell personal career stories
- Open-source Hugging Face models can be tailored to generate natural, recruiter-friendly summaries
- Developer UX is critical — especially when your users are job-hunting engineers
- The hardest part of AI features isn’t the model — it’s designing the clean, intuitive flows around the model. That's a tough one.
🔮 What's next for CVaaS
🧠 Train a domain-specific LLM for tailored CV suggestions, especially for developers, students, and early-career professionals
🌍 Support localization & multi-language CV generation to break language barriers and expand global reach
📊 Build a recruiter dashboard with smart filters, AI-based ranking, and skill heatmaps for efficient talent discovery
💼 Integrate job boards and internship APIs for real-time job matching directly from your CV
⚡ Allow users to host their CVs with a custom domain via subdomain support
🤖 Automate job-to-candidate matching using AI that parses job descriptions and surfaces best-fit CVs
💸 Monetize with premium features like analytics, LLM-powered feedback boosts, and branded CV themes
Built With
- bolt
- llm
- react
- supabase
- tailwind
- typescript
- vite
Log in or sign up for Devpost to join the conversation.