使用说明
⚡ SpectraScourt
个人人工智能驱动的职业智能系统
SpectraScourt根据您的个人资料发现黑客马拉松、实习、工作、技术活动和比赛,然后构建一个具有日常可操作目标的个性化职业路线图。它具有一个AI聊天助手,可以通过实时工具访问您的GitHub、LeetCode和LinkedIn个人资料。
✨ 特性
🔍 机会发现
- 从目标公司寻找公司特定的工作和实习机会
- 您所在地附近的技术活动、峰会和会议
- 黑客马拉松、竞赛和开源程序
- 基于你的技能和偏好的人工智能比赛评分
- 按类型筛选:实习·工作·黑客马拉松·活动·竞赛
🗺️ AI职业路线图
- 个性化规划的预生成问卷
- 带有可点击长期目标的可视化里程碑图
- 月度目标及可交付成果
- 与特定里程碑相关的日常任务
- 任务完成跟踪
🤖 AI聊天助手(带实时工具)
聊天助手使用 双子座2.0闪光灯 通过函数调用,可以访问 8个现场工具:
| 工具 | 说明 |
|---|---|
get_github_profile |
从GitHub获取仓库、语言、星号 |
get_leetcode_profile |
统计数据、排名和已解决问题数 |
get_leetcode_problems |
最近解决+主题过滤推荐 |
get_linkedin_profile |
通过SerpAPI公开LinkedIn个人资料 |
find_linkedin_connections |
在目标公司寻找人员 |
get_user_profile |
完整的职业简介数据 |
get_opportunities |
发现机会 |
get_roadmap |
职业路线图和任务 |
🖥️ 桌面小部件(电子)
- 始终在桌面上的紧凑型小部件
- 显示2个日常任务+5个最佳机会
- 单击以标记任务已完成
- 带显示/隐藏控件的系统托盘
- 每5分钟自动刷新一次
📊 个人资料智能
- GitHub仓库和语言分析
- LeetCode通过官方GraphQL API统计数据(避免推荐已解决的问题)
- 通过SerpAPI查找LinkedIn个人资料
- 使用pdfminer.six恢复解析
- 技能图生成器汇总所有来源
🏗️ 建筑
spectrascout/
├── backend/ # FastAPI server
│ ├── api/ # REST endpoints
│ │ ├── chat.py # AI chat with function calling
│ │ ├── opportunities.py # Opportunity CRUD + discovery
│ │ ├── profile.py # User profile + onboarding form
│ │ └── roadmap.py # Roadmap generation + tasks
│ ├── agents/ # AI-powered engines
│ │ ├── roadmap_engine.py # Career roadmap generator
│ │ ├── opportunity_discovery.py # Company-targeted search
│ │ ├── opportunity_scoring.py # Match scoring
│ │ ├── dsa_recommender.py # LeetCode problem recs
│ │ └── project_recommender.py # Project suggestions
│ ├── intelligence/ # Data analyzers
│ │ ├── github_analyzer.py
│ │ ├── coding_profile_analyzer.py # LeetCode GraphQL
│ │ ├── linkedin_analyzer.py # SerpAPI-powered
│ │ ├── resume_parser.py
│ │ └── skill_graph_builder.py
│ ├── services/ # Search, ranking, storage
│ ├── data/ # JSON data files
│ └── main.py # App entry point
├── frontend/ # React + Vite dashboard
│ └── src/
│ ├── pages/ # Dashboard, Opportunities, Roadmap, Chat, Profile, Onboarding
│ └── services/api.js # Axios API client
├── widget/ # Electron desktop widget
│ ├── main.js # Electron process
│ ├── widget.js # API integration
│ └── widget.css # Glassmorphism styling
└── README.md
🚀 快速开始
先决条件
1.后端
cd backend
pip install -r requirements.txt
# Create .env file
cp .env.example .env
# Edit .env and add your API keys:
# GEMINI_API_KEY=your-key
# SERPAPI_KEY=your-key
python -m uvicorn main:app --reload
2.前端
cd frontend
npm install
npm run dev
3.桌面小部件
cd widget
npm install
npm start
4.奥拉马
ollama run qwen2.5-coder:1.5b
⚙️ 环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
GEMINI_API_KEY |
✅ | Google Gemini API密钥 |
SERPAPI_KEY |
✅ | SerpAPI搜索键+领英 |
GITHUB_TOKEN |
❌ | GitHub个人访问令牌(更高的速率限制) |
LEETCODE_USERNAME |
❌ | 默认LeetCode用户名 |
CODEFORCES_USERNAME |
❌ | 默认Codeforces用户名 |
🛠️ 技术栈
| 层 | 技术 |
|---|---|
| 后端 | Python、FastAPI、Uvicorn |
| 人工智能 | 谷歌双子座2.0 Flash(聊天),双子座2.5 Flash Lite(代理) |
| 前端 | React 18,Vite,React路由器,Lucide图标 |
| 小部件 | 电子 |
| 搜索 | SerpAPI(谷歌搜索+领英) |
| 数据 | JSON文件,ChromaDB(向量) |
| pdfminer.six |
📝 许可证
此项目用于个人/教育用途。
