An AI-powered enterprise talent management and team organization platform
dobrandoCulleres (Galician for "of bending spoons") is a full-stack web application designed to help organizations discover talent, organize teams, and leverage AI to find the right people for the right projects. Built for hackathon innovation, it combines modern web technologies with intelligent skill matching to streamline team formation and expertise discovery.
- Employee Profiles: Manage comprehensive employee profiles with job titles, departments, and skills
- Skill Tracking: Store and rate employee skills with proficiency levels
- Skill Embeddings: Uses Ollama and pgvector for intelligent semantic skill matching
- Expert Discovery: Find experts based on skill searches with vector similarity matching
- Group Management: Create and manage teams/groups within your organization
- Team Leaders: Assign designated leaders to teams
- Org Charts: Visualize organizational structure and hierarchies
- Team Chatbot: Interact with an AI chatbot to get team recommendations and insights
- Intelligent Matching: Find experts by skills, departments, or natural language queries
- Tag-Based Organization: Organize skills with tags for better categorization
- Role-Based Access Control: Support for Admin, Manager, and Employee roles
- Session Management: Secure cookie-based sessions with 30-minute timeout
- Authentication: Login/registration with email and password
- User Permissions: Admin-only operations for user management
- Multi-Language Support: Built-in i18n support for multiple languages
- Locale-Based Routing: Language-specific routes
Frontend:
- Next.js 16 (React 19)
- TypeScript
- Tailwind CSS
- Radix UI Components
- React Hook Form + Zod for validation
- React Query for data fetching
- Framer Motion for animations
- XY Flow for interactive diagrams
Backend:
- Go 1.26.2
- PostgreSQL with pgvector extension
- GORM ORM
- Ollama for embedding generation
- Gorilla Sessions for authentication
Infrastructure:
- Docker support
- PostgreSQL database
- Ollama service
dobrandoCulleres/
├── backend/ # Go backend API
│ ├── main.go # Entry point
│ ├── router/ # HTTP route handlers
│ ├── db/ # Database models and operations
│ ├── internal/ # Internal utilities
│ └── config/ # Configuration
├── frontend/ # Next.js frontend
│ └── src/
│ ├── app/ # App routes and pages
│ ├── components/ # React components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilities
│ └── dictionaries/ # i18n strings
├── docker/ # Docker configuration
└── config.json # Backend configuration
- Node.js 18+ (for frontend)
- Go 1.26+ (for backend)
- PostgreSQL 12+ with pgvector extension
- Ollama running locally (for embedding generation)
- Docker (optional, for containerized setup)
-
Install Go dependencies:
cd backend go mod download -
Configure database in
backend/config.json:{ "database": { "host": "localhost", "port": 5432, "user": "postgres", "password": "password", "dbname": "dobrandoculleres" }, "router": { "host": "localhost", "port": 8080, "session_key": "your-secret-key" } } -
Set up PostgreSQL with pgvector:
# Create database createdb dobrandoculleres # Install pgvector extension psql dobrandoculleres -c "CREATE EXTENSION IF NOT EXISTS vector;"
-
Start Ollama (in another terminal):
ollama serve
-
Run backend:
go run main.go # Or with mock data: go run main.go -config config.json -populateBackend will start on
http://localhost:8080
-
Install dependencies:
cd frontend pnpm install -
Start development server:
pnpm dev
Frontend will start on
http://localhost:3000 -
Build for production:
pnpm build pnpm start
-
Build and run with Docker Compose:
docker-compose up
This will start:
- PostgreSQL database
- Ollama service
- Go backend on port 8080
The backend provides a REST API. Key endpoints:
POST /auth/login- Login with email/passwordPOST /auth/register- Create new accountPOST /auth/logout- LogoutGET /auth/me- Get current userDELETE /auth/me- Delete account
GET /api/users- List all usersGET /api/users/{id}- Get user detailsPOST /api/users- Create user (Admin only)PATCH /api/users/{id}- Update user (Admin only)DELETE /api/users/{id}- Delete user (Admin only)
GET /api/skills- List all skillsPOST /api/skills- Create skill (Employee+)GET /api/skills/match?keyword=golang- Find similar skills (vector search)GET /api/users/{id}/skills- Get user's skillsPUT /api/users/{id}/skills- Update user's skills
GET /api/groups- List all groupsPOST /api/groups- Create group (Employee+)GET /api/groups/{id}- Get group detailsPUT /api/groups/{id}- Update groupDELETE /api/groups/{id}- Delete group
GET /api/experts?q=golang&skills=go,python&levels=1,2- Find knowledge
GET /api/stats- Get organization statistics
See backend/README.md for complete API documentation.
Skills are embedded using Ollama's mxbai-embed-large model and stored in PostgreSQL's pgvector extension. When searching for experts, the system uses semantic similarity to find people with related skills.
- Admin (level 2): Full system access
- Manager (level 1): Can manage user skills and team assignments
- Employee (level 0): Basic access, can create groups and manage own profile
The chatbot feature allows users to interact with an AI assistant to:
- Get team recommendations
- Find experts for specific skill requirements
- Discover team composition insights
Create .env file in backend directory:
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=password
DB_NAME=dobrandoculleres
OLLAMA_HOST=http://localhost:11434
SESSION_KEY=your-secret-session-key
Generate sample data for testing:
cd backend
go run main.go -config config.json -populateThis will populate the database with sample users, skills, groups, and relationships.
Frontend linting:
cd frontend
pnpm lintnext: 16.2.4 - React frameworkreact: 19.2.4 - UI library@tanstack/react-query: Data fetchingframer-motion: Animationsrecharts: Data visualizationzod: Schema validation
gorm: Object-relational mappingpgvector-go: Vector database supportgorilla/sessions: Session managementollama: Embedding generation
This project was created for a hackathon. Contributions are welcome!
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is provided as-is for hackathon purposes.
Potential features for future iterations:
- Advanced analytics and reporting
- Team performance metrics
- Project assignment tracking
- Skill development recommendations
- Social features (peer connections)
- Mobile app
- Real-time notifications
- Advanced search filters
- Custom skill hierarchies
For issues or questions:
- Check existing issues on GitHub
- Create a new issue with detailed description
- Include steps to reproduce bugs
Built at HackUPC 2026