~/projects

Kickapply

Web app and browser extension to help candidates manage job applications and cover letters.

ReactTypeScriptViteTurborepoSupabaseZod
Kickapply

Overview

Kickapply is a dashboard web app paired with a Chrome extension, built to help candidates manage job applications and cover letters without the usual spreadsheet-and-folder chaos. The dashboard is where applications, profiles, and cover letters live; the extension adds a side panel so you can generate and fill in application data straight from the browser, without switching tabs.

Features

  • Secure authentication with Supabase
  • Multiple profiles — one per type of role, so someone applying to both frontend and product roles can keep separate resumes, cover letters, and application history for each instead of juggling one profile that doesn't fit either
  • Track and manage job applications end to end
  • AI-generated cover letters, personalized per application
  • Chrome extension side panel for quick access without leaving the job posting

Architecture

The codebase is a monorepo (Turborepo + pnpm workspaces), with the dashboard and extension as separate React + Vite apps sharing a set of internal packages — auth, Supabase client, validation schemas (Zod), UI components, and types — so both apps stay consistent without duplicating logic.

/kickApply
 ├── apps
 │   ├── dashboard              # Main dashboard app (React + Vite)
 │   └── extension              # Chrome Extension (React + Vite)
 │
 ├── packages
 │   ├── applications           # Applications
 │   ├── auth                   # Shared authentication logic (AuthGuard, hooks, ...)
 │   ├── cover-letters          # Cover letters
 │   ├── eslint-config          # ESLint configuration
 │   ├── hooks                  # Shared hooks
 │   ├── lib                    # Shared libraries (helpers, utils, ...)
 │   ├── profiles               # Profiles management
 │   ├── schema                 # Validation schemas (Zod)
 │   ├── stats                  # Application statistics
 │   ├── supabase               # Supabase client (DB, auth,...)
 │   ├── types                  # Shared types
 │   ├── typescript-config      # TypeScript configuration
 │   └── ui                     # Design system (shared components)
 │
 ├── .eslintrc.js
 ├── .prettierignore
 ├── .prettierrc.json
 ├── .package.json
 ├── pnpm-workspace.yaml
 ├── README.md
 └── turbo.json