Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
Translation pending
AI-powered Job Search CRM & Interview Preparation
Translation pending
BusinessTypeScript · PLpgSQLGitHub @Shay-SilversmithOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
InterviewFlow — AI-powered job-search CRM and interview-prep app. React 18 + TypeScript + Vite + Tailwind, Supabase (Postgres with Row-Level Security), Claude API through Vercel serverless functions.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
AI-powered Job Search CRM & Interview Preparation
Track every application, prep for every interview, and use AI to stay one step ahead — all in one place.
Prerequisites
• Node.js 20+
• A Supabase project (free tier is fine) or run entirely in mock/demo mode (no backend needed)
To run in mock/demo mode (no Supabase): leave VITE_SUPABASE_URL unset — the app works fully offline with in-memory data.
To enable AI features locally: set VITE_AI_ENABLED=true in .env.local,
then paste your personal Gemini API key into Settings → Gemini API key.Read the full README ↗AI-powered Job Search CRM & Interview Preparation
Track every application, prep for every interview, and use AI to stay one step ahead — all in one place.
| Layer | Tool |
|---|---|
| Frontend | React 18 + TypeScript + Vite + Tailwind CSS |
| Auth & DB | Supabase (Postgres + Row-Level Security) |
| Storage | Supabase Storage (cv-files, documents buckets) |
| AI | Google Gemini (gemini-2.5-pro) via Vercel serverless functions — BYOK |
| Hosting | Vercel |
git clone https://github.com/your-username/interview-crm.git
cd interview-crm
npm install
cp .env.example .env.local
# Edit .env.local with your values (see comments inside)
To run in mock/demo mode (no Supabase): leave VITE_SUPABASE_URL unset — the app works fully offline with in-memory data.
To enable AI features locally: set VITE_AI_ENABLED=true in .env.local,
then paste your personal Gemini API key into Settings → Gemini API key.
npm run dev serves the /api/ai/* functions itself — see vite-dev-api.ts,
which mounts the same handler files Vercel runs in production. The Vercel CLI is
not needed for local development, and vercel dev is no longer the documented
path. (Before this existed, Vite answered /api/* with index.html, so every
AI call failed while looking like a network fault.)
Generate a Gemini key at https://aistudio.google.com/app/apikey. The key lives
only in your browser's localStorage; it is sent as the x-gemini-api-key header
on each /api/ai/* request and forwarded only to Google's API.
Nothing is ever substituted for a failed AI call. When a request cannot run, the panel says why — no key, AI disabled for the build, rate limit, quota, timeout, or the raw server error — rather than showing canned content that reads like a real result.
npm run dev # http://localhost:5173
Option A — Supabase CLI (recommended)
npm i -g supabase
supabase login
supabase link --project-ref YOUR_PROJECT_REF
supabase db push
Option B — SQL editor Paste the contents of each file in order into the Supabase SQL editor:
supabase/migrations/0001_init.sqlsupabase/migrations/0002_rls.sqlsupabase/migrations/0003_storage.sqlsupabase/migrations/0004_add_storage_path.sqlThe app is fully usable with real data you enter via the UI. If you want demo data:
# In Supabase SQL editor — run supabase/seed.sql (if present)
git add -A
git commit -m "Initial deploy"
git push origin main
In Vercel → Project → Settings → Environment Variables, add:
| Variable | Value | Notes |
|---|---|---|
VITE_SUPABASE_URL | https://xxx.supabase.co | From Supabase → Settings → API |
VITE_SUPABASE_ANON_KEY | eyJ… | anon public key |
VITE_AI_ENABLED | true | Enables live AI tools |
VITE_ADMIN_EMAIL | [email protected] | Email of the admin user; gates demo-mode UI |
No server-side AI key is needed — users provide their own Gemini key in the app's Settings (BYOK).
Click Deploy in Vercel. First build takes ~45 seconds.
Visit your live URL (e.g. https://interviewflow-abc123.vercel.app).
Tip: bookmark
https://your-app.vercel.appor use the Vercel custom domain flow to set upinterviewflow.yourdomain.com.
After changing the schema, regenerate types:
npx supabase gen types typescript \
--project-id YOUR_PROJECT_REF \
> src/types/database.ts
See .env.example for full descriptions. Quick summary:
| Variable | Required | Where used |
|---|---|---|
VITE_SUPABASE_URL | For prod | Supabase client |
VITE_SUPABASE_ANON_KEY | For prod | Supabase client |
VITE_AI_ENABLED | Optional | Feature flag — set true to call live Gemini |
VITE_ADMIN_EMAIL | Optional | Email of the admin user; gates demo-mode UI |
src/
api/ # Vercel serverless functions (/api/ai/*)
components/ # Shared UI + domain components
contexts/ # React context (SearchContext)
data/ # Mock data store + seed helpers
hooks/ # Custom React hooks
lib/ # Utilities: supabase client, storage, mappers, env
pages/ # Route-level page components
services/ # Data access layer (mock + Supabase)
types/ # Entity types + Supabase DB types
utils/ # Pure helpers (date, format)
supabase/
migrations/ # SQL migration files (apply in order)
public/
manifest.webmanifest
icon-192.png # PWA icons
icon-512.png
docs/
runbook.md # Ops reference