Turn an average GitHub profile into a stronger professional signal.
Many developers get rejected not because they lack skill, but because their GitHub profile does not showcase that skill clearly.
GitIQ analyzes your profile and repositories, points out what is weak, and tells you exactly how to improve it.
GitIQ is an AI-powered GitHub profile coach. It converts profile and repository data into actionable feedback so developers can present themselves better and improve hiring outcomes.
| Area | What GitIQ Provides |
|---|---|
| Profile Analysis | Scores and insights for profile quality, activity, consistency, and showcase value |
| Repo-Level Insights | Deep repository analysis with README-aware feedback |
| Faster Experience | Cached analysis for quick dashboard reloads |
| Guidance | Actionable improvements, not just raw stats |
flowchart LR
A[Frontend<br/>React + Vite + Tailwind] -->|/api| B[Backend<br/>FastAPI]
B --> C[GitHub API<br/>Profile, repos, events, README]
B --> D[OpenAI API<br/>Insight generation]
B --> E[Supabase<br/>Auth + persistence]
- User signs in with GitHub via Supabase auth.
- Frontend requests profile analysis from backend.
- Backend fetches profile and repository data from GitHub.
- Backend generates insights and stores analysis in Supabase.
- Frontend renders scores, summaries, and repo-level recommendations.
- Frontend: React, Vite, TailwindCSS, Axios, Supabase JS
- Backend: FastAPI, Uvicorn, HTTPX, OpenAI SDK, Supabase Python SDK
- Data Layer: Supabase
GitIQ/
ββ backend/
β ββ app/
β β ββ routers/ # API routes (analysis, auth, health)
β β ββ services/ # GitHub fetch, scoring, AI insights, Supabase ops
β ββ models/ # request/response schemas
β ββ db.py # Supabase client setup
β ββ main.py # FastAPI app entry point
ββ frontend/
ββ src/components/ # dashboard and analysis UI components
ββ src/lib/supabase.js # frontend Supabase client
ββ src/api.js # Axios API client
GET /health checkPOST /auth/github-loginsync authenticated GitHub user profileGET /analyze/{username}generate fresh analysisGET /analyze/{username}/cachedreturn latest cached analysisGET /repo-analyses/{username}paginated repository analysis listGET /repo-analyses/{username}/itemfetch one repository analysisPOST /repo-analyses/{username}/insightsgenerate or refresh repo LLM insights
- Chat with your profile: ask questions and get targeted improvement guidance.
- One-click README generation:
- GitHub profile README
- Individual repository README
cd backend
python -m venv .venv
.venv\Scripts\activate
pip install -e .
python main.pyBackend environment variables:
SUPABASE_URLSUPABASE_SERVICE_ROLE_KEYorSUPABASE_KEYOPENAI_API_KEYGITHUB_TOKEN
cd frontend
npm install
npm run devFrontend environment variables:
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY
Frontend: http://127.0.0.1:5173
Backend: http://localhost:8000
Vercel/Netlify (Frontend)
|
| HTTPS API calls
v
Render/Railway/Fly.io (FastAPI Backend)
|
+--> Supabase (DB + Auth)
+--> GitHub API
+--> OpenAI API
- Deploy backend service (FastAPI) and expose a public HTTPS URL.
- Set backend env vars:
SUPABASE_URL,SUPABASE_SERVICE_ROLE_KEY(orSUPABASE_KEY),OPENAI_API_KEY,GITHUB_TOKEN. - Update frontend API base URL or proxy strategy for production.
- Deploy frontend service and set
VITE_SUPABASE_URL,VITE_SUPABASE_ANON_KEY. - Update backend CORS allowlist in
backend/main.pyto include deployed frontend domain. - Verify auth login, profile analysis, and repo insights end-to-end.
- Frontend: Vercel or Netlify
- Backend: Render or Railway
- Database/Auth: Supabase
GitIQ focuses on one practical outcome: helping developers present their work better and reduce rejections caused by poor profile presentation.