Classement personnalisé (v3)

La fonctionnalité de classement personnalisé vous permet d'intégrer votre propre logique métier afin de contrôler le classement des postes renvoyés par Cloud Talent Solution. Un demandeur d'emploi qui effectue une recherche sur un site peut définir sa requête de recherche ainsi que d'autres filtres, comme d'habitude. De votre côté, vous pouvez ajouter à la requête de recherche une expression de classement. Cloud Talent Solution détermine les offres d'emploi pertinentes correspondant à la requête définie par le demandeur d'emploi et classe les résultats en fonction de l'expression de classement personnalisée. Une fois le classement terminé, cette liste vous est renvoyée et vous pouvez l'afficher pour le demandeur d'emploi.

Avantages

Le classement personnalisé vous permet de gérer la manière dont les résultats sont répertoriés. L'utilisation d'un classement personnalisé vous permet de définir la pondération que vous assignez à des attributs personnalisés. Vous pouvez utiliser une combinaison de poids et d'attributs personnalisés pour créer une expression de classement personnalisée et ainsi déterminer l'ordre dans lequel les offres sont renvoyées.

Le classement personnalisé est basé sur le service de recherche d'emploi existant. Il exploite les valeurs fournies par n'importe quelle combinaison d'attributs personnalisés définie par le client.

Cas d'utilisation

L'utilisateur final effectue la recherche suivante : "Ingénieur logiciel". L'entreprise souhaite mettre en avant des offres correspondant à "Ingénieur logiciel". L'utilisation du classement personnalisé permet à l'entreprise d'attribuer une valeur à ces offres et de les montrer à l'utilisateur final dans l'ordre déterminé par l'expression de classement personnalisé.

Une entreprise propose deux offres d'emploi presque identiques, le poste A ayant un coût par clic (CPC) supérieur à celui du poste B. Le classement personnalisé peut être utilisé pour améliorer la visibilité du poste A en ajustant la pondération pour baser le classement sur l'attribut personnalisé du CPC.

Utilisation

Le classement personnalisé accepte les opérateurs mathématiques suivants : +, -, *, /, (, )

Vous pouvez utiliser les noms de champ des attributs personnalisés ainsi que ces opérateurs mathématiques pour définir une expression de classement personnalisée.

Par exemple, supposons que vous ayez deux attributs personnalisés : le CPC et l'ancienneté, où l'ancienneté correspond au nombre de jours depuis la publication du poste. Vous souhaitez classer les postes par CPC et par ancienneté, le CPC représentant 75 % du classement et l'ancienneté, 25 %. Vous pouvez créer une expression de classement personnalisée comme suit :

(0.75*CPC) + (0.25 *Freshness)

Exemple de code

L'exemple suivant crée une expression de classement personnalisée qui utilise deux attributs personnalisés, cpc_value et freshness_value, et définit l'expression de classement personnalisée sur (cpc_value / 2) - freshness_value.

Java

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes Cloud Talent Solution.


public static SearchJobsResponse customRanking(String companyName) throws IOException {
  // Make sure to set the requestMetadata the same as the associated search request
  RequestMetadata requestMetadata =
      new RequestMetadata()
          // Make sure to hash your userID
          .setUserId("HashedUserId")
          // Make sure to hash the sessionID
          .setSessionId("HashedSessionID")
          // Domain of the website where the search is conducted
          .setDomain("www.google.com");

  CustomRankingInfo customRankingInfo = new CustomRankingInfo()
      // Both cpc_value and freshness_value are customAttributes for job.
      .setRankingExpression("cpc_value / 2 - freshness_value")
      .setImportanceLevel("EXTREME");

  SearchJobsRequest request =
      new SearchJobsRequest()
          .setRequestMetadata(requestMetadata)
          .setSearchMode("JOB_SEARCH")
          .setOrderBy("custom_ranking desc")
          .setCustomRankingInfo(customRankingInfo);
  if (companyName != null) {
    request.setJobQuery(new JobQuery().setCompanyNames(Arrays.asList(companyName)));
  }

  SearchJobsResponse response =
      talentSolutionClient
          .projects()
          .jobs()
          .searchForAlert(DEFAULT_PROJECT_ID, request)
          .execute();
  System.out.println(response);
  return response;
}

Python

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes Cloud Talent Solution.

def custom_ranking(client_service, company_name):
    request_metadata = {
        'user_id': 'HashedUserId',
        'session_id': 'HashedSessionId',
        'domain': 'www.google.com'
    }
    custom_ranking_info = {
        'ranking_expression': 'cpc_value / 2 - freshness_value',
        'importance_level': 'EXTREME'
    }
    request = {
        'search_mode': 'JOB_SEARCH',
        'request_metadata': request_metadata,
        'order_by': 'custom_ranking desc',
        'custom_ranking_info': custom_ranking_info
    }
    if company_name is not None:
        request.update({'job_query': {'company_names': [company_name]}})

    response = client_service.projects().jobs().search(
        parent=parent, body=request).execute()
    print(response)
    return response