Metadata-Version: 2.4
Name: recruiter-navigator
Version: 0.1.0
Summary: Recruiter Tool Navigator — 招聘工具的统一导航入口
Author-email: Chandler <275737875@qq.com>
License-Expression: MIT
Keywords: cli,hiring,navigator,recruiter,tools
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Requires-Dist: fastapi>=0.100.0
Requires-Dist: jinja2>=3.1.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0.0
Requires-Dist: typer[all]>=0.9.0
Requires-Dist: uvicorn>=0.23.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Description-Content-Type: text/markdown

# Recruiter Navigator

<div align="center">

**招聘工具导航器 — 纯导航 + 极简启动的统一入口**

覆盖 **47 个招聘工具**，提供命令行和 Web 两种交互方式

[![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Status](https://img.shields.io/badge/status-alpha-orange.svg)]()

</div>

---

## 项目简介

**Recruiter Navigator** 是一个招聘工具导航器，为 47 个招聘工具提供统一的导航入口和极简启动机制。

### 核心定位

- **纯导航**：不实现工具的具体功能，只提供导航和启动
- **统一入口**：一个命令访问所有招聘工具
- **双界面**：同时支持命令行（CLI）和 Web 可视化界面
- **工作流可视化**：展示工具间的上下游关系，构建完整招聘流程

### 覆盖场景

| 领域 | 工具数 | 典型工具 |
|------|--------|----------|
| 🔍 人才搜索 | 13 | search-talent、linkedin-horse、maimai-cat |
| 📄 简历处理 | 12 | resume-oneclick、talent-lens、profile-claw |
| ✉️ 候选人触达 | 4 | cold-msg、recruiter-msg、replyme |
| 📊 数据管理 | 8 | excel-toolbox、excel-vis、talent-birdview |
| 🔧 基础设施 | 10 | llmdog、browser-dog、sting-agent |

---

## 快速开始

### 安装

```bash
pip install recruiter-navigator
```

### 基本使用

```bash
# 查看所有工具
recruiter list

# 按分类筛选
recruiter list --category search

# 关键词搜索
recruiter list --keyword linkedin

# 启动工具
recruiter use search-talent

# 初始化本地配置
recruiter init

# 启动 Web 面板
recruiter web
recruiter web --port 9000 --open
```

### Web 界面

启动 Web 服务后，访问 http://localhost:8080：

- **主页**：`/home` — 招聘流程信息图
- **工具列表**：`/` — 工具卡片画廊

---

## 命令详解

### `recruiter list` — 列出工具

```bash
recruiter list                              # 全部列出
recruiter list --category search            # 按分类筛选
recruiter list --keyword resume             # 关键词搜索
recruiter list --config ./my-registry.yaml  # 自定义配置
```

### `recruiter use` — 启动工具

```bash
recruiter use search-talent                 # 启动工具
recruiter use search-talent -- --location "Beijing"  # 传递参数
```

### `recruiter web` — 启动 Web 面板

```bash
recruiter web                               # 默认端口 8080
recruiter web --port 9000 --open            # 指定端口 + 自动打开浏览器
recruiter web --config ./my-registry.yaml   # 自定义配置
```

### `recruiter init` — 初始化配置

```bash
recruiter init                              # 复制到当前目录
recruiter init --output ~/my-tools          # 指定输出目录
recruiter init --force                      # 覆盖已存在文件
```

---

## Web API

| 路径 | 说明 |
|------|------|
| `/home` | 招聘流程信息图 |
| `/` | 工具画廊 |
| `/api/tools` | 工具列表 JSON |
| `/api/tool/{name}` | 工具详情 JSON |
| `/api/launch-guide/{name}` | 启动指引 JSON |
| `/api/workflow-graph` | 工作流拓扑 JSON |

---

## 自定义配置

```bash
recruiter init                    # 生成 registry.yaml
vim registry.yaml                 # 编辑添加工具
recruiter list --config ./registry.yaml
recruiter web --config ./registry.yaml
```

配置文件结构：

```yaml
tools:
  - name: my-tool
    display_name: "My Tool"
    description: "工具描述"
    category: search
    pypi_url: "https://pypi.org/project/my-tool/"
    launch:
      mode: cli
      command: "my-tool"
    docs:
      readme: "# My Tool\n> 描述"
      use_cases:
        - "使用场景1"
      workflow:
        prev_tools: []
        next_tools: [resume-oneclick]
      quick_start:
        install: "pip install my-tool"
        command_example: "my-tool --help"
        expected_output: "显示帮助"
      tags:
        - "#自定义"
```

---

## 技术架构

```
┌─────────────────────────────────────┐
│         CLI 层 (cli/)               │  ← 用户交互
│  init / list / use / web            │
└─────────────────┬───────────────────┘
                  │
┌─────────────────▼───────────────────┐
│       核心层 (core/)                 │  ← 业务逻辑
│  models / registry / launcher        │
└─────────────────┬───────────────────┘
                  │
┌─────────────────▼───────────────────┐
│       数据层 (data/)                 │  ← 静态配置
│       registry.yaml                  │
└─────────────────────────────────────┘
```

### 技术栈

- **CLI**：typer[all] + rich
- **数据**：pydantic + pyyaml
- **Web**：fastapi + uvicorn + jinja2
- **前端**：alpine.js + tailwindcss

---

## 项目结构

```
recruiter_navigator/
├── __init__.py
├── cli/
│   ├── app.py          # Typer 主入口
│   ├── init.py         # recruiter init
│   ├── list.py         # recruiter list
│   ├── use.py          # recruiter use
│   └── web.py          # recruiter web
├── core/
│   ├── models.py       # Pydantic 数据模型
│   ├── registry.py     # YAML 注册表加载器
│   └── launcher.py     # 工具启动逻辑
├── data/
│   └── registry.yaml   # 47 个工具元数据
└── web/
    ├── app.py          # FastAPI 应用工厂
    ├── routes/
    │   ├── detail.py   # /api/tool/{name}
    │   ├── home.py     # /home 信息图
    │   └── index.py    # / 工具画廊
    ├── templates/
    │   ├── base.html
    │   ├── home.html
    │   └── index.html
    └── static/css/
        ├── base.css
        ├── common.css
        └── home.css
```

## License

MIT