Resume Check Karo integrates four external services — PostgreSQL (via Prisma), Google Gemini AI, Clerk authentication, and ImageKit file storage — each of which requires credentials supplied through environment variables. This page is the authoritative reference for all eight required variables: what each one controls, an example value, and exactly where to obtain it.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/nayalsaurav/resume-analyzer/llms.txt
Use this file to discover all available pages before exploring further.
Quick-Start Template
Copy this block into a.env.local file at the root of your project and replace every placeholder with your real credentials before running npm run dev.
Variable Reference
Database
The full PostgreSQL connection string used by Prisma to connect to your database. This must point to a running PostgreSQL instance — locally or hosted.Example value:Where to get it: Copy the connection string directly from your database provider’s dashboard:
- Neon → Your project → Connection Details → Connection string
- Supabase → Project Settings → Database → Connection string (URI mode)
- Railway → Your PostgreSQL service → Connect tab → Postgres Connection URL
npx prisma migrate deploy (production) or npx prisma migrate dev (local) to apply the schema.Google Gemini AI
Your Google Gemini API key, used by Where to get it: Go to Google AI Studio → Get API key → Create API key in new project (or select an existing project). The key is prefixed with
lib/google.ts to authenticate every call to the Gemini generative AI API. This key grants access to all Gemini models available on your Google AI account.Example value:AIza.The name of the Gemini model Resume Check Karo should use for resume analysis. This value is read at runtime from Recommended values:
Where to get it: Pick a model name from the Google AI model catalog. No separate credential is needed — your
lib/google.ts, so you can switch models without changing any source code.Example value:| Model | Best For |
|---|---|
gemini-1.5-flash | Faster responses, lower cost — suitable for most resumes |
gemini-1.5-pro | More accurate analysis for complex or senior-level resumes |
GOOGLE_API_KEY covers all models.Clerk Authentication
The Clerk publishable key used by the Where to get it: Clerk Dashboard → Select your application → API Keys → Publishable key.
@clerk/nextjs client-side SDK to initialize the Clerk authentication UI (sign-in, sign-up, user button). Because this key is prefixed with NEXT_PUBLIC_, it is bundled into the browser JavaScript and is safe to expose.Example value:The Clerk secret key used by the Where to get it: Clerk Dashboard → Select your application → API Keys → Secret keys → reveal and copy.
@clerk/nextjs server-side SDK to verify session tokens, protect API routes, and fetch user data from Clerk’s API. This key is server-only and must never be exposed to the browser.Example value:ImageKit File Storage
The base URL of your ImageKit media endpoint. Every uploaded resume or image asset is served from this URL. Because it is prefixed with Where to get it: ImageKit Dashboard → URL endpoints → copy the default endpoint URL. It follows the pattern
NEXT_PUBLIC_, it is available in client components (e.g., app/providers.tsx) for rendering images directly in the browser.Example value:https://ik.imagekit.io/<your_imagekit_id>.The ImageKit public key used to authenticate client-side upload requests. It is paired with an upload signature generated server-side using Where to get it: ImageKit Dashboard → Developer options → API keys → Public key.
IMAGEKIT_PRIVATE_KEY to authorize the upload without exposing the private key.Example value:The ImageKit private key used server-side only to generate signed upload tokens. This key must never be sent to the browser or referenced in any client-side code.Example value:Where to get it: ImageKit Dashboard → Developer options → API keys → Private key → reveal.
Client vs. Server Variables
Variables prefixed with
NEXT_PUBLIC_ are statically inlined into the client-side JavaScript bundle at build time. They are visible to anyone who inspects your site’s source code or network requests. Only use this prefix for values that are intentionally public (UI configuration, public API keys, public endpoints).| Variable | Visibility | Safe to expose? |
|---|---|---|
DATABASE_URL | Server only | ❌ Never |
GOOGLE_API_KEY | Server only | ❌ Never |
GOOGLE_AI_MODEL | Server only | ✅ Not sensitive, but no need to expose |
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY | Client + Server | ✅ Designed to be public |
CLERK_SECRET_KEY | Server only | ❌ Never |
NEXT_PUBLIC_IMAGEKIT_URL_ENDPOINT | Client + Server | ✅ Designed to be public |
IMAGEKIT_PUBLIC_KEY | Client + Server | ✅ Safe (used for upload auth only) |
IMAGEKIT_PRIVATE_KEY | Server only | ❌ Never |