1

我想知道是否可以通过 Google Cloud Talent Solution 中的 requisitionId 获取工作。requisitionId在工作中必须是独一无二的,因此它似乎是寻找工作的自然人选。

创建作业时,api 返回一个name可用于查找作业的作业:

您可以通过向 Cloud Talent Solution 发送 GET 请求来检索先前插入的职位的详细信息。URI 应包含原始创建请求返回的先前插入的作业名称,作为 URL 参数。

如果可能,我想避免存储这些名称。在我看来,存储它们会增加不必要的复杂性,因为我已经有了一个独特的requisitionId. 需要明确的是,API 不允许您添加具有重复项的作业requisitionId

工作项目/{my_app_id}/jobs/{google_assigned_id} 已存在。用于跟踪的请求 ID:... 相关工作申请 ID:...

那么我可以通过 查找工作requisitionId吗?

我可以解析返回的错误消息以获取作业名称..但这似乎很脆弱。

4

2 回答 2

2

事实证明,该list方法需要requisitionId一个完整的读取-创建-更新周期,我们可以这样做:

const listRequest = {
  parent: `projects/${projectId}`,
  'filter': `companyName="${companyName}" AND requisitionId="${requisitionId}"`
}
const listResult = await jobService.projects.jobs.list(listRequest)
const existingJobs = listResult.data.jobs || [];

let existingJob = null
if (existingJobs && existingJobs.length > 0) {
  existingJob = existingJobs[0]
}

let googleJob
if (!existingJob) {
  const createRequest = {
    'parent': `projects/${projectId}`,
    'resource': {
      'job': {
        companyName,
        requisitionId,
        title,
        description,
        applicationInfo: {
          emails: ['email@example.com']
        }          
      }
    }
  }
  googleJob = await jobService.projects.jobs.create(createRequest)
  .then(result => result)
  .catch(resp => {
    console.error("ERROR")
    console.error(resp)
  })
} else {
  const patchRequest = {
    'name': existingJob.name,
    'resource': {
      'job': {
        companyName,
        requisitionId,
        title,
        description,
        applicationInfo: {
          emails: ['email@example.com']
        }          
      }
    }
  }
  googleJob = await jobService.projects.jobs.patch(patchRequest)
    .then(result => result)
    .catch(resp => {
      console.error("ERROR")
      console.error(resp)
    })
}

文档:https ://cloud.google.com/talent-solution/job-search/docs/reference/rest/v3/projects.jobs/list?authuser=0&hl=de

笔记:

  • 参数中的双引号filter很重要。它不接受单引号,并且会给出一个神秘的错误信息。
  • parent即使其他所有内容都需要父参数,补丁请求也不能带参数......
于 2018-10-17T22:06:26.383 回答
0

可以将其添加为自定义属性:

Map<String, CustomAttribute> attributes = new HashMap<>();

attributes
    .put("requisitionId", new CustomAttribute().setStringValue(requisitionId)
    .setFilterable(true));

Job job = new Job()
    ...
    .setCustomAttributes(attributes);

Job jobCreated = createJob(job);
String jobName = jobCreated.getName();

然后requisitionId使用自定义属性过滤器搜索:

 JobQuery jobQuery = new JobQuery().setCustomAttributeFilter(filter);

这有点多余,但JobQuery没有方法.setRequisitionId()

这是文档

于 2018-10-17T19:46:38.083 回答