AutoResume ๆฏไธไธชๅบไบๅค Agent ๆถๆ็ๆบ่ฝ็ฎๅไผๅ็ณป็ป๏ผ้่ฟ AI ๆๆฏๅธฎๅฉๆฑ่่ ๅๆ็ฎๅไธๅฒไฝ็ๅน้ ๅบฆ๏ผ่ชๅจไผๅ็ฎๅๅ ๅฎน๏ผๅนถๆไพๆ้ๅปบ่ฎฎใ
- ๅค Agent ๆบ่ฝๅไฝ: ๅบไบ LangGraph ๅฎ็ฐ 4 ไธชไธไธ Agent ๅๅๅทฅไฝ
- ๅค็ปดๅบฆๅน้ ๅๆ: ไปๆ่ฝใ็ป้ชใๅญฆๅใๅ ณ้ฎ่ฏๅไธช็ปดๅบฆ่ฏไผฐๅน้ ๅบฆ
- ๆบ่ฝ็ฎๅไผๅ: ๅบไบ็ๅฎ็ปๅไผๅ่กจ่ฟฐ๏ผๆทปๅ ้ๅๆๆ
- ็ๅฎๆงไฟๆค: "็ปๅๅบๅบง"ๆบๅถ็กฎไฟไธ่ๆๅ ๅฎน
- ๅฎๆถไบคไบ: WebSocket ๅฎๆถๆจ้ไผๅ่ฟๅบฆๅ็ปๆ
- ๅฒไฝ่ชๅจ้้: ๆฏๆไปๅฎไน ๅง่ชๅจ้้ๅฒไฝไฟกๆฏ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๅ็ซฏๅฑ (React) โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ ChatArea โ โ JobSidebar โ โ Header โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ WebSocket / HTTP
โโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ API ๅฑ (FastAPI) โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ RouterAgent โ โ WebSocket โ โ REST API โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ LangGraph Agent ๅฑ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โJDMatchAnalyzerโ โResumeOptimizerโ โResumeReviewerโ โ
โ โ (JDๅๆ) โ โ (็ฎๅไผๅ) โ โ (็ฎๅๅฎกๆ ธ) โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ JobSubmitter โ โ Orchestrator โ โ
โ โ (ๅฒไฝๅน้
) โ โ (็ผๆไธญๅฟ) โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๆๅกๅฑ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ GLM Service โ โ Scraper โ โFile Storage โ โ
โ โ (ๆบ่ฐฑAI) โ โ (Playwright)โ โ (ๆฌๅฐๅญๅจ) โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
็จๆทๅฏไปฅ้่ฟ่ช็ถ่ฏญ่จไธ็ณป็ปไบคไบ๏ผๆ่ฟฐๆฑ่ๆๅ๏ผ็ณป็ปไผ่ชๅจๆ็ดขๅน้ ็ๅฒไฝใ
็ณป็ปไผไปๆ่ฝใ็ป้ชใๅญฆๅใๅ ณ้ฎ่ฏๅไธช็ปดๅบฆๅๆ็ฎๅไธๅฒไฝ็ๅน้ ๅบฆ๏ผ็ๆ่ฏฆ็ป็ๅๆๆฅๅๅไผๅๅปบ่ฎฎใ
ๅบไบๅๆ็ปๆ๏ผ็ณป็ป่ชๅจไผๅ็ฎๅๅ ๅฎน๏ผๆทปๅ ้ๅๆๆ ๏ผๆๅไธไธ่กจ่ฟฐใ
ๅค็ปดๅบฆๅฎกๆ ธไผๅๅ็็ฎๅ๏ผ็กฎไฟๅ ๅฎนๅ็ๆงใๅ่งๆงๅ็ๅฎๆงใ
่ฎก็ฎ็ฎๅไธๆๆๅฒไฝ็ๅน้ ๅบฆ๏ผๆๅน้ ๅบฆๆๅบๅนถ็ปๅบๆ้ๅปบ่ฎฎใ
- Python 3.10+
- Node.js 18+
- Anaconda (ๆจ่)
git clone <repository-url>
cd AutoResumecp backend/.env.example backend/.env
# ็ผ่พ backend/.env๏ผ่ฎพ็ฝฎ GLM-APIKEY# ่ฟๅ
ฅๅ็ซฏ็ฎๅฝ
cd backend
# ๅฎ่ฃ
ไพ่ต
pip install -r requirements.txt
# ๅฎ่ฃ
Playwright ๆต่งๅจ
playwright install chromium
# ๅฏๅจๆๅก
python -m backend.api.mainๅ็ซฏๆๅกๅฏๅจๅ๏ผ
- API ๅฐๅ: http://localhost:8000
- API ๆๆกฃ: http://localhost:8000/docs
- WebSocket: ws://localhost:8000/ws/{session_id}
# ่ฟๅ
ฅๅ็ซฏ็ฎๅฝ
cd frontend
# ๅฎ่ฃ
ไพ่ต
npm install
# ๅฏๅจๅผๅๆๅกๅจ
npm run devๅ็ซฏๆๅกๅฏๅจๅ๏ผ
- ่ฎฟ้ฎๅฐๅ: http://localhost:3000
- ่พๅ ฅ: ็จๆท็ฎๅ + ๅฒไฝ JD ้ๅ
- ่พๅบ: ๅ็ปดๅบฆๅน้ ่ฏๅ + ็ผบๅคฑๆ่ฝ + ไผๅๅปบ่ฎฎ
- ่ฏๅ็ปดๅบฆ:
- ๆ่ฝๅน้ (Skills Match)
- ็ป้ชๅน้ (Experience Match)
- ๅญฆๅๅน้ (Education Match)
- ๅ ณ้ฎ่ฏๅน้ (Keywords Match)
- ่พๅ ฅ: ๅๅง็ฎๅ + ๅๆๅปบ่ฎฎ + ็ฎๆ JD
- ่พๅบ: ไผๅๅ็็ฎๅ + ๆน่ฟ็ป่ฎก
- ไผๅๅ
ๅฎน:
- ๅ ณ้ฎ่ฏไผๅ
- ้ๅๆๆ ๆทปๅ
- ็ปๆ้็ป
- ไธไธ่กจ่ฟฐๆๅ
- ่พๅ ฅ: ไผๅๅ็็ฎๅ
- ่พๅบ: PASS/REJECT + ๅค็ปดๅบฆ่ฏๅ
- ๅฎกๆ ธ็ปดๅบฆ:
- ๅ็ๆง (30%): ้ป่พๆงใๅฎๆดๆง
- ๅ่งๆง (30%): ๆๆไฟกๆฏๆฃๆฅ
- ็ๅฎๆง (40%): ็ปๅๅบๅบงๆ ก้ช
- ่พๅ ฅ: ไผๅๅ็็ฎๅ + ๅ จ้จๅฒไฝ JD
- ่พๅบ: ๅน้ ๅบฆๆๅบ + ๆ้ๅปบ่ฎฎ
- ๅน้ ็ปดๅบฆ: ๆ่ฝใ็ป้ชใๅญฆๅใๅ ณ้ฎ่ฏ
| ๆๆฏ | ็จ้ |
|---|---|
| FastAPI | Web ๆกๆถ |
| LangGraph | Agent ็ผๆ |
| ZhipuAI | LLM ๆๅก (GLM-4.7) |
| Playwright | ็ฝ้กต้้ |
| WeasyPrint | PDF ็ๆ |
| PyYAML | ๆ็คบ่ฏ็ฎก็ |
| ๆๆฏ | ็จ้ |
|---|---|
| React 18 | UI ๆกๆถ |
| TypeScript | ็ฑปๅๅฎๅ จ |
| Tailwind CSS | ๆ ทๅผ |
| Vite | ๆๅปบๅทฅๅ ท |
| WebSocket | ๅฎๆถ้ไฟก |
AutoResume/
โโโ backend/ # Python ๅ็ซฏ
โ โโโ agents/ # LangGraph Agent ๅฎ็ฐ
โ โ โโโ langgraph_nodes.py # Agent ่็น
โ โ โโโ langgraph_workflow.py # ๅทฅไฝๆตๅฎไน
โ โ โโโ langgraph_state.py # ็ถๆๅฎไน
โ โโโ api/ # API ๆฅๅฃ
โ โ โโโ main.py # FastAPI ไธปๅบ็จ
โ โ โโโ websocket.py # WebSocket ๅค็
โ โ โโโ router_agent.py # ่ทฏ็ฑ Agent
โ โ โโโ optimization_orchestrator.py # ็ผๆๅจ
โ โโโ prompts/ # LangGPT ๆ็คบ่ฏ
โ โ โโโ jd_analyzer_prompt.yaml
โ โ โโโ resume_optimizer_prompt.yaml
โ โ โโโ resume_reviewer_prompt.yaml
โ โ โโโ job_submitter_prompt.yaml
โ โโโ scraper/ # ๅฒไฝ้้
โ โ โโโ scraper.py
โ โ โโโ playwright_scraper.py
โ โ โโโ url_builder.py
โ โโโ utils/ # ๅทฅๅ
ทๆจกๅ
โ โ โโโ llm_service.py # GLM ๆๅก
โ โ โโโ file_storage.py # ๆไปถๅญๅจ
โ โโโ storage/ # ๆฐๆฎๅญๅจ
โ โ โโโ original/ # ๅๅง็ฎๅ
โ โ โโโ snapshots/ # ไธญ้ดๅฟซ็
ง
โ โ โโโ final/ # ๆ็ป PDF
โ โโโ test/ # ๆต่ฏ็จไพ
โโโ frontend/ # React ๅ็ซฏ
โ โโโ src/
โ โ โโโ components/ # UI ็ปไปถ
โ โ โโโ contexts/ # React Context
โ โ โโโ services/ # ๆๅกๅฑ
โ โ โโโ types/ # TypeScript ็ฑปๅ
โ โโโ package.json
โโโ interfaces/ # ๆฅๅฃๆๆกฃ
โโโ README.md
| ่ทฏๅพ | ่ฏดๆ |
|---|---|
/ws/{session_id} |
ๅฎๆถๅฏน่ฏๅ็ถๆๅๆญฅ |
| ๆนๆณ | ่ทฏๅพ | ่ฏดๆ |
|---|---|---|
| GET | /api/v1/health |
ๅฅๅบทๆฃๆฅ |
| POST | /api/v1/sessions |
ๅๅปบไผ่ฏ |
| POST | /api/v1/sessions/{id}/message |
ๅ้ๆถๆฏ |
| POST | /api/v1/sessions/{id}/select-job |
้ๆฉๅฒไฝ |
| POST | /api/v1/sessions/{id}/upload-resume |
ไธไผ ็ฎๅ |
| POST | /api/v1/jobs/search |
ๆ็ดขๅฒไฝ |
# ่ฟ่กๅ็ซฏๆต่ฏ
cd backend
pytest
# ่ฟ่ก็นๅฎๆต่ฏ
pytest test/test_router_agent.py -v
pytest test/test_websocket.py -vๅๅปบ backend/.env ๆไปถ๏ผ
# GLM API ้
็ฝฎ
GLM-APIKEY=your_glm_api_key_here
# ๅฏ้๏ผ่ชๅฎไนๆจกๅ
GLM_MODEL=GLM-4.7-Flashๆ็คบ่ฏไฝไบ backend/prompts/ ็ฎๅฝ๏ผไฝฟ็จ YAML ๆ ผๅผ๏ผ้ตๅพช LangGPT ็ปๆ๏ผ
role:
name: AgentName
description: Agent ๆ่ฟฐ
skills:
- ๆ่ฝ1
- ๆ่ฝ2
rules:
- ่งๅ1
- ่งๅ2
workflow:
- name: ๆญฅ้ชค1
description: ๆญฅ้ชคๆ่ฟฐ- Fork ๆฌไปๅบ
- ๅๅปบ็นๆงๅๆฏ (
git checkout -b feature/AmazingFeature) - ๆไบคๆดๆน (
git commit -m 'Add some AmazingFeature') - ๆจ้ๅฐๅๆฏ (
git push origin feature/AmazingFeature) - ๆๅผ Pull Request
- LangGraph - Agent ็ผๆๆกๆถ
- FastAPI - Web ๆกๆถ
- ๆบ่ฐฑ AI - ๅคง่ฏญ่จๆจกๅๆๅก
- ๅฎไน ๅง - ๅฒไฝๆฐๆฎๆบ
Made with โค๏ธ by Hao





