菜单

Offer 提交与分析

相关源文件

该文档详细概述了 Tech Interview Handbook 平台中的 Offer Submission and Analysis(职位提交与分析)系统。该系统允许用户提交其薪酬 offer,与其他用户的 offer 进行比较,并获得分析性见解。有关浏览和比较 offer 的信息,请参阅 Offer 浏览与比较

概述

Offer Submission and Analysis(职位提交与分析)系统提供以下功能:

  1. 提交带有详细薪酬信息的职位 offer
  2. 分享个人背景信息(教育、经验)
  3. 生成与类似 offer 的对比分析
  4. 保存 offer 档案以供将来参考

该系统通过创建仅可通过生成的编辑令牌访问的匿名档案来优先保护用户隐私。

来源

数据模型

该系统使用几个相互关联的数据模型来存储 offer 信息和分析结果。

来源

主要数据模型

模型描述
OffersProfile (职位档案)用户 offer、背景和分析的主要容器
OffersBackground (职位背景)用户的教育、工作经验和 YOE(工作年限)详情
OffersOffer (职位)单个 offer 详情及薪酬信息
OffersFullTime (全职职位)全职职位专属 offer 详情
OffersIntern (实习职位)实习职位专属 offer 详情
OffersAnalysis (职位分析)与类似 offer 的对比分析
OffersCurrency (职位货币)支持货币转换的货币值

来源

提交流程

Offer 提交过程包含一个多步骤表单,用于收集 offer 详情和用户背景信息。

来源

Offer Details Form (职位详情表单)

Offer Details Form 收集职位 offer 的信息。它支持两种职位类型:

  1. 全职职位 (Full-time offers) - 包括:

    • 职位名称和级别
    • 公司和地点
    • 总薪酬
    • 基本工资、奖金和股票(可选)
    • 收到日期
    • 谈判策略和评论(可选)
  2. 实习职位 (Internship offers) - 包括:

    • 职位名称
    • 公司和地点
    • 月薪
    • 实习周期和年份
    • 收到日期
    • 谈判策略和评论(可选)

用户可以将多个 offer 添加到一个档案中。表单状态使用 React Hook Form 管理。

来源

Background Form (背景表单)

Background Form 收集用户的工作经验和教育信息。

  1. 工作年限 (Years of Experience, YOE)

    • 总工作年限(必填)
    • 特定领域工作年限(可选)
  2. 当前/过往工作

    • 工作类型(全职或实习)
    • 职位名称、公司
    • 薪酬详情
    • 任期和地点(可选)
  3. 教育背景

    • 教育水平
    • 专业领域
    • 学校(可选)

这些信息有助于为 offer 提供背景,并通过与具有相似背景的人的 offer 进行比较,从而实现更准确的分析。

来源

服务器端处理

当表单提交时,数据会经过几个处理步骤:

  1. 数据清理 - 移除空对象和无效的金钱数据
  2. 货币处理 - 将所有货币值转换为基础货币(美元)以进行一致的比较
  3. 档案创建 - 创建新档案或更新现有档案
  4. 令牌生成 - 生成一个唯一的编辑令牌以进行匿名访问
  5. 分析生成 - 将 offer 与类似的 offer 进行比较以生成百分位排名

系统通过相同的流程处理创建和更新操作,具体取决于是否提供了档案 ID 和令牌。

来源

分析系统

Offer 分析系统通过将提交的 offer 与数据库中的类似 offer 进行比较,提供见解。

来源

分析组成部分

分析包含两个主要组成部分:

  1. 总体分析 - 将 offer 与所有公司的类似 offer 进行比较
  2. 公司分析 - 将 offer 与同一公司的类似 offer 进行比较

每次分析提供:

  • 基于薪酬的百分位排名
  • 用于比较的类似 offer 数量
  • 供参考的类似 offer 列表

分析通过交互式组件呈现给用户,带有标签可切换总体视图和公司特定视图。

来源

分析输出

分析通过以下方式提供有意义的见解:

  1. 百分位文本 - 对百分位排名的可读性解释
  2. 公司卡片 - 显示类似的优质 offer 以供比较
  3. 类似 offer 链接 - 允许用户探索更多具有相似特征的 offer

例如,一份分析可能表明用户的 offer 在类似 offer 中处于第 85 百分位,这意味着它比 85% 的可比 offer 要好。

来源

配置文件管理

提交后,用户可以通过以下几种方式管理其 offer 档案:

来源

匿名档案

一项关键的隐私功能是,offer 档案不会自动与用户帐户关联。

  1. 创建档案时,会生成一个唯一的编辑令牌。
  2. 包含令牌的编辑链接允许任何拥有该链接的人编辑档案。
  3. 用户可以复制此链接以供将来参考。
  4. 用户可以选择将档案添加到其帐户,以便更轻松地访问。

此方法确保敏感的薪酬信息保持匿名,同时仍允许用户管理其档案。

来源

API 路由

该系统使用 tRPC 进行类型安全的 API 通信。主要路由包括:

路由器功能描述
offersProfileRoutercreate创建新的职位列表
offersProfileRouterupdate更新现有列表
offersProfileRouterdelete删除列表
offersProfileRouterlistOne检索单个列表
offersProfileRouterisValidToken验证编辑令牌
offersProfileRouterisSaved检查列表是否已保存到用户帐户
offersAnalysisRoutergenerate为列表生成分析
offersAnalysisRouterget检索列表的分析
offersUserProfileRouteraddToUserProfile将列表链接到用户帐户
offersUserProfileRoutergetUserProfiles获取用户的所有列表
offersUserProfileRouterremoveFromUserProfile从用户帐户中删除列表

来源

数据转换

该系统使用映射器将数据库模型转换为 DTO(数据传输对象),供客户端使用。

来源

映射层处理几项重要功能:

  1. 数据结构化 - 将数据组织成清晰的层次结构
  2. 字段映射 - 将数据库字段名映射为更易于开发人员使用的名称
  3. 访问控制 - 根据访问权限过滤敏感信息
  4. 货币转换 - 处理货币转换和格式化

此层有助于在数据库架构和 API 合约之间保持分离,使两者能够独立发展。

来源

货币处理

该系统支持多种货币,并为分析和显示目的执行自动转换。

主要功能

  1. 基础货币 - 所有货币价值都以原始货币和基础货币(美元)存储
  2. 转换实用程序 - 辅助函数可在不同货币之间转换金额
  3. 默认货币检测 - 系统尝试根据用户位置使用适当的货币
  4. 一致的显示 - 用户可以以其首选货币查看所有薪酬

这种方法可以准确地比较来自不同地区和以不同货币显示的职位。

来源

结论

职位提交与分析系统提供了一个全面的解决方案,用于收集、比较和分析工作机会。其主要优势包括:

  1. 注重隐私的设计 - 匿名列表,采用基于令牌的访问
  2. 详细的薪酬数据 - 支持各种薪酬结构
  3. 情境化分析 - 基于职位名称、工作年限和地点等相关因素的比较
  4. 多货币支持 - 国际职位的一致性处理
  5. 用户友好的界面 - 指导性的提交流程和清晰的分析展示

该系统通过提供与市场上类似职位的基于数据的比较,帮助用户就工作机会做出明智的决定。