An AI-powered web application that helps entrepreneurs and non-profit founders get started by intelligently connecting them with mentors, business registration resources, suppliers, grants, and safety information.
- 🤖 LLM-Powered: Uses Google Gemini to understand natural language queries and extract relevant information
- 📚 SCORE Mentors: Find industry and expertise-matched mentor leads
- 📄 Business Registration: Get California business registration forms, PDFs, and fees
- 🏭 Supplier Search: Find North American suppliers for raw materials and products
- 💰 Grant Opportunities: Discover funding opportunities from the California Grant Portal
- 🛡️ Safety Assessment: View neighborhood crime data for business location planning
- 🎨 Neubrutalism UI: Bold, vibrant, high-contrast design
- FastAPI: Modern Python web framework
- Google Gemini: Free LLM for parameter extraction
- Browser Use SDK: Integration with 5 custom skills
- Pydantic: Data validation and settings management
- React: UI library
- Vite: Build tool and dev server
- Axios: HTTP client
- Neubrutalism CSS: Bold, vibrant design system
- Python 3.8+
- Node.js 16+
- Browser Use API key
- Google Gemini API key (free tier)
- Navigate to the backend directory:
cd backend- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Create a
.envfile in thebackenddirectory:
BROWSER_USE_API_KEY=your_browser_use_api_key_here
GEMINI_API_KEY=your_gemini_api_key_here
FRONTEND_URL=http://localhost:5173- Run the backend server:
uvicorn app.main:app --reload --port 8001The API will be available at http://localhost:8001
- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install- Start the development server:
npm run devThe app will be available at http://localhost:5173
- Start both the backend and frontend servers
- Open
http://localhost:5173in your browser - Type a natural language query about your business idea, for example:
- "I want to start a coffee shop in San Francisco"
- "Find me a mentor for tech startups"
- "I need suppliers for biodegradable packaging in Los Angeles"
- "What grants are available for small businesses in California?"
The AI will:
- Extract relevant information from your query
- Determine which skills to call
- Execute the appropriate API calls
- Present formatted results
small-business-orchestrator/
├── backend/
│ ├── app/
│ │ ├── __init__.py
│ │ ├── main.py # FastAPI app entry point
│ │ ├── models.py # Pydantic models
│ │ ├── llm_service.py # Gemini LLM integration
│ │ ├── skill_orchestrator.py # Browser Use skill execution
│ │ └── config.py # Configuration
│ ├── requirements.txt
│ └── .env.example
├── frontend/
│ ├── src/
│ │ ├── App.jsx
│ │ ├── components/
│ │ │ ├── ChatInterface.jsx
│ │ │ ├── ResultsDisplay.jsx
│ │ │ └── SkillCard.jsx
│ │ ├── styles/
│ │ │ └── neubrutalism.css
│ │ └── index.js
│ ├── package.json
│ └── vite.config.js
└── README.md
Main chat endpoint that processes user queries.
Request:
{
"message": "I want to start a coffee shop in San Francisco",
"conversation_history": [] // optional
}Response:
{
"message": "Found 5 mentor(s). Found 3 supplier(s)...",
"skills_executed": ["score_mentor", "thomasnet", "safety"],
"results": {
"score_mentor": {
"skill_name": "score_mentor",
"success": true,
"data": { ... }
}
},
"follow_up_questions": []
}BROWSER_USE_API_KEY: Your Browser Use API key (required)GEMINI_API_KEY: Your Google Gemini API key (required)FRONTEND_URL: Frontend URL for CORS (default: http://localhost:5173)
- The Thomasnet skill requires a
datadomecookie. The Browser Use SDK should handle this automatically. - All skills are called in parallel for better performance.
- The LLM intelligently determines which skills to call based on user input.
- If critical information is missing, the system will ask follow-up questions.
MIT