Skip to content

apollge/validate-cv

Repository files navigation

CV Validation System

A web application that validates CV/resume information by comparing user-submitted form data against the content of an uploaded PDF document. Built with the T3 Stack.

Features

  • Form-based Data Entry: Users input their personal information including name, email, phone number, skills, and experience
  • PDF Upload: Support for PDF CV/resume uploads with text extraction
  • Intelligent Validation: Advanced text matching algorithms that compare form data against PDF content
  • Detailed Feedback: Provides specific information about which fields match or don't match the uploaded document
  • Real-time Processing: Instant validation results with loading states

How It Works

  1. Fill the Form: Enter your personal details in the web form
  2. Upload PDF: Select and upload your CV/resume in PDF format
  3. Automatic Validation: The system extracts text from your PDF and compares it with your form data
  4. Get Results: Receive detailed feedback on matches and mismatches

Tech Stack

  • Framework: Next.js 15 with App Router
  • Database: PostgreSQL with Prisma ORM
  • API: tRPC for type-safe API layer
  • Styling: Tailwind CSS v4
  • PDF Processing: pdf-parse for text extraction
  • Validation: Zod schemas for runtime type checking

Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • npm or yarn

Installation

  1. Clone the repository

  2. Install dependencies:

    npm install
  3. Set up environment variables:

    cp .env.example .env

    Edit .env and configure your database URL:

    DATABASE_URL="postgresql://postgres:password@localhost:5432/validate-cv"
    
  4. Set up the database:

    npm run db:push
  5. Start the development server:

    npm run dev

Open http://localhost:3000 to view the application.

Development Commands

npm run dev          # Start development server
npm run build        # Build for production
npm run start        # Start production server
npm run lint         # Run ESLint
npm run typecheck    # Run TypeScript type checking
npm run db:studio    # Open Prisma Studio

Validation Algorithm

The system uses sophisticated text matching to validate CV content:

  • Text Normalization: Removes special characters and normalizes whitespace
  • Flexible Phone Matching: Compares last 7 digits of phone numbers
  • Skills Validation: Individual validation of comma-separated skills
  • Experience Matching: Word-based matching with configurable similarity thresholds
  • Fuzzy Matching: Handles variations in formatting and minor discrepancies

Learn More

To learn more about the T3 Stack and its components:

Deployment

This application can be deployed on platforms like Vercel, Netlify, or any Node.js hosting service. Make sure to:

  1. Set up a PostgreSQL database
  2. Configure environment variables
  3. Run database migrations
  4. Build the application

For detailed deployment guides, see the T3 Stack deployment documentation.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published