PS-03: Autonomous Developer Onboarding Agent
Team: Code Yodha Β· Syrus 2026
N.O.V.A. is an Advanced Agentic Onboarding Platform designed to transform the resource-intensive process of developer onboarding into a fully autonomous experience. Instead of static wikis, new hires interact with an intelligent "HR & Tech Lead" hybrid that personalises their journey based on role, experience, and tech stack β while HR managers get a live dashboard to monitor every hire's progress in real time.
- Persona Identification β Conversational extraction of role (Backend/Frontend/DevOps), experience level, tech stack, goals, and knowledge gaps.
- Dynamic Path Generation β Personalised onboarding checklists of 8β12 tasks built in real time, with a Gantt-style timeline view (Day 1 / Day 3 / Day 7 / Day 14 / Day 30).
- Professional Hybrid RAG β Retrieval-Augmented Generation pipeline using semantic vector search (ChromaDB) combined with keyword-based reranking for maximum accuracy. Zero hallucination on company policy.
- Real-Time Chat β Live WebSocket chat with Nova, persistent across page navigation using React Context + localStorage.
- Tool Calling β Nova creates Jira tickets and sends Slack welcome messages directly from the conversation.
- HR Dashboard β Live onboarding tracker with progress bars, status badges, completion reports, and a floating AI chatbot for HR managers.
- Knowledge Base Explorer β Searchable company docs with category filtering, Open Ticket modal, and related articles.
- Autonomous Reporting β Automatic generation of structured completion summaries.
- Dark / Light Mode β Persists across sessions via localStorage.
| Component | Technology | Purpose |
|---|---|---|
| Frontend | Next.js 14 + TypeScript + Tailwind CSS | UI, routing, WebSocket client, dark mode |
| Backend | FastAPI (Python) | WebSocket API, REST endpoints, async AI calls |
| Agent Logic | LangGraph | State machine β Extract Persona β Generate Checklist β Answer |
| LLM | llama-3.3-70b-versatile (via Groq) | Reasoning, persona extraction, RAG answers, HR assistant |
| Vector DB | ChromaDB | Local persistent storage for secure, contextual documentation |
| Embeddings | SentenceTransformers all-MiniLM-L6-v2 |
High-quality local text embeddings |
| RAG Search | Hybrid (cosine vector + keyword BM25) | Accurate retrieval from KB documents |
| Mock Tools | Python async functions | Jira ticket creation, Slack welcome messages |
nova-onboarding/
βββ backend/
β βββ agent/
β β βββ graph.py β LangGraph brain (3 nodes + routing + tool calling)
β βββ tools/
β β βββ chunker.py β Text chunking with overlap
β β βββ config.py β Logging + env config
β β βββ email_scheduler.py β Async job scheduler for progress emails
β β βββ email_service.py β SMTP integration (Welcome, Weekly, Completion)
β β βββ embeddings.py β SentenceTransformer model loader
β β βββ ingest.py β Full ingestion pipeline runner
β β βββ loader.py β .md document loader
β β βββ mock_integrations.py β Jira + Slack async mock tools
β β βββ ragtool.py β rag_search() entry point
β β βββ retriever.py β Hybrid search (vector + keyword reranking)
β β βββ test_rag.py β RAG functional tests
β β βββ vector_store.py β ChromaDB client (add/search)
β β βββ verifier.py β Onboarding verification logic
β βββ data/
β β βββ tier1_rag/ β Public knowledge base (.md files)
β β βββ tier2_logic/ β Internal logic (Personas, Checklists, Tickets)
β β βββ tier3_templates/ β Structured communication templates
β βββ chroma_db/ β Auto-generated vector store (gitignored)
β βββ main.py β FastAPI app + /ws/chat + /ws/hr-chat
β βββ requirements.txt
β
βββ frontend/
βββ src/
β βββ app/
β β βββ layout.tsx β Root layout with ChatProvider
β β βββ page.tsx β Page redirect (Login/Dashboard)
β β βββ login/page.tsx β Auth page
β β βββ chat/page.tsx β Developer chat interface
β β βββ my-path/page.tsx β Checklist & Gantt timeline
β β βββ knowledge-base/page.tsx β Document explorer & ticket modal
β β βββ team/page.tsx β Employee directory
β β βββ dashboard/page.tsx β HR dashboard & floating chatbot
β β βββ completion/page.tsx β Graduation report
β βββ components/
β β βββ SidebarLayout.tsx β Shared navigation & dark mode
β β βββ TaskItem.tsx β Interactive checklist component
β βββ context/
β βββ AuthContext.tsx β Session management
β βββ ChatContext.tsx β Global WebSocket state
βββ package.json
βββ next-env.d.ts
- Node.js v18+
- Python v3.11+ (64-bit β important on Windows)
- Git
- Groq API key β https://console.groq.com/keys
git clone https://github.com/CMPN-CODECELL/Syrus2026_Code_Yodha.git
cd Syrus2026_Code_Yodha/nova-onboardingcd backend
# Create virtual environment
python -m venv .venv
# Activate β Windows PowerShell:
.venv\Scripts\Activate.ps1
# Activate β Mac/Linux:
source .venv/bin/activateWindows only β if you get an execution policy error:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser .venv\Scripts\Activate.ps1
# Install dependencies
pip install -r requirements.txtCreate a .env file inside backend/:
GROQ_API_KEY=your-groq-api-key-here
MODEL_LLM=llama-3.3-70b-versatile
MODEL_NAME=all-MiniLM-L6-v2
DB_PATH=chroma_db
DATA_PATH=data
LOG_LEVEL=INFO
CHUNK_SIZE=400
CHUNK_OVERLAP=50
# Optional integrations
JIRA_BASE_URL=https://your-org.atlassian.net
JIRA_EMAIL=your-email@company.com
JIRA_API_TOKEN=your-jira-token
JIRA_PROJECT_KEY=FLOW
SLACK_BOT_TOKEN=xoxb-your-slack-bot-token
# Email configuration
SMTP_EMAIL=your-email@gmail.com
SMTP_PASSWORD=your-app-password
HR_EMAIL=hr-target-email@company.comNever commit
.envβ it is already in.gitignore.
Run once before starting the server. Loads all .md files from data/ into ChromaDB.
# Windows PowerShell:
$env:PYTHONPATH = "."
python -m tools.ingest
# Mac/Linux:
export PYTHONPATH=.
python -m tools.ingest# Windows PowerShell:
$env:PYTHONPATH = "."
python main.py
# Mac/Linux:
export PYTHONPATH=.
python main.pyServer starts at http://localhost:8000
Open a new terminal:
cd nova-onboarding/frontend
npm install
npm run devFrontend starts at http://localhost:3000
Run these checks to confirm every layer works:
- RAG Pipeline Test:
python -m tools.test_rag - Smoke Test Agent:
python agent/graph.py - API Health: Access
http://localhost:8000/orhttp://localhost:8000/docs
| Error | Fix |
|---|---|
ModuleNotFoundError: No module named 'tools' |
Run with PYTHONPATH=. |
ExecutionPolicy error |
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser |
429 Too Many Requests |
Rate limit β wait 1 minute. |
| Chat clears on navigation | Ensure layout.tsx wraps app with <ChatProvider>. |
| Role | Responsibility |
|---|---|
| AI & Agent Architect | LangGraph brain, state machine, prompt engineering |
| RAG Engineer | Hybrid search, ChromaDB, embeddings, ingestion |
| Backend Engineer | FastAPI, WebSocket, integrations, email services |
| Frontend Engineer | Next.js UI, real-time chat, HR dashboard |