GitHunt
TI

tirth8205/CV2Latex

CV2LaTeX

Transform your CV into a professionally formatted LaTeX document in seconds. Perfect for international students, graduates, and professionals who want to stand out with a polished, ATS-friendly resume.

Live Demo
React
TypeScript
License

Why CV2LaTeX?

  • No signup required - Just paste your CV and get LaTeX code instantly
  • Free forever - No hidden costs or premium features
  • Privacy-first - Your data never leaves your browser
  • Works with Overleaf - Copy the output directly to Overleaf and compile

Live Demo

Try it now: https://tirth8205.github.io/CV2Latex/

Features

  • Instant Conversion: Paste your CV and get LaTeX code immediately
  • Multiple Templates: Choose from Professional, Modern, or Academic styles
  • Section Reordering: Drag-and-drop to customize section order
  • Live Preview: See a rendered preview with template-specific styling (fonts, colors) without needing Overleaf
  • Markdown Support: Use **bold** and [links](url) formatting
  • 100% Content Fidelity: All your original content is preserved exactly
  • Syntax Highlighting: LaTeX output is highlighted for easy reading
  • Copy & Download: One-click copy to clipboard or download as .tex file
  • Dark Mode: Toggle between light, dark, and system themes
  • Auto-Save: Your input is automatically saved to local storage
  • File Upload: Upload .txt or .md files directly
  • Sample CV: Load a sample CV to see how it works
  • Keyboard Shortcut: Press Ctrl+Enter (or Cmd+Enter on Mac) to convert
  • Parsing Feedback: Get helpful tips and warnings about your CV structure

Templates

Template Description
Professional Clean, traditional design with serif font and underlined sections. Best for corporate roles.
Modern Sans-serif Helvetica with blue section headers and gray dates. Great for tech and startups.
Academic Palatino font with small caps headers and page numbers. Ideal for academic positions.

Switch between templates to see visual differences in the live preview - no need to compile in Overleaf first.

Supported Sections

  • Contact Information (name, email, phone, LinkedIn, GitHub, website)
  • Professional Summary
  • Technical Skills
  • Professional Experience
  • Industry Projects
  • Education
  • Achievements/Awards
  • Certifications
  • Publications
  • Languages
  • Interests

Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/tirth8205/CV2Latex.git

# Navigate to the project
cd CV2Latex

# Install dependencies
npm install

# Start the development server
npm run dev

Open http://localhost:5173 in your browser.

Build for Production

npm run build

The built files will be in the dist/ directory.

Run Tests

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

Usage

  1. Paste your CV in the left panel (plain text or Markdown format)
    • Or click "Sample" to load an example CV
    • Or click "Upload" to load a .txt or .md file
  2. Select a template from the dropdown (Professional, Modern, or Academic)
  3. Click "Convert to LaTeX" button (or press Ctrl+Enter)
  4. Reorder sections (optional) - click the Reorder button to drag-and-drop sections
  5. Preview - switch to the Preview tab to see a rendered version
  6. Copy or Download the generated LaTeX code
  7. Compile the .tex file using pdflatex or any LaTeX editor (Overleaf, TeXShop, etc.)

Input Format Example

# Your Name
London, UK | your.email@example.com | linkedin.com/in/yourprofile | github.com/yourprofile

## Professional Summary
Software engineer with 3+ years of experience building scalable web applications.

## Technical Skills
**Languages**: Python, JavaScript, TypeScript
**Frameworks**: React, Node.js, Django, FastAPI
**Cloud**: AWS, Azure, Docker, Kubernetes

## Professional Experience
**Software Engineer** | Company Name | London | Sept 2022 - Present
- Built RESTful APIs handling **2M+ requests/day** with 99.9% uptime
- **Reduced latency by 40%** through optimization initiatives
- Mentored 2 junior developers through code reviews

## Education
**MSc Computer Science** | University Name | Sept 2021 - Sept 2022
Grade: Distinction

## Certifications
**AWS Certified Cloud Practitioner** (2024)

Bold Text in Output

To get bold text in your LaTeX output, use **double asterisks** in your input:

- I **designed and built** a system that **improved performance by 50%**

Becomes:

\resumeItem{I \textbf{designed and built} a system that \textbf{improved performance by 50\%}}

Keyboard Shortcuts

Shortcut Action
Ctrl+Enter / Cmd+Enter Convert CV to LaTeX

Tech Stack

  • React 18 - UI framework
  • TypeScript - Type safety
  • Vite - Build tool
  • Tailwind CSS - Styling
  • Prism.js - Syntax highlighting
  • @dnd-kit - Drag-and-drop functionality
  • Vitest - Unit testing

LaTeX Templates

The app includes three professionally designed templates:

Professional (Default)

  • Computer Modern font at 11pt
  • 0.5in margins
  • Rule underlines for section headers
  • Classic, ATS-friendly design

Modern

  • Helvetica font at 10pt
  • 0.6in margins
  • Colored section headers
  • Contemporary look for tech roles

Academic

  • Palatino font at 12pt
  • 1in margins
  • Small caps section headers
  • Traditional academic styling

Project Structure

cv2latex/
├── src/
│   ├── components/          # React components
│   │   ├── InputPanel.tsx
│   │   ├── OutputPanel.tsx
│   │   ├── PreviewPanel.tsx
│   │   ├── TemplateSelector.tsx
│   │   └── SectionOrderModal.tsx
│   ├── hooks/               # Custom React hooks
│   │   ├── useLocalStorage.ts
│   │   ├── useTheme.ts
│   │   └── useLatexPreview.ts
│   ├── utils/               # Core logic
│   │   ├── parser.ts        # CV parsing
│   │   ├── parser.test.ts   # Parser unit tests (65 tests)
│   │   ├── latexGenerator.ts
│   │   ├── escapeLatex.ts   # LaTeX special character handling
│   │   └── escapeLatex.test.ts # Escape tests (40 tests)
│   ├── templates/           # LaTeX templates
│   │   ├── index.ts
│   │   ├── professional.ts
│   │   ├── modern.ts
│   │   └── academic.ts
│   ├── data/
│   │   └── sampleCV.ts      # Sample CV content
│   ├── types/
│   │   └── cv.ts            # TypeScript interfaces
│   ├── App.tsx
│   └── main.tsx
├── .github/
│   └── workflows/
│       └── deploy.yml       # GitHub Actions deployment
├── vitest.config.ts         # Test configuration
├── index.html
├── package.json
├── vite.config.ts
├── tailwind.config.js
└── tsconfig.json

Deployment

This project is automatically deployed to GitHub Pages using GitHub Actions. Every push to the main branch triggers a new deployment.

To deploy your own fork:

  1. Fork this repository
  2. Go to repository Settings > Pages
  3. Under "Build and deployment", select "GitHub Actions"
  4. Push any change to trigger deployment

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Connect

Built by Tirth Kanani. Connect with me on LinkedIn.