Job search API 参数:最佳做法 (v3)

配置 API

影响搜索结果的因素

将“精选职位”、“启用扩展”和“停用关键字匹配”一起使用,会对返回给求职者的职位数量和相关性产生重大影响。 这三个因素的最合适配置取决于您的业务需求。 确定最优配置的最佳方式是在测试阶段应用不同的测试场景并评估结果。

  1. 精选职位:您可以使用精选职位为各个职位分配推广值,以便突出显示对您的业务需求而言更为重要的职位。如需了解最佳做法和实现详情,请参阅精选职位文档。

  2. disableKeywordMatch:借助此参数,API 除了能够返回通过机器学习算法确定的相关结果之外,还能返回关键字匹配结果。默认设置为 false。保留默认设置,意味着 CTS Job search API 会返回那些单纯机器学习算法不会返回,但由于标题或职位说明中包含与求职者查询字符串匹配的关键字而被返回的职位。 将此参数设置为 true 会停用关键字匹配,因此会返回较少的职位(仅限于机器学习功能确定的相关职位)。

  3. enableBroadening:借助此参数,您可以通过放宽求职者对地点和职位类别指明的限制来扩展求职者查询。该参数默认设置为 false,并在设置为 true 时启用。它用于增加返回的搜索结果的数量。

搜索配置结果

要仅返回最相关的职位:请将 disableKeywordMatch 设置为 true,并将 enableBroadening 设置为 false。这会提高搜索相关性方面的 API 性能指标,因为只会返回相关的职位。 不过,搜索结果中返回的总体职位较少。

要返回更多数量的职位,同时包括相关结果和关键字匹配的结果:请将 disableKeywordMatch 设置为 false,并将 enableBroadening 设置为 false。关键字匹配的结果会列在结果中相关的职位之后,但不会返回查询扩展结果。

要返回更多数量的职位,同时包括相关的职位和查询扩展的职位:请将 disableKeywordMatch 设置为 true,并将 enableBroadening 设置为 true。求职者的查询会扩展为包括相关的职位类别和附近的地点,列在相关的结果之后。 不会返回基于关键字的匹配结果。

要返回尽可能多的职位:请将 disableKeywordMatch 设置为 false,并将 enableBroadening 设置为 true。Job Search API 返回的搜索结果中,最相关的职位在前面,然后是关键字匹配的职位和查询扩展的职位(按地点、职位类别等)。这样会最大限度地增加返回的职位总数。

diasableKeywordMatch enableBroadening 结果
- - 返回更多数量的职位,同时包括相关的结果和关键字匹配的结果(但假设精选职位设置为“false”)。
+ + 返回更多数量的职位,同时包括相关的职位和查询扩展的职位(但假设精选职位设置为“false”)。
- + 返回最大数量的职位(但假设精选职位设置为“false”)。
+ - 仅返回最相关的职位(但假设精选职位设置为“false”)。

Request.page_size

为达到最佳效果并避免延迟,请将结果页面设置为一次显示 20 个或更少的职位。

customAttributes

通过 customAttributes,您可以灵活地根据您的业务需求为职位分配附加值(例如,GPA 得分),并使用这些值来过滤结果。

地点字段

您可以在地点字段页面中找到地点字段的详细概览。在地址字段中提供职位的街道地址而不是 GPS 坐标有助于 API 改进地点检测和搜索相关性。

locationFilter

如果一家公司在不同地理区域有多个空缺职位,请使用 regionCode。为每个列表分配 regionCode 可确保搜索查询仅返回求职者有意愿的地点的职位,而不是针对该公司的全局结果。例如,如果在没有设置 regionCode 的情况下搜索地点关键字“Cambridge”,将同时返回来自英国剑桥和美国马萨诸塞州剑桥的结果。这会降低搜索相关性。

Region_codeLanguage_code

设置 request.filters.location_filters.region_code 可以匹配用户正在搜索的地理位置(例如英国)。将 request.filters.language_code 设置为该区域的相应语言代码(在本示例中为 en_GB),以便 API 可以使用本地化搜索逻辑(例如,在 en_GB 为“lorry driver”,而在美国为“truck driver”)。

radiusinMiles

此参数设置求职者指示地点周围的半径(以英里为单位)范围。 API 返回此地理范围内的结果。 该距离如何应用于搜索结果的地理位置取决于输入的地点信息的类型。如果求职者输入街道地址,则 radiusInMiles 距离以单个点为设置基准。如果求职者输入城市,则 API 会在城市界限上应用边界框并计算与边界框边缘的距离。如果用户仅输入州或国家/地区,则忽略 radiusInMiles

确保以英里为单位的半径值尽可能小。将半径值设置为较大的范围会返回可能在求职者有意愿的地点范围外的结果,从而降低相关性。例如,在 radiusInMiles 设置为 100 英里时搜索纽约市的职位会同时返回纽约上州和新泽西州的结果。设置尽可能小的半径值会提高结果的相关性。

postingExpireTime

此参数设置招聘信息帖子在从搜索结果中移除之前处于活跃状态的时间长度。默认值为职位创建时间后的 30 天(采用 UTC 时区)。

Job_employment_type

这不是必需字段,但使用 Job_employment_type 会提高职位搜索结果的相关性。

配置 API:自定义排名

精选职位使您能够通过单个变量 (promotionValue) 影响搜索结果并突出显示某些职位。如需了解详情,请参阅精选职位文档。自定义排名使您能够根据多个变量影响结果,更好地控制排名,不受相关性的影响。此功能对于需要平衡相关性与经济利益的应用非常有用,例如,多层级每次点击费用 (CPC) 订阅者系统。 对职位如何在现有相关性得分之上进行排名的影响基于两个变量:rankingExpressionimportanceLevel

  • rankingExpression:此变量控制如何根据职位的现有相关性得分(由 API 算法确定)对职位进行排名。必须将“rankingExpression”设置为“filterable”,这样 API 才能将该参数编入索引。

  • importanceLevel:此参数设置职位在搜索中返回时的排名位置的重要性级别。有六个不同的级别:Unspecified、NONELOWMIDHIGHEXTREME。将值设置为 EXTREME 意味着忽略所有其他 API 生成的相关性因素,因此请谨慎使用此值。设置为 EXTREME 的职位列在求职者查询搜索结果的最前面,而不是最相关的职位。

  • 精选职位自定义排名:除了相关性排名之外,精选职位最适合推广单一类别的职位(例如,某家公司的职位)。如果除了相关性排名之外,您还需要根据多层级 CPC(每次点击费用)变量对职位进行排名,则自定义排名是一种更好的选择。

通勤时间搜索可帮助求职者根据通勤时间搜索职位。 要启用通勤时间搜索,请在 JobQuery.commuteFilter 字段中再包含一个 CommuteFilter 对象。通过此对象,求职者可以选择 commuteMethodtravelDurationstartCoordinates。计算通勤时间时,求职者还可以选择 roadTrafficTRAFFIC_FREEBUSY_HOUR)和 departureTime 等选项。如需了解详情,请参阅通勤时间搜索实现操作方法页面。

数据管理和错误处理

数据完整性

  1. 上传职位:数据问题可能会导致职位无法上传到 API。如需了解详情,请参阅 HTTP 响应代码页面。一些常见示例:

    • 职位地点不正确,因此无法解析请求。
    • 公司或职位字段不存在,返回错误请求。

    对职位上传问题进行排查有三个主要选项:

  2. 将职位编入索引:Job search API 可用于在设定的时间段内将所有上传的职位编入索引。但是,您可能受到某些配额限制。 在将职位发送到 CTS 之前,请务必检查系统是否对将请求编入索引进行限制。

错误处理机制

错误处理对于避免因自身原因引发 DDoS 攻击而导致求职者被锁定至关重要。通过互联网提供的 API 服务还可能出现间歇性连接故障、长时间停机、突发服务维护以及需要客户端应用重试 API 请求的其他事件。必须以网络友好型行为设计此类重试,例如采用指数退避算法

重复数据删除

重复的职位会对求职者的搜索体验产生负面影响。Job search API 包含两个最大限度减少重复项的功能:

  1. 创建职位:如果您尝试使用以下条件创建 2 个以上的职位,则记录将被拒绝,您将遇到 4xx 错误:

    • 相同的 companyName,以及
    • 相同的 job_req_id,以及
    • 相同的地点/languageCode
  2. 搜索职位:CTS Job search API 会显示与求职者的搜索查询相关的职位。 相关性算法的内置功能可确保返回的所有职位的多样化,防止几乎相同的职位在搜索结果中彼此相邻显示。