True_Yodha is the codebase behind a career-intelligence product (Myro; earlier iterations used the name "Mirror") that helps job seekers understand what skills companies are hiring for in the age of AI.
At a high level it:
- Ingests a user's CV.
- Extracts skills against a large skills taxonomy.
- Finds job matches via skill overlap and ranking.
- Computes a score and breakdowns that make the gaps actionable.
This repository exists because the hiring market changes fast, and "what to learn next" is only useful if it is grounded in real job demand and a consistent skill taxonomy.
This is a monorepo:
backend/: FastAPI API (Supabase/Postgres for storage, background worker for compute)frontend/: Next.js 14 web app (Tailwind + shadcn/ui)database/: schema and migration scripts for Supabasedocs/: architecture, scoring algorithm notes, deployment guidelightcast_skills_taxonomy.json,lightcast_skills_flat.csv: skills taxonomy artifacts used by the system
# backend/.venv = backend/Dockerfile's Python + requirements.txt only (CONTRIBUTING.md)
# create backend/.env (do not commit) with Supabase keys + LLM config + REDIS_URL
cd backend && .venv/bin/uvicorn app.main:app --reloadcd backend
# requires REDIS_URL in backend/.env
.venv/bin/python -m app.workers.jobs_compute_workercd frontend
npm install
# create frontend/.env.local (do not commit) with NEXT_PUBLIC_API_URL
npm run devThis repo is primarily designed to be run as a web app (local or deployed).
- Start the backend API.
- Start the frontend.
- Use the frontend flow to upload a CV, view extracted skills, see matches, and explore skill intelligence.
For deeper detail, start here:
docs/TECH_STACK.mddocs/SCORING_ALGORITHM.mddocs/DEPLOYMENT_GUIDE.md
Populate secrets only through local ignored env files or the deployment
provider's secret store. Never put a service-role key, JWT signing secret,
OAuth client secret, payment secret, database URL, or third-party API key in
frontend code, documentation, comments, logs, or API responses. Any variable
whose name starts with NEXT_PUBLIC_ is browser-visible; use that prefix only
for public values, including the Supabase anon key only while RLS is enabled on
every exposed table and storage object.
Git history warning: if a secret was ever hardcoded, deleting it from the working tree does not remove it from git history. Rotate any previously hardcoded secrets immediately, then provision the replacement through the deployment provider's secret manager.
Contributions are welcome. Please read CONTRIBUTING.md for:
- dev setup and checks
- code style and conventions
- PR process and what makes a change reviewable
MIT. See LICENSE.