Cloud Talent Solution 服务将机器学习技术融入招聘信息搜索体验,可为求职者提供高质量的搜索结果,远超基于关键字的典型方法极限。CTS 以开箱即用的方式,将相关性模型和招聘信息/技能本体应用于您的招聘信息细节。您可以根据求职者的活动来记录客户端事件,从而改善返回给求职者的结果。
本指南概述了利用此功能的两种方法。我们建议您使用 createClientEventRequest
API 方法,原因是该方法避开了使用 Cloud Pub/Sub 向 Cloud Talent Solution 发送消息的身份验证质询,提供了一组干净的 API 来实现分析框架。
使用 createClientEventRequest
记录客户端事件(推荐)
当求职者执行特定操作时,您可以使用 API 来记录该操作。例如,与服务交互的求职者或其他实体已在其视图中呈现一则招聘信息(或招聘信息列表),例如在采用压缩或剪辑格式的搜索结果列表中。在这种情况下,您可以向 Cloud Talent Solution 发送一个 IMPRESSION 事件,以提供该搜索结果的上下文,以及可供求职者查看的内容。此外,当求职者点击某条招聘信息结果以查看其完整的描述时,您可以发送一个 VIEW 事件,记载该求职者对于此职位的兴趣。
用法
以下示例展示了如何使用 API 向 Cloud Talent Solution 发送消息。与服务交互的求职者或其他实体已在其视图中呈现一则招聘信息(或招聘信息列表),例如在采用压缩或剪辑格式的搜索结果列表中。此事件通常与求职者在单个页面上查看招聘信息列表相关。
Python
如需详细了解如何安装和创建 Cloud Talent Solution 客户端,请参阅 Cloud Talent Solution 客户端库。
如需查看可用事件类型的完整列表,请访问事件类型。
使用 Cloud Pub/Sub 来记录客户端事件
要利用此方法,请将结构化消息发送到 Cloud Talent Solution,以捕获求职者对于根据其查询所得结果的反应。这些消息使用 Cloud Pub/Sub 发送到 Cloud Talent Solution。 Cloud Talent Solution 会解析来自租户网站的消息,并将其馈送给机器学习模型。
下文介绍消息格式和 Pub/Sub 请求。
各种场景和工作流
下面两个示例展示了求职者搜索、查看和申请职位的各种场景。
请注意,您只应发布到项目 p-jobs
和主题 cloud-jobs-events
。
工作流 1
求职者执行搜索。 例如:Product mgr SF
系统将搜索结果返回给求职者。
发送回客户服务器的招聘信息搜索响应对象包含唯一的
requestId
(例如:8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==
)。将此requestId
用于未来与此特定 SearchJobsRequest API 调用相关的所有消息。向 Cloud Talent Solution 发送一条
IMPRESSION
消息。事件消息示例:
{ "eventId": "ID1", "eventType": "IMPRESSION", "requestId": "8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==", "relatedJobNames": ["jobs/4000000000", "jobs/4000000001","jobs/4000000002", "jobs/4000000003", "jobs/4000000004"] "eventTimestampMillis": 1494379614309 }
求职者选择一个结果(招聘信息)以查看招聘信息的完整详情。
向 Cloud Talent Solution 发送一条
VIEW
消息。{ "eventId": "ID2", "eventType": "VIEW", "requestId": "8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==", "relatedJobNames": ["jobs/4000000000"] "eventTimestampMillis": 1494379614311 }
求职者申请所查看的职位。
a. 如果系统将求职者重定向到相同域内的一个网页(内部申请页面),则向 Cloud Talent Solution 发送一条
APPLICATION_START
消息。{ "eventId": "ID3", "eventType": "APPLICATION_START", "requestId": "8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==", "relatedJobNames": ["jobs/4000000000"] "eventTimestampMillis": 1494379614310 }
b. 如果求职者被重定向到外部申请页面,则向 Cloud Talent Solution 发送一条
APPLICATION_REDIRECT
消息。{ "eventId": "ID3", "eventType": "APPLICATION_REDIRECT", "requestId": "8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==", "relatedJobNames": ["jobs/4000000000"] "eventTimestampMillis": 1494379614310 }
在求职者完成内部申请时,向 Cloud Talent Solution 发送一条
APPLICATION_FINISH
消息:{ "eventId": "ID4", "eventType": "APPLICATION_FINISH", "requestId": "8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==", "relatedJobNames": ["jobs/4000000000"] "eventTimestampMillis": 1494379614311 }
求职者返回到搜索结果,并继续查看第 2 页结果,即使求职者从未点击过招聘信息及不例外。
向 Cloud Talent Solution 发送一条
IMPRESSION
消息,提供第 2 页中的下一组结果。注意:在SearchJobsRequest
API 调用的响应中生成了一个新的requestId
,该响应会生成结果的第二页。(例如99e5b99c-f1ba-4f85-b17d-ccf878f451f9:APAb7IRESj+/Hzwa3bBd54P3qPx2yOWm5w==
)。{ "eventId": "ID5", "eventType": "IMPRESSION", "requestId": "99e5b99c-f1ba-4f85-b17d-ccf878f451f9:APAb7IRESj+/Hzwa3bBd54P3qPx2yOWm5w==", "relatedJobNames": ["jobs/4000000005", "jobs/4000000006","jobs/4000000007", "jobs/4000000008", "jobs/4000000009"] "eventTimestampMillis": 1494379614400 }
求职者继续浏览搜索结果的第 3 页内容。
向 Cloud Talent Solution 发送一条
IMPRESSION
消息,提供下一组结果。 注意:此时生成了新的requestId
(例如e2d2b916-78c3-4c65-aecc-d8452bc0afb0:APAb7IRvCsNPiRXYkgF8PN5e8BkbFzKOyg==
)。{ "eventId": "ID6", "eventType": "IMPRESSION", "requestId": "e2d2b916-78c3-4c65-aecc-d8452bc0afb0:APAb7IRvCsNPiRXYkgF8PN5e8BkbFzKOyg==", "relatedJobNames": ["jobs/4000000010", "jobs/4000000011","jobs/4000000012", "jobs/400000013", "jobs/4000000014"] "eventTimestampMillis": 1494379614500 }
工作流 2
求职者执行搜索。 例如:Product mgr SF
系统将搜索结果返回给求职者。
职位搜索响应对象包含唯一的
requestId
(例如:a2179a9b-cf73-413e-8076-98af08b991ad
)。此requestId
用于未来与此SearchJobsRequest
API 调用相关的所有的消息。向 Cloud Talent Solution 发送一条
IMPRESSION
消息。{ "eventId": "ID1", "eventType": "IMPRESSION", "requestId": "8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==", "relatedJobNames": ["jobs/4000000000", "jobs/4000000001","jobs/4000000002", "jobs/4000000003", "jobs/4000000004"] , "eventTimestampMillis": 1494379614309 }
求职者选择一个结果(招聘信息)以查看招聘信息的完整详情。
向 Cloud Talent Solution 发送一条
VIEW
消息。{ "eventId": "ID2", "eventType": "VIEW", "requestId": "8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==", "relatedJobNames": ["jobs/4000000000"] "eventTimestampMillis": 1494379614311 }
求职者通过点击,申请一个职位,如 APPLICATION_QUICK_SUBMISSION 中所述。
向 Cloud Talent Solution 发送一条
APPLICATION_QUICK_SUBMISSION
消息,提供下一组结果。{ "eventId": "ID3", "eventType": "APPLICATION_QUICK_SUBMISSION", "requestId": "8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==", "relatedJobNames": ["jobs/4000000000"] "eventTimestampMillis": 1494379614500 }
求职者执行以下操作。
a.求职者返回搜索结果,直接通过搜索结果页面来申请职位。申请流程比 APPLICATION_QUICK_SUBMISSION 中定义的流程更长(也就是说,此为多步骤申请流程)。
向 Cloud Talent Solution 发送一条
APPLICATION_START_FROM_SERP
消息。{ "eventId": "ID4", "eventType": "APPLICATION_START_FROM_SERP", "requestId": "8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==", "relatedJobNames": ["jobs/4000000014"] "eventTimestampMillis": 1494379927500 }
b. 求职者完成职位申请。 向 Cloud Talent Solution 发送一条
APPLICATION_FINISH
消息。{ "eventId": "ID5", "eventType": "APPLICATION_FINISH", "requestId": "8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==", "relatedJobNames": ["jobs/4000000014"] "eventTimestampMillis": 1494379935500
}
求职者返回搜索结果,并直接通过搜索结果页面来申请职位。申请流程将求职者重定向到租户站点以外的另外一个域(外部申请),系统无法跟踪申请者在该域中的申请进度。
向 Cloud Talent Solution 发送一条
APPLICATION_REDIRECT_FROM_SERP
消息。{ "eventId": "ID6", "eventType": "APPLICATION_START_FROM_SERP", "requestId": "8d2bdd5d-1361-42a5-a0fd-bd2b58b7d8fb:APAb7ISd4Sc5faibw2V5hTU/OoC2WAW5AA==", "relatedJobNames": ["jobs/4000000017"] "eventTimestampMillis": 149438807500 }
使用
APPLICATION_REDIRECT
时,求职者重新路由后处于招聘信息描述页面上,而本例不同于这种情况。
事件消息
必填字段:
eventId
(客户定义):发送到 Cloud Talent Solution 的每条消息都必须具有唯一的eventId
。最佳做法是在定义此字段时合并时间戳,以确保不重复。该字段的最大长度为 255 个字符。requestId
是招聘信息搜索响应对象所返回的requestId
值。这个值对于特定SearchJobsRequest
API 调用是唯一的。它用于源自原始搜索IMPRESSION
事件的所有后续消息。在进行新的SearchJobsRequest
API 调用时(例如:求职者转到结果的下一页),requestId
会发生变化。不含 requestID 的任何 pubsub 消息都会被丢弃。
eventType
是一个事件类型,例如VIEW
或IMPRESSION
。(若要查看完整的值列表,请参阅EventType
)。要启用模型改进,至少要提供IMPRESSION
、VIEW
和APPLICATION_START
(和/或APPLICATION_REDIRECT
)这几个字段。relatedJobNames
:这些是在事件发生时向求职者显示的所有招聘信息的职位名称值。对于IMPRESSION
事件,这是页面上所有招聘信息的列表;对于VIEW
事件,则是已查看招聘信息的名称。名称值的格式是 projects/project-id/jobs/12343213 等(定义请参见招聘信息字段)eventTimestampMillis
事件的时间戳,采用自 Epoch 起计的毫秒数形式。此时间戳应体现事件实际发生的时间,而非消息发送的时间。
发送消息
事件消息必须使用特定的项目 ID 和主题 ID 发送到 Cloud Pub/Sub 服务。如需了解相关说明,请参阅快速入门:Cloud Talent Solution 客户端事件微调。