gregherbe76/Hire-Shield

GitHub: gregherbe76/Hire-Shield

HireShield 是一个开源AI系统,用于检测招聘诈骗、幽灵职位和钓鱼企图,帮助求职者避免浪费时间和数据泄露。

Stars: 0 | Forks: 0

HireShield # HireShield **申请前,先辨别职位真伪。** 一款开源 AI 系统,可检测可疑招聘帖、幽灵职位及钓鱼企图——且绝不会直接指控特定公司。 [![在线演示](https://img.shields.io/badge/demo-hire--shield.replit.app-orange?style=flat-square)](https://hire-shield.replit.app) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](LICENSE) [![Node 24](https://img.shields.io/badge/node-24-339933?style=flat-square&logo=node.js&logoColor=white)](https://nodejs.org) [![TypeScript](https://img.shields.io/badge/typescript-5.9-3178C6?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/) [![欢迎提交 PR](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](CONTRIBUTING.md) [**在线演示 →**](https://hire-shield.replit.app)
## 为什么选择 HireShield 求职诈骗与幽灵职位泛滥成灾。求职者们花费数小时精心修改简历,申请那些永远不会被填补的职位,甚至更糟——将个人数据交给了冒充招聘人员的钓鱼团伙。HireShield 为求职者提供对任何职位信息的快速、透明**第二意见**: - 🧪 **启发式优先,LLM辅助。** 确定性 NLP 信号(如紧急性标记、可疑措辞、风格计量学、元数据、重复职位检测)计算信任评分。LLM 仅用于提供定性推理和面向候选人的摘要——绝不单独决定最终判定。 - 🧯 **绝不指控。** 输出以*信任信号*和*置信度*呈现,而非对特定雇主的评判。我们呈现证据和建议行动。 - 🔗 **粘贴文本或 URL。** 输入职位描述,或粘贴 URL——HireShield 会获取并解析职位信息(并支持可选的 JS 渲染回退)。 - 📊 **社区遥测数据。** 跨所有分析的聚合统计:风险分布、最常见检测信号、幽灵职位占比、实时动态。 ## 界面截图 ![HireShield 登录页面](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/60610af09c083516.png) ## 功能特性 - **信任评分 (0–100)**,附带清晰的风险等级——*合规 · 低风险 · 中风险 · 高风险 · 极高风险*。 - **幽灵职位概率**,基于过时性、流动性和语言信号。 - **7维度信号报告**:可疑措辞、紧急性、风格计量学、元数据异常、重复检测、招聘渠道检查及 LLM 推理。 - **面向候选人的摘要**——用通俗易懂的语言说明该职位的实际内容。 - **建议行动**——申请前的具体后续步骤。 - **可分享的永久链接**——每次分析都在 `/analyses/:id` 生成稳定 URL。 - **社区页面**——遥测数据、风险分布图、近期分析实时动态。 - **开放 API**——契约优先的 OpenAPI 规范,生成的 React Query hooks 及 Zod 验证器。 ## 技术栈 | 层级 | 技术栈 | | ------------ | ------------------------------------------------------------------------------------------- | | 代码仓库 | pnpm 工作空间, Node.js 24, TypeScript 5.9 | | 前端 | React 19, Vite, wouter, TanStack Query, Tailwind, shadcn/ui, framer-motion, recharts | | API | Express 5, OpenAI SDK (gpt-5.4 经由 Replit AI Integrations 代理) | | 数据库 | PostgreSQL + Drizzle ORM | | 数据验证 | Zod v4, `drizzle-zod` | | API 代码生成 | Orval (源自 `lib/api-spec/openapi.yaml`) | | URL 抓取 | 原生 `fetch` + `cheerio`, 并以 Apify Website Content Crawler 作为 JS 渲染回退 | ## 仓库结构 ``` hireshield/ ├── artifacts/ │ ├── api-server/ # Express API, mounted at /api │ ├── hireshield/ # React + Vite frontend, mounted at / │ └── mockup-sandbox/ # Component preview server (dev only) ├── lib/ │ ├── api-spec/ # OpenAPI spec — single source of truth │ ├── api-client-react/ # Generated React Query hooks (Orval) │ ├── db/ # Drizzle schema + migrations │ └── nlp-engine/ # Tokenize, tfidf, urgency, stylometry, duplicate-detection └── scripts/ # Workspace utility scripts ``` ## 快速开始 ### 前置条件 - **Node.js 24** - **pnpm 9+** (`corepack enable pnpm`) - **PostgreSQL 14+** (任意服务商——Neon, Supabase, 本地环境等) - 一个 **兼容 OpenAI 的 API 端点** (OpenAI, Azure OpenAI, OpenRouter, 或启用了 OpenAI shim 的本地 Ollama 等) ### 安装依赖 ``` git clone https://github.com/YOUR_USERNAME/hireshield.git cd hireshield pnpm install ``` ### 配置环境 ``` cp .env.example .env # 然后在 .env 文件中填写 DATABASE_URL 和 AI_INTEGRATIONS_OPENAI_* ``` 完整变量列表请参阅 [`.env.example`](.env.example)。仅 `DATABASE_URL` 和两个 `AI_INTEGRATIONS_OPENAI_*` 密钥为必需项。 ### 初始化数据库 ``` pnpm --filter @workspace/db run push ``` ### 运行项目 在两个终端(或两个后台进程)中: ``` # API 地址 http://localhost:8080 pnpm --filter @workspace/api-server run dev # 前端地址 http://localhost:5173 pnpm --filter @workspace/hireshield run dev ``` 打开前端 URL。前端通过 `/api/*` 在相同源站与 API 通信——若在不同主机上运行,请设置代理或调整 API 基础 URL。 ### 全量类型检查 ``` pnpm run typecheck ``` ### 编辑规范后重新生成 API 客户端 ``` pnpm --filter @workspace/api-spec run codegen ``` ## 分析器工作原理 1. **输入标准化。** 粘贴文本或 URL。URL 经 `fetch-posting.ts` 处理——先使用简单的 `fetch + cheerio` 提取器,若页面为 JS 渲染(由 `APIFY_API_TOKEN` 控制),则回退至 Apify Website Content Crawler。SSRF 防护会屏蔽私有 IP 段;响应大小上限为 2 MB,超时时间为 10 秒。 2. **NLP 信号** (`lib/nlp-engine`)。确定性检查产生各维度评分:可疑措辞、紧急性、风格计量学异常、元数据缺失、跨历史重复职位检测。 3. **LLM 推理。** 通过 OpenAI SDK 调用 `gpt-5.4`,设置 `response_format: { type: "json_object" }`。它返回候选人摘要、定性观察结果及幽灵职位概率——但**绝不直接设定信任评分**。 4. **信号融合。** 信号被加权计算,得出最终信任评分和风险等级。LLM 输出作为上下文合并,而非最终判定。 5. **数据持久化。** 每次分析结果存储于 `analyses` 表,并在 `/analyses/:id` 生成永久链接。聚合数据供给 `/community` 页面展示。 ## 架构决策 - **启发式优先,LLM辅助。** 确定性优于幻觉。评分结果可复现。 - **绝不指控。** 所有文案均围绕证据和建议展开,不针对特定雇主下结论。 - **契约优先的 API。** `openapi.yaml` 同时驱动 React Query hooks 和 Zod 验证器。编辑规范后务必重新生成。 - **路径路由的代码仓库。** API 位于 `/api/*`,前端位于 `/`。两者作为单一制品部署于共享代理之后。 ## 安全 如发现漏洞,请**勿**公开创建 issue。请查阅 [SECURITY.md](SECURITY.md) 了解漏洞披露流程。 ## 许可证 [MIT](LICENSE) © HireShield 贡献者。 ## 主题标签 `job-scam-detection` · `ghost-jobs` · `recruitment-fraud` · `phishing-detection` · `nlp` · `openai` · `gpt` · `trust-score` · `typescript` · `react` · `vite` · `express` · `drizzle-orm` · `postgres` · `pnpm-workspace` · `open-source`
如果 HireShield 帮助你避开了诈骗,请为仓库点个星 ⭐ —— 这真的很有帮助。
标签:AI系统, DLL 劫持, GNU通用公共许可证, MITM代理, Node.js, TypeScript, URL解析, 二进制发布, 信任评估, 大语言模型, 安全插件, 幽灵职位识别, 开源工具, 招聘诈骗检测, 数据隐私, 文本分析, 求职安全, 测试用例, 社区遥测, 网络安全, 自动化攻击, 钓鱼攻击防护, 隐私保护