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
Connect your skills to evidence of the work you build.
BusinessPython · TypeScriptGitHub @UtkarshTheWiseOnlineOwner 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
Dataquest 3.0
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Evidence-based employability analysis for students and placement cells.
Built for DataQuest 3.0 (VIT Chennai), problem statement DQWL.
CareerLens reads a student's resume, GitHub, portfolio links and LinkedIn export, checks every claimed skill against real proof of work, and returns an explainable Job Readiness Score, a skill-gap report, role-fit suggestions and a step-by-step roadmap. Placement cells get a batch view of the same data. A Chrome extension carries the verified profile onto job pages.Read the full README ↗Evidence-based employability analysis for students and placement cells. Built for DataQuest 3.0 (VIT Chennai), problem statement DQWL.
CareerLens reads a student's resume, GitHub, portfolio links and LinkedIn export, checks every claimed skill against real proof of work, and returns an explainable Job Readiness Score, a skill-gap report, role-fit suggestions and a step-by-step roadmap. Placement cells get a batch view of the same data. A Chrome extension carries the verified profile onto job pages.
Positioning line for judges: Existing tools tell a placement officer how students score on tests. CareerLens tells them whether what students claim is backed by work they actually built.
The core idea (verify claims against evidence) is right and maps exactly onto the problem statement. The draft prompt, though, spends most of its scope on the part of the idea that is already a commodity, and it under-delivers on three things the problem statement explicitly asks for.
| # | Issue in the draft | Why it matters | Fix |
|---|---|---|---|
| 1 | No placement-cell / batch dashboard | The PS says "placement teams gain batch-level insights". Missing it costs marks directly. | Add a Cohort Insights view (section 3). |
| 2 | No design portfolio evidence (Behance, Figma) | Explicitly in the PS. Also the one area no competitor covers. | Link-based design evidence, weighted lower and labelled. |
| 3 | No consistency-over-time signal | PS: "how consistently they learn, build, and stay active". | Commit cadence from GitHub's contribution calendar. |
| 4 | One mega-prompt produces score + audit + resume + links in one JSON | Large nested schemas get rejected by Gemini's structured output, outputs are not reproducible, and the score can't be explained. | Split into small pipeline stages. Compute the score deterministically from signals; the LLM only extracts and judges. See docs/PIPELINE.md. |
| 5 | "AI-Slop" detector / isAiSlop / "Larping" / "Integrity (honesty) score" | AI-text detectors scored 25–56% on a 2026 resume dataset and misclassify non-native English writing. Accusing Indian students of "slop" on that basis is unfair and indefensible in front of faculty judges. | Rename to Evidence Coverage, Unverified claim, Low-evidence project. Flag what is missing, never who wrote it. |
| 6 | LLM generates upskilling URLs | LLMs invent URLs. | Curated resources.yaml catalogue; the LLM only picks from it. |
| 7 | "Tailor & Apply" resume rewriting | Competitors' AI tailoring invents metrics ("reduced latency by 67%"). That's the exact problem CareerLens claims to solve. | Tailoring may only reorder, rephrase and emphasise verified claims, and must flag any number without evidence. |
| 8 | The Chrome extension is "the core edge" | Simplify, Teal, Huntr, Careerflow and Jobright already ship free JD-scraping extensions with match scores. | Make the extension the delivery surface for the verified score ("72% keyword match, 40% evidence-backed"). Build it last. |
| 9 | gemini-1.5-pro / gemini-2.5-flash | 1.5 is retired, and 2.5 is closed to new projects since 18 Sep 2026. | Gemini 3.5 Flash-Lite / 3.8 Flash with a Groq fallback. Confirm model IDs in AI Studio. |
| 10 | customApiKey stored on the user profile | Plain-text key in a shared DB. | Keep BYO keys in the extension's local storage or env only. Never persist. |
| 11 | LinkedIn DOM scraping | LinkedIn's API exposes only name/headline/photo/email, and hiQ v. LinkedIn ended in an injunction against scraping. | Use the user's own LinkedIn profile PDF export or pasted text. |
| 12 | Data model has scores but no evidence objects or history | "Explainable" means every score component points to a source. Without history you can't show improvement. | Evidence records with URLs, ScoreBreakdown components, analysis history. See contracts/openapi.yaml. |
| 13 | Eight major features in 24 hours | Scope will collapse into eight half-features. | P0/P1/P2 cut list in ROADMAP.md. |
"Resume + GitHub score" is not new on its own. HackerRank open-sourced hiring-agent (MIT, ~7k stars) that parses resumes, enriches with GitHub, checks authorship and originality and outputs explainable scores. GradPipe (2025 startup) does a 0–100 resume+GitHub score. Hackathon projects (RashDev at FOSS Hack 2026, Devpost "Verify") do similar things. Say this up front, borrow hiring-agent's authorship-threshold idea openly, and show what none of them do (next section).
| Keyword ATS tools (Jobscan, Teal, Simplify…) | GitHub scorers (hiring-agent, GradPipe, GitRoll) | Indian placement platforms (Superset, PlacementPreparation.io, Mettl, Unstop) | CareerLens | |
|---|---|---|---|---|
| Checks claims against work | No | Partly (category level) | No (tests only) | Per claim, with links |
| Checks the student can explain their own code | No | No | Generic aptitude/coding tests | Quiz generated from their repo |
| Explainable score breakdown | No (opaque %) | Partly | Partly | Every point traced to a signal |
| Design portfolios | No | No | No | Yes (link-based) |
| Learning consistency over time | No | Partly | No | Yes |
| Student-facing roadmap | Generic | Limited | Test prep | Tied to each gap |
| Batch view for placement cell | No | No | Yes (test-based) | Yes (evidence-based) |
| Refuses to invent claims when tailoring | No | n/a | n/a | Yes |
The five differentiators to put on a slide:
repo/infra/Dockerfile, 11 authored commits" or "Unverified".update_stock() when two requests arrive together?") that doubles as interview prep and raises or lowers the evidence behind each claim. Claimed → built → explained.strong / moderate / weak / unverified with evidence links and a one-line reason.docs/SCORING.md).docs/QUIZ.md): 6 timed questions generated from the student's own repo (code-reading MCQs on their snippets, plus architecture / design-decision / debugging / extension short answers). Graded against a hidden answer key. demonstrated upgrades evidence; not_demonstrated raises an understanding_gap flag with a review list and retake. Never labelled as "didn't build it"; skipping is never penalised.@react-pdf/renderer. ┌──────────────────────────── apps/web (Next.js, Codex) ───────────────────────────┐
│ Dashboard · Report · Project quiz · Roadmap · Tracker · Cohort Insights │
└───────────────┬──────────────────────────────────────────────▲───────────────────┘
│ typed client generated from contracts/openapi.yaml
apps/extension (MV3, Codex)│ │
side panel ── JobPosting ──┤ │
▼ │
┌──────────────────────────── apps/api (FastAPI, Claude Code) ─┴───────────────────┐
│ 1 Ingest resume → text (pdfplumber/python-docx), LinkedIn PDF, URLs │
│ 2 Extract LLM → ResumeProfile JSON (small schema) │
│ 3 Collect GitHub GraphQL → repos, languages, calendar, manifests, file tree │
│ 4 Detect deterministic skill detectors + repo-quality signals (no LLM) │
│ 5 Judge LLM → per-project judgement on descriptions vs evidence (small schema)│
│ 6 Score deterministic Job Readiness Score + breakdown (no LLM) │
│ 7 Plan LLM picks roadmap items/resources from curated catalogues │
│ 8 Persist Supabase Postgres (+ cache of every LLM/GitHub call) │
│ Quiz on demand: repo files → LLM questions + hidden key → LLM grades → │
│ Python scores → understanding → re-run step 6 │
└──────────────────────────────────────────────────────────────────────────────────┘
LLM gateway: Gemini → (429) Groq → (offline) Ollama PII stripped before LLM
Long analyses run as a background job: POST /v1/profiles/{id}/analyses returns 202 with an id, and the UI polls GET /v1/analyses/{id}.
Details: docs/PIPELINE.md (stages + LLM prompt templates), docs/SCORING.md (formula) and docs/QUIZ.md (Project Understanding Check).
| Layer | Choice | Free limit / gotcha |
|---|---|---|
| Backend | FastAPI (Python 3.12, uv) | Run locally for dev and demo; deploy to Render free (sleeps after 15 min idle, ~1 min cold start, so hit /health before judging). |
| Frontend | Next.js (App Router, TS, Tailwind, shadcn/ui, Recharts, Framer Motion) on Vercel Hobby | 4.5 MB request body (upload resumes straight to the API or Supabase Storage); Hobby can't deploy repos owned by a GitHub org — use a personal repo. |
| Extension | Chrome MV3 + Vite + React, sidePanel API | Load unpacked for the demo; sidePanel.open() needs a user gesture. |
| DB / Auth / Storage | Supabase Free | 500 MB DB, 1 GB storage, 50K MAU. Pauses after ~7 days idle: add a daily GitHub Actions ping. |
| Primary LLM | Gemini 3.5 Flash-Lite (bulk) / 3.8 Flash (judgement) via google-genai | Free quotas are no longer published (estimates: ~500/day Flash-Lite, ~20/day Flash). Check AI Studio. Free-tier data may be used for training, users must be 18+: strip PII, use synthetic resumes for the demo. temperature is deprecated on the newest models. |
| Fallback LLM | Groq openai/gpt-oss-120b (strict json_schema) | 30 RPM, 1,000 req/day, 8K tokens/min. No streaming with structured output. Llama 3.x is gone from free. |
| Offline LLM | Ollama (e.g. a small Qwen/Llama) | Supports JSON-schema output locally; demo-day insurance. |
| GitHub data | GraphQL v4 with a token | Unauthenticated REST is 60 req/hr per IP (a hackathon Wi-Fi burns it in minutes). Use a PAT on the server (5,000/hr) or the user's OAuth token. Stats endpoints return 202 while computing: retry. |
| Resume parsing | pdfplumber (MIT), python-docx | Avoid PyMuPDF (AGPL) unless you accept the licence. |
| Code similarity (optional) | Simple fingerprinting / Dolos ideas | No off-the-shelf tutorial-clone detector exists; we use heuristics. |
Not free anymore (don't plan around them): Cerebras free tier (ended 16 Jul 2026), Koyeb free (ended Feb 2026), Fly.io (trial only), Hugging Face Docker Spaces (paid), Render free Postgres (expires in 30 days). Behance API is unavailable; Figma's free-seat REST quota is 20 calls/month; Dribbble only returns your own shots.
careerlens/
├── AGENTS.md # shared rules — read by Codex AND Claude Code
├── CLAUDE.md # imports AGENTS.md + Claude-only rules
├── README.md / ROADMAP.md / PROMPTS.md / RUNBOOK.md # RUNBOOK = who does what, in order
├── .claude/
│ ├── settings.json # shared allow-list, blocks reading .env, registers the progress Stop hook
│ ├── hooks/require-progress.sh # blocks ending a session with unrecorded changes
│ ├── backend.settings.local.json # copy into the backend worktree as settings.local.json
│ └── frontend.settings.local.json # only if Claude Code ever builds frontend
├── contracts/
│ └── openapi.yaml # SINGLE SOURCE OF TRUTH — frozen after Phase 0
├── packages/
│ └── api-client/ # generated from the contract; never hand-edited
├── apps/
│ ├── api/ # FastAPI — owner: Claude Code
│ ├── web/ # Next.js — owner: Codex
│ └── extension/ # Chrome MV3 — owner: Codex
├── design-refs/ # UI reference shots (add the rest of your folder here)
├── data/ # skills.yaml, roles.yaml, resources.yaml, seed cohort — owner: Claude Code
└── docs/
├── PIPELINE.md # analysis stages + LLM prompt templates
├── SCORING.md # readiness formula
├── QUIZ.md # Project Understanding Check (quiz) spec
├── DESIGN.md # UI tokens & component rules (light + dark) from the reference shots
├── HANDOFF.md # handoff rules + templates (entry, Contract Change Request)
├── handoff/ # backend.md, frontend.md, integration.md — append-only log per track
├── progress/ # backend.md, frontend.md, integration.md — live state per track for model hand-off
└── RESEARCH.md # market, free-stack and agent-coordination research
The coordination flow (contract → backend ∥ frontend → integration) and copy-paste prompts for each step are in PROMPTS.md. The schedule is in ROADMAP.md.
apps/api/.env, never committed)GEMINI_API_KEY=
GEMINI_MODEL_FAST=gemini-3.5-flash-lite # confirm exact IDs in AI Studio
GEMINI_MODEL_SMART=gemini-3.8-flash
GROQ_API_KEY=
GROQ_MODEL=openai/gpt-oss-120b
OLLAMA_URL=http://localhost:11434 # optional
GITHUB_TOKEN=
DATABASE_URL=postgresql+psycopg://... # Supabase connection string (or sqlite:///./dev.db locally)
SUPABASE_JWT_SECRET= # optional; DEV_AUTH=1 skips auth locally
DEV_AUTH=1
CORS_ORIGINS=http://localhost:3000 # extension origins are allowed by regex in code
# backend
cd apps/api && uv sync && uv run fastapi dev app/main.py # http://localhost:8000/docs
# mock API for frontend work before the backend exists
npx @stoplight/prism-cli mock contracts/openapi.yaml -p 4010
# typed client
npx openapi-typescript contracts/openapi.yaml -o packages/api-client/schema.d.ts
# frontend
cd apps/web && pnpm i && pnpm dev # http://localhost:3000
# NEXT_PUBLIC_API_URL=http://localhost:4010 (mock) or :8000 (real)
# extension
cd apps/extension && pnpm i && pnpm build # chrome://extensions → Load unpacked → dist/
docs/SCORING.md); missing GitHub is not a penalty for a UI/UX target.Full research report with all sources: docs/RESEARCH.md.
| PDF output (P2) | @react-pdf/renderer in the web app | Avoid Puppeteer on Vercel (bundle limit). |
| Coding agents | Claude Code (backend), Codex (frontend) | Codex CLI/IDE needs ChatGPT Plus or an API key; the free plan only has limited desktop-app access. Confirm the model with /model. |