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.