CVin.Bio
CVin.Bio generates web profiles from CV documents using AI. Users upload their CVs, and the application extracts and routes the structured data into an editable profile hosted at a custom URL.
๐ Key Features
- ๐ AI CV Parsing: Upload a CV; the backend uses data extraction (
pdf-parse) to categorize and store the user's personal information, work history, education, and skills. - ๐จ Structural Rendering: Generates a consistent, monochrome profile mapping without relying on manual themes.
- โก OpenGraph Edge Generation: Next.js uses the Edge Runtime (Satori) to automatically generate dynamic
1200x630PNG social previews mapping the user's routing URL and avatar metrics. - ๐ Supabase Integration: Connects to PostgreSQL using Row Level Security (RLS) and GoTrue Auth to persist user edits.
- โ๏ธ Data Editor: A client-facing configuration dashboard to mutate work summaries, upload new media, and re-order data arrays.
๐ ๏ธ Tech Stack
- Framework: Next.js 15 (App Router, Server Components)
- Language: TypeScript
- UI & Styling: Tailwind CSS v3 & Shadcn UI
- Backend & Database: Supabase (PostgreSQL & Auth)
- Image Generation: Next/OG
๐ Project Structure
/
โโโ src/
โ โโโ app/
โ โ โโโ [slug]/ # Public Candidate Profile routes
โ โ โ โโโ page.tsx # Clean Server Component fetching public profiles
โ โ โ โโโ opengraph-image.tsx # Edge rendering script natively drawing the SVG/PNG previews
โ โ โโโ editor/ # Authorized CV editing interface
โ โ โโโ api/parse-resume/ # Local algorithmic RegEx parsing route
โ โ โโโ opengraph-image.tsx # Root landing page dynamic fallback preview
โ โ โโโ page.tsx # Primary Landing interface
โ โ โโโ layout.tsx # Symmetrical Universal UI boundaries
โ โ
โ โโโ components/ # Shadcn UI atoms and universal Header elements
โ โโโ lib/ # Server utilities (Supabase Admin, Heuristics arrays)
โ โโโ utils/ # Client-side Supabase Browser constructors
โ โโโ types/ # Strict universal TypeScript interfaces
โ
โโโ docs/
โ โโโ design_guidelines.md # Internal Brand identity and AI Prompts rules
โโโ ...
๐๏ธ Getting Started Locally
To run CVin.Bio perfectly locally, you will strictly only need a Supabase Database instance.
-
Install Dependencies:
npm install -
Environment Variables: Create a new
.env.localfile strictly mapping your keys into the repository root:NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key NEXT_PUBLIC_SITE_URL=http://localhost:3000 -
Boot Development Server:
npm run dev
The application strictly renders natively on http://localhost:3000.
Built with strict mathematical geometry and aggressive minimalism.