ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Resume Matcher 如何生成求职信并导出其 PDF?

Resume Matcher 如何生成求职信并导出其 PDF? Resume Matcher 如何生成求职信并导出其 PDF【免费下载链接】Resume-MatcherThe #1 AI Harness for Building Resumes, PDFs, Cover Letters more, locally with 100 LLMs support.项目地址: https://gitcode.com/GitHub_Trending/re/Resume-MatcherResume Matcher 的工作流是先建立一份主简历再针对某个职位的 Job DescriptionJD用 LLM 生成一份定制化简历求职信cover letter可以随这次 tailoring 一起生成也可以之后单独补生成最终以 PDF 形式导出。本文覆盖的完整任务是上传主简历 → 提交 JD 生成求职信 →可选编辑 → 导出求职信 PDF。前提是你已能本地运行这个项目Python 3.13、Node.js 22、uv最新AI 提供方Ollama、OpenAI、Anthropic、Gemini、OpenRouter、DeepSeek 之一已配置。准备安装并启动应用按 README.md 的 Quick Start最快路径适合 MacOS、WSL、Ubuntu# Clone the repository git clone https://github.com/srbhr/Resume-Matcher.git cd Resume-Matcher # Backend (Terminal 1) cd apps/backend cp .env.example .env # Configure your AI provider uv sync # Install dependencies uv run app # Frontend (Terminal 2) cd apps/frontend npm install npm run dev打开http://localhost:3000进入 Settings 页面选择 AI provider 并填入 API key本地 Ollama 除外。开发模式下前端默认对接127.0.0.1:8000的 FastAPI 后端。也可以用 SETUP.md 的详细说明或 Docker 方式部署Docker 下 API 统一挂在http://localhost:3000/api。两个后端事实会影响后面的步骤上传的主简历只接受PDF/DOCX且 ≤4MB求职信生成由 feature 开关enable_cover_letter控制默认关闭。生成求职信主路径随简历 tailoring 一起生成在应用中上传主简历PDF 或 DOCX。对应接口是POST /api/v1/resumes/upload后端流程见 API Flow Maps校验文件 → 解析为 Markdown → 调 LLM 转为结构化 JSON状态从processing变为ready失败则为failed。打开Tailor页面/tailor粘贴目标职位的 JD确认生成。按 前端架构文档该页面依次调用POST /jobs/upload→POST /resumes/improve完成后跳转到/resumes/[new_id]。POST /api/v1/resumes/improve的内部流程api-flow-maps.mdPOST /api/v1/resumes/improve ├── Fetch resume job from DB ├── extract_job_keywords() → LLM ├── improve_resume() → LLM ├── [If enabled] generate_cover_letter() → LLM ├── [If enabled] generate_outreach_message() → LLM ├── [If enabled] generate_interview_prep() → LLM ├── db.create_resume(improved) ├── db.create_improvement() └── Return {data, cover_letter, outreach_message, interview_prep}也就是说只有当 Settings 里开启了enable_cover_letter开关improve 请求才会并行调用generate_cover_letter()求职信与定制化简历一起入库并在响应的cover_letter字段返回。若你在 tailoring 前没开这个开关走下面的按需补生成。备选路径对已有简历按需生成如果 tailoring 时没有开启开关或之后想重跑一次可以对已有简历单独调用实现见 routers/resumes.pyPOST /api/v1/resumes/{resume_id}/generate-cover-letter该端点要求目标是一份 tailored resume成功后把新生成的求职信写回该简历的cover_letter字段。UI 上对应 Builder 页 Cover Letter 标签页里的重新生成入口。生成的内容会保存到简历记录中供编辑与导出使用。可选分支Settings 中还可以自定义求职信的 feature promptcover_letter_prompt以及按 i18n 能力以你偏好的语言生成求职信内容generate_cover_letter()会接收 language 参数见 i18n 文档。编辑求职信进入生成后的简历详情页/resumes/[id]即 Builder 页面。Builder 右侧是实时分页预览左侧按Resume | Cover Letter | Outreach标签切换编辑内容自动保存到 localStoragefrontend-architecture.md。在 Cover Letter 标签页修改文字并保存后前端调用PATCH /api/v1/resumes/{resume_id}/cover-letter 请求体{ content: 修改后的求职信文本 }后端将该文本写入简历记录的cover_letter字段并返回Cover letter updated successfully。导出用的就是这份已保存的内容所以修改后需要确认已保存。导出求职信 PDF求职信 PDF 由独立端点生成routers/resumes.py机制与简历 PDF 相同参见 PDF Template GuideGET /api/v1/resumes/{resume_id}/cover-letter/pdf?pageSizeA4pageSize支持A4、LETTER文档默认 A4后端读取该简历的cover_letter字段若为空返回404No cover letter found for this resume后端拼装前端打印路由 URL{frontend_base_url}/print/cover-letter/{resume_id}?pageSize{pageSize}由 Playwright 打开 headless Chromium 渲染等待.cover-letter-print选择器就绪后生成 PDF零页边距、保留背景色最终返回 PDF 字节流响应头为Content-Disposition: attachment; filenamecover_letter_{resume_id}.pdf开发模式下 API base 是127.0.0.1:8000如http://127.0.0.1:8000/api/v1/resumes/{id}/cover-letter/pdf?pageSizeA4Docker 部署下则是http://localhost:3000/api/v1/...。在 UI 中你不需要手动拼 URL——Builder 的 Cover Letter 标签页提供下载按钮前端内部调用的就是这个端点。验证与排查成功判定improve 响应的cover_letter字段非空或按需生成端点返回content导出请求返回 200浏览器下载得到cover_letter_{resume_id}.pdf用 PDF 阅读器打开即可核对版式与文字。已知故障模式来源pdf-template-guide.md 的 Error Handling 一节如果 Playwright 无法连接到前端端点返回 HTTP 503错误信息为Cannot connect to frontend for PDF generation. Please ensure: 1) Frontend is running 2) FRONTEND_BASE_URL matches your frontend URL按该提示核对两点前端进程是否在运行后端配置中的FRONTEND_BASE_URL是否与实际前端地址一致默认值为http://localhost:3000。另外503 与 404 要区分503 是渲染链路不通404 是这份简历根本没有存过求职信——后者应回到上一节先完成生成。后端整体存活可用GET /api/v1/health检查正常返回{status: healthy}该检查不触发 LLM 调用。限制主简历上传限 PDF/DOCX 且 ≤4MB其他格式或超大文件会在上传阶段被拒求职信 PDF 目前仅pageSize一个查询参数简历 PDF 的template、页边距、间距等参数不适用于求职信打印路由打印路由/print/cover-letter/[id]依赖前端进程与FRONTEND_BASE_URL配置两者任一不可用都会导致 503。【免费下载链接】Resume-MatcherThe #1 AI Harness for Building Resumes, PDFs, Cover Letters more, locally with 100 LLMs support.项目地址: https://gitcode.com/GitHub_Trending/re/Resume-Matcher创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表