{"id":47056522,"url":"https://github.com/lf1up/careersim","last_synced_at":"2026-03-12T03:34:11.926Z","repository":{"id":339061504,"uuid":"1021121760","full_name":"lf1up/careersim","owner":"lf1up","description":"AI-Powered Career Skills Simulator","archived":false,"fork":false,"pushed_at":"2026-02-17T19:58:45.000Z","size":1279,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-18T00:58:25.836Z","etag":null,"topics":["ai","chatgpt","llm","nodejs","prompt-engineering","reactjs","typescript","webapp"],"latest_commit_sha":null,"homepage":"https://careersim.ai","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lf1up.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-16T23:27:13.000Z","updated_at":"2026-02-17T19:58:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lf1up/careersim","commit_stats":null,"previous_names":["lf1up/careersim"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/lf1up/careersim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lf1up%2Fcareersim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lf1up%2Fcareersim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lf1up%2Fcareersim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lf1up%2Fcareersim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lf1up","download_url":"https://codeload.github.com/lf1up/careersim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lf1up%2Fcareersim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30414362,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T00:40:14.898Z","status":"online","status_checked_at":"2026-03-12T02:00:07.260Z","response_time":114,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chatgpt","llm","nodejs","prompt-engineering","reactjs","typescript","webapp"],"created_at":"2026-03-12T03:34:11.236Z","updated_at":"2026-03-12T03:34:11.908Z","avatar_url":"https://github.com/lf1up.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CareerSim - AI-Powered Career Skills Simulator\n\n**CareerSim** is a direct-to-consumer (B2C) web application designed to help individuals master critical career skills through hyper-realistic, AI-powered simulations. Users can practice challenging professional situations -- from job interviews to difficult conversations -- in a safe, repeatable environment and receive immediate, data-driven feedback to accelerate their personal and professional growth.\n\nThe platform empowers users to build confidence and competence for career-defining moments. By leveraging a powerful generative AI engine, CareerSim provides dynamic, conversational practice with a diverse cast of AI personas, moving beyond rote memorization to foster genuine skill development.\n\n## Architecture\n\nCareerSim is a microservices-based application composed of the following services:\n\n```\n                        ┌──────────────┐\n                        │   Frontend   │\n                        │  React + TS  │\n                        │  :3000       │\n                        └──────┬───────┘\n                               │\n                        ┌──────▼───────┐\n                        │   Backend    │\n                        │  Express+TS  │\n                        │  :8000       │\n                        └──┬───┬───┬───┘\n                           │   │   │\n              ┌────────────┘   │   └────────────┐\n              │                │                │\n       ┌──────▼───────┐ ┌─────▼──────┐ ┌───────▼──────┐\n       │ Transformers  │ │    RAG     │ │  PostgreSQL   │\n       │  FastAPI      │ │  FastAPI   │ │  + Redis      │\n       │  :8001        │ │  :8002     │ │  :5432/:6379  │\n       └───────────────┘ └────────────┘ └──────────────┘\n```\n\n| Service | Stack | Description |\n|:--------|:------|:------------|\n| **frontend** | React 18, TypeScript, Tailwind CSS, Vite | SPA with simulation UI, analytics dashboard, admin panel |\n| **backend** | Express.js, TypeScript, TypeORM, Socket.IO | REST API, JWT auth, Stripe billing, real-time messaging, LangGraph conversation engine |\n| **transformers** | FastAPI, HuggingFace Transformers, PyTorch | Sentiment analysis, emotion classification, toxicity detection, zero-shot classification |\n| **rag** | FastAPI, ChromaDB, Sentence-Transformers | Document storage and semantic retrieval for persona/simulation knowledge |\n| **agent** | Python | Agent service for automated workflows |\n\n## Project Structure\n\n```\ncareersim/\n├── frontend/                  # React SPA\n├── backend/                   # Node.js API server\n│   └── src/\n│       ├── entities/          # TypeORM entities (User, Simulation, Session, etc.)\n│       ├── routes/            # REST endpoints (auth, admin, simulations, sessions, etc.)\n│       ├── services/\n│       │   ├── ai.ts          # OpenAI integration\n│       │   └── langgraph/     # LangGraph stateful conversation system\n│       ├── middleware/        # Auth, error handling, logging\n│       └── config/            # Database, env, Swagger\n├── transformers/              # Python NLP microservice\n├── rag/                       # Python RAG microservice\n├── agent/                     # Python agent service\n├── infrastructure/\n│   ├── aws/                   # Terraform for ECS/Fargate, RDS, ElastiCache, ALB\n│   ├── aws-transformers/      # Standalone Transformers deployment\n│   └── k8s/                   # Kustomize manifests (dev + prod overlays)\n├── docker-compose.local.yml   # Local development stack\n├── PERSONAS.md                # AI persona definitions\n└── LICENSE.md                 # MIT License\n```\n\n## Quick Start\n\n### Prerequisites\n\n- Node.js \u003e= 22, pnpm \u003e= 10\n- Docker and Docker Compose\n- An OpenAI-compatible API key\n\n### Local Development with Docker Compose\n\n1. **Clone the repository and configure the backend:**\n   ```bash\n   cp backend/.env.example backend/.env\n   # Edit backend/.env with your API keys (OPENAI_API_KEY, etc.)\n   ```\n\n2. **Start all services:**\n   ```bash\n   docker compose -f docker-compose.local.yml up --build\n   ```\n\n   This starts PostgreSQL, Redis, backend (with auto-seeding), and frontend.\n\n3. **Access the application:**\n   - Frontend: http://localhost:3000\n   - Backend API: http://localhost:8000\n   - API Docs (Swagger): http://localhost:8000/api-docs\n\n4. **Default admin account** (after seeding):\n   - Email: `admin@careersim.com`\n   - Password: `admin123!@#`\n\n### Optional: Transformers \u0026 RAG Services\n\nThe transformers and RAG services can be run locally for advanced NLP features. Uncomment them in `docker-compose.local.yml` or run them standalone:\n\n```bash\n# Transformers (sentiment, emotion, toxicity analysis)\ncd transformers \u0026\u0026 pip install -r requirements.txt \u0026\u0026 python main.py\n\n# RAG (ChromaDB vector search)\ncd rag \u0026\u0026 pip install -r requirements.txt \u0026\u0026 python main.py\n```\n\n\u003e The backend gracefully falls back to keyword-based analysis when these services are unavailable.\n\nSee each module's README for detailed setup instructions.\n\n## Core Features\n\n### Simulation Library\nA gallery of career challenges presented as interactive cards, filterable by category, skill, and status.\n\n### Live Simulation Interface\nReal-time conversational UI powered by Socket.IO with AI personas that respond dynamically based on personality, hidden goals, and difficulty settings.\n\n### LangGraph Conversation Engine\nStateful, multi-node graph architecture for managing AI conversations:\n- Process user input, fetch RAG context, generate persona response, analyze quality\n- Proactive messages (start, follow-up, inactivity nudges, backchannels)\n- Goal evaluation with tool-based assessment and confidence scoring\n- PostgreSQL-backed checkpointing for conversation replay and debugging\n- LangSmith observability support\n\n### NLP Analysis (Transformers Microservice)\n- **Sentiment Analysis** -- Twitter RoBERTa-based (Positive / Neutral / Negative)\n- **Emotion Classification** -- 7-class DistilRoBERTa (joy, anger, sadness, fear, surprise, disgust, neutral)\n- **Toxicity Detection** -- DistilBERT-based content moderation\n- **Zero-shot Classification** -- BART-Large MNLI for custom label classification\n\n### RAG Knowledge Retrieval\nPersona and simulation knowledge grounding via ChromaDB vector search with Sentence-Transformers embeddings.\n\n### Performance Analytics (\"The Debrief\")\nPost-simulation review with overall scores, transcript analysis, sentiment graphs, emotion tracking, communication metrics, and AI-generated feedback.\n\n### Admin Panel\nDashboard with user growth metrics, simulation popularity, completion rates, user management, content management, and data export.\n\n### Authentication\nJWT-based auth with refresh tokens, email verification, password reset, and role-based access control.\n\n## AI Personas\n\n| Persona | Role | Personality | Simulation |\n|:--------|:-----|:------------|:-----------|\n| **Brenda Vance** | By-the-Book HR Manager | Formal, professional, risk-averse | The Behavioral Interview |\n| **Alex Chen** | Passionate Tech Lead | Enthusiastic, detail-oriented | Tech \u0026 Cultural Fit |\n| **David Miller** | The Skeptical Veteran | Data-driven, pragmatic, resistant to change | Pitching Your Idea |\n| **Sarah Jenkins** | Overwhelmed Colleague | Stressed, sympathetic, boundary-challenged | Saying \"No\" to Extra Work |\n| **Michael Reyes** | Disengaged High-Performer | Intelligent but bored and unmotivated | Re-engaging an Employee |\n| **Chloe Davis** | Eager but Anxious Junior | Hardworking but lacks confidence | Delegating a Task |\n| **Priya Patel** | Data Analyst Interviewer | Analytical, thorough | Data Analyst Interview |\n\nSee [PERSONAS.md](PERSONAS.md) for detailed persona definitions including hidden goals and success criteria.\n\n## Infrastructure\n\n### AWS (Terraform)\nProduction-ready ECS Fargate deployment with VPC, ALB, RDS PostgreSQL, ElastiCache Redis, EFS, Cloud Map service discovery, and optional GPU instances for transformers. See [infrastructure/aws/README.md](infrastructure/aws/README.md).\n\n### Kubernetes (Kustomize)\nSelf-hosted deployment with dev and prod overlays, StatefulSets for databases, and GPU scheduling support. See [infrastructure/k8s/README.md](infrastructure/k8s/README.md).\n\n## Tech Stack\n\n| Layer | Technology |\n|:------|:-----------|\n| Frontend | React 18, TypeScript, Tailwind CSS, Vite, React Router, Socket.IO Client |\n| Backend | Node.js, Express.js, TypeScript, TypeORM, Socket.IO, LangGraph/LangChain |\n| Databases | PostgreSQL 17, Redis 7, ChromaDB |\n| AI/LLM | OpenAI GPT API (via OpenRouter), HuggingFace Transformers, Sentence-Transformers |\n| Payments | Stripe |\n| Infrastructure | Docker, Terraform (AWS), Kustomize (K8s) |\n| Testing | Jest, DeepEval (conversation simulation), Playwright |\n\n## Roadmap\n\n- **Community Features** -- Public leaderboards and discussion forums\n- **Certification Paths** -- Structured learning programs with shareable certificates\n- **AI Persona Builder** -- User-created custom AI personas for specialized practice\n- **Team/B2B Version** -- Enterprise offering with team analytics and management\n\n---\n\n## License\n\nThis project is licensed under the MIT License -- see the [LICENSE.md](LICENSE.md) file for details.\n\n## Author\n\nPavel Vdovenko ([reactivecake@gmail.com](mailto:reactivecake@gmail.com))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flf1up%2Fcareersim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flf1up%2Fcareersim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flf1up%2Fcareersim/lists"}