用OB做招聘系统,如何在人才的笔记属性中表示处于不同招聘职位中的不同状态

请仔细说明自己遇到的问题,以下是参考模板。这里不要求非得按模板发帖,但内容中包含相关要素能让大家更好地帮助你。


遇到的问题

用OB做一个招聘管理系统,想要实现:

  1. 有人才笔记,笔记以姓名命名,属性中用“状态”表示进度:初试,复试,终试,结束
  2. 有职位笔记,以职位名命名,职位属性中有“状态”:开始,进行中,暂停,完成
  3. 一个人可能在多个职位中,是不同的状态,如在职位A中状态是“初试”,职位B状态是“终试”
  4. 如何在人名的笔记中通过属性表示在不同的职位中的不同状态,从而可以通过 dataview 筛选,以在职位中展示目前人才的名单和状态,在人才笔记中展示参与的职位列表和进展。

大家有什么好的解决方法吗?谢谢!

把这个丢给AI就行,下面是把你的问题丢给AI的答案,先声明我没试过,初步看了下,大致的方案没问题,可能有语法错误。
以下是在 Obsidian 中使用 Dataview 实现招聘管理系统的详细步骤和代码示例:

1. 建立人才笔记和职位笔记的基本结构

人才笔记

为每个候选人创建一个以其姓名命名的笔记文件,在文件开头使用 YAML 格式定义属性。以下是一个示例:

---
状态: 初试
职位状态: 
  - 职位A: 初试
  - 职位B: 终试
---

# [候选人姓名]
这里可以记录候选人的详细信息,如简历内容、面试评价等。

在这个示例中,状态 属性表示该候选人整体的招聘进度,职位状态 是一个包含多个键值对的列表,每个键值对表示候选人在不同职位中的状态。

职位笔记

为每个职位创建一个以职位名命名的笔记文件,同样在文件开头使用 YAML 格式定义属性:

---
状态: 进行中
---

# [职位名称]
这里可以记录职位的详细信息,如职位描述、要求等。

2. 使用 Dataview 进行筛选和展示

在职位笔记中展示目前人才的名单和状态

在职位笔记中,使用以下 Dataview 查询代码来展示当前参与该职位招聘的人才名单和他们的状态:

TABLE WITHOUT ID file.link AS 姓名, 职位状态.[[职位名称]] AS 状态
FROM "人才笔记文件夹路径"
WHERE contains(职位状态, [[职位名称]])

请将 "人才笔记文件夹路径" 替换为实际存放人才笔记的文件夹路径,[[职位名称]] 替换为当前职位笔记的名称。这段代码会从指定文件夹中筛选出所有参与该职位招聘的人才笔记,并显示他们的姓名和在该职位中的状态。

在人才笔记中展示参与的职位列表和进展

在人才笔记中,使用以下 Dataview 查询代码来展示该候选人参与的所有职位列表和进展:

TABLE WITHOUT ID key AS 职位, value AS 状态
FROM "职位笔记文件夹路径"
FLATTEN file.frontmatter.职位状态 as item
WHERE file.name = this.file.name
RETURN item.key, item.value

请将 "职位笔记文件夹路径" 替换为实际存放职位笔记的文件夹路径。这段代码会从指定文件夹中筛选出该候选人参与的所有职位笔记,并显示职位名称和对应的招聘状态。

3. 注意事项

  • 确保 Dataview 插件已在 Obsidian 中正确安装和启用。
  • 笔记文件的路径和名称要准确无误,否则查询可能无法正常工作。
  • 如果 YAML 属性的格式或命名发生变化,需要相应地调整 Dataview 查询代码。

通过以上步骤和代码,你可以在 Obsidian 中实现一个简单的招聘管理系统,方便地管理和查看人才和职位的招聘状态。

谢谢回复!
按照这个设置,返回错误,问了AI,给出的修正也查询不到结果