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 — это локальный трекер откликов на стажировки и рабочие места в кампусе — он также подключается к вашей почте и с помощью ИИ превращает письма о вакансиях в карточки откликов.
Это онлайн-сервис, куда я регистрируюсь, или что-то, что я запускаю сам?Вы запускаете его сами: это сервер на FastAPI с веб-интерфейсом на Jinja2 и чистых JS/CSS, который стартует локально или через Docker — облачной версии нет.
Как его запустить?Запустите его на Python 3.10+ или через Docker Compose. Сначала скопируйте env.example в .env; сервер по умолчанию слушает порт 8001.
Что нужно, чтобы работал ИИ-разбор писем?Ваш собственный IMAP-аккаунт и API-ключ ИИ-модели — их нужно ввести на странице Mailbox / AI Assistant в боковом меню; SECRETKEY в .env шифрует эти данные.
Обязательно ли подключать почту, или приложение полезно и без ИИ?Трекер, дашборд и календарь работают сами по себе; ИИ-разбор — это дополнение, которое можно включить позже на странице Mailbox / AI Assistant, как только там появятся IMAP-аккаунт и API-ключ.
Пользоваться можно бесплатно?Да — лицензия MIT, так что можно свободно использовать, изменять и развертывать у себя; платных тарифов нет.
Что ИИ на самом деле делает с найденными письмами?Он забирает письма об откликах по IMAP, извлекает из них компанию, должность, время и статус и автоматически создает или обновляет соответствующую карточку отклика — вручную ничего копировать не нужно.
Что я могу отслеживать по каждому отклику?Смены статусов, приоритет, этапы собеседований и обратный отсчет до каждого из них, а также перетаскивание для изменения порядка и массовые операции в таблице откликов.
Кроме таблицы откликов, какие еще есть представления?Дашборд с общим числом откликов, ожидающимися пунктами и обзором предложений, а также календарь, который собирает все тестовые задания и собеседования в одном месте.
На чем он сделан?На бэкенде FastAPI с SQLAlchemy поверх SQLite, фронтенд на Jinja2 с чистыми JS и CSS, работает на Python 3.10+ под Uvicorn.
Size
1 MB
Stars
247
Updated
CommitAug 17
Age
2mo
Commits · 90 Days