An AI-powered interactive tool that generates a branching career tree from your profile and lets you explore it with a conversational AI assistant.
Enter your degree, skills, interests, and priorities. The AI generates a personalised career tree showing domains, roles, and specialisations you might not have considered. Click any node to:
- Expand branches — discover deeper roles and specialisations
- View role details — responsibilities, key skills, career progression, example employers
- Analyse skill gaps — see which of your skills match and which you'd need to develop
- Chat with the AI — ask follow-up questions grounded in your profile and the role you're viewing
┌─────────────┐ ┌─────────────────┐ ┌──────────────┐
│ React SPA │────▶│ FastAPI Backend │────▶│ Claude API │
│ + React Flow│◀────│ + Pydantic │◀────│ (Sonnet 4) │
└─────────────┘ └─────────────────┘ └──────────────┘
- Frontend — React + TypeScript, React Flow + Dagre for tree visualisation
- Backend — Python FastAPI, structured prompts, JSON response parsing
- AI — Claude API for tree generation, node details, skill gap analysis, and chat
- Python 3.11+
- Node.js 18+
- An Anthropic API key
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY
uvicorn main:app --reloadThe API runs at http://localhost:8000. Check http://localhost:8000/docs for the interactive Swagger UI.
cd frontend
npm install
npm run devOpens at http://localhost:5173.
| Method | Endpoint | Description |
|---|---|---|
GET |
/health |
Health check |
POST |
/api/generate-tree |
Generate career tree from profile |
POST |
/api/expand-node |
Expand a node with deeper branches |
POST |
/api/node-details |
Get detailed role information |
POST |
/api/skill-gap |
Analyse skill gaps for a role |
POST |
/api/chat |
Conversational career assistant |
| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript, React Flow, Dagre |
| Backend | Python, FastAPI, Pydantic |
| AI | Claude API (Sonnet 4) via Anthropic SDK |
| Build | Vite (frontend), Uvicorn (backend) |
├── backend/
│ ├── main.py # FastAPI routes
│ ├── models.py # Pydantic data models
│ └── services/
│ ├── claude_client.py # Shared Anthropic SDK wrapper
│ ├── tree_service.py # Career tree generation
│ ├── expand_service.py # Node expansion
│ ├── node_service.py # Node details + skill gap
│ └── chat_service.py # Conversational assistant
├── frontend/
│ └── src/
│ ├── App.tsx # Main app + state management
│ ├── api.ts # API client
│ ├── types.ts # TypeScript interfaces
│ └── components/
│ ├── ProfileForm.tsx
│ ├── CareerTreeView.tsx
│ ├── NodePanel.tsx
│ ├── SkillGapPanel.tsx
│ └── ChatPanel.tsx
├── project.md # Full specification
└── ARCHITECTURE.md # Architecture reference



