offerflow README

The project's README from github.com/Xiangyahaian/offerflow. As one markdown file: README.md.

OfferFlow

License: MIT Python FastAPI

核心亮点:AI 解析求职邮箱。
绑定你的邮箱(IMAP)并配置 AI 模型后,OfferFlow 会自动读取笔试 / 面试 / Offer 等邮件,抽取公司、岗位、时间与状态,并回填到投递表——不用再手动抄邮件内容。

在此之外,它还是一套本地优先的实习 / 校招投递管理工具:表格跟踪进度、面试倒计时与日历视图,数据存在本机 SQLite,无需注册登录。

校招投递页面截图

Features

Tech Stack

Layer Stack
Backend FastAPI · SQLAlchemy · SQLite
Frontend Jinja2 · 原生 JS / CSS
Runtime Python 3.10+ · Uvicorn

Quick Start

Requirements

Run locally

git clone https://github.com/Xiangyahaian/offerflow.git
cd offerflow

python -m venv .venv
# Windows
.\.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate

pip install -r requirements.txt
cp env.example .env   # Windows: copy env.example .env

# optional: load sample applications
python scripts/seed_demo.py

python run.py

Open http://localhost:8001

Run with Docker

docker compose up -d --build

App: http://localhost:8001
Database file: ./data/offerflow.db

Configuration

Copy env.example to .env and adjust as needed:

Variable Default Description
PORT 8001 Server port
DATABASE_URL sqlite:///./offerflow.db SQLite path
ENV development Use production to disable reload and /docs
SECRET_KEY (example) Used to encrypt IMAP / AI API keys

启用 AI 邮箱解析(核心功能): 在侧边栏打开邮箱 / AI 助手页面,填写 IMAP 账号与 AI 模型 API Key;之后即可自动拉取并解析求职邮件。SECRET_KEY 用于加密这些凭据。

Project Structure

offerflow/
├── run.py                 # entrypoint
├── requirements.txt
├── env.example
├── Dockerfile
├── docker-compose.yml
├── backend/               # FastAPI app, models, routers
├── frontend/              # templates + static assets
├── scripts/seed_demo.py   # sample data
└── docs/screenshots/      # README screenshots

API

With ENV=development, interactive docs are available at /docs.

Endpoint Description
/api/campus Campus applications
/api/internships Internship applications
/api/dashboard/stats Dashboard stats
/api/mail Mailbox / IMAP
/api/ai-assistant Mail AI parsing

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

  1. Fork the repository
  2. Create your branch (git checkout -b feature/awesome)
  3. Commit your changes
  4. Open a Pull Request

License

Released under the MIT License.

offerflow (Xiangyahaian/offerflow)

Searching Database…

这是什么?OfferFlow 是一个本地优先的实习和校园招聘投递记录工具——它还能连接你的邮箱,用 AI 把求职邮件自动整理成投递记录。
它是需要注册使用的在线服务,还是我自己在本地运行的?由你自己运行:这是一个 FastAPI 服务,浏览器界面用 Jinja2 和原生 JS/CSS 搭建,可以在本地启动,也可以用 Docker 运行——没有托管版本。
怎么把它跑起来?用 Python 3.10+ 或 Docker Compose 运行。先把 env.example 复制为 .env;服务默认监听 8001 端口。
要让 AI 解析邮件,我需要准备什么?需要你自己的 IMAP 邮箱账号和一个 AI 模型的 API 密钥,在侧边栏的 Mailbox / AI Assistant 页面填写;.env 里的 SECRETKEY 会对这些凭据进行加密。
必须连接邮箱吗?不用 AI 功能它也有用吗?投递记录、仪表盘和日历功能单独就能用;AI 解析是可选的附加功能,等你在 Mailbox / AI Assistant 页面填好 IMAP 账号和 API 密钥后随时可以开启。
免费吗?免费——它采用 MIT 许可证,你可以自由使用、修改和自托管,没有任何付费套餐。
AI 对找到的求职邮件具体做什么?它通过 IMAP 拉取求职相关邮件,提取公司、职位、时间和状态,然后自动创建或更新对应的投递记录——不需要手动复制粘贴。
每条投递记录我可以记录哪些内容?状态流转、优先级、面试轮次和每场面试的倒计时,投递列表还支持拖拽排序和批量操作。
除了投递列表,还有哪些视图?有一个仪表盘,展示投递总数、待办事项和 offer 概览;还有一个日历视图,把所有笔试和面试集中在一处查看。
它是用什么开发的?后端是 FastAPI 加上基于 SQLite 的 SQLAlchemy,前端用 Jinja2 配合原生 JS 和 CSS,在 Python 3.10+ 上通过 Uvicorn 运行。
Size
1 MB
Stars
247
Updated
CommitAug 17
Age
2mo
Commits · 90 Days