- 概要
- Step 1. Indeedアカウントを作成する
- Step 2. アプリを登録する
- Step 3. NodeJS Expressアプリを作成する
- Step 4. アプリを設定する
- config.jsファイルを作成する
- セッション状態を設定する
- Bootstrapを設定する
- Step 5. XML求人フィードを公開する
- 静的な求人一覧を返す
- npm XMLライブラリをインストールする
- 各求人にsourceNameを追加する
- XML求人フィードのルートを追加する
- Step 6. アプリのホームページを作成する
- Step 7. Indeed APIsを呼び出せるようにアプリを認可する
- Step 8. Sponsored Jobsキャンペーンを作成する
GET /campaign/createルートを作成する- campaign-createビューを作成する
POST /campaign/createルートを作成する- createCampaignメソッドを作成する
- Step 9. Sponsored Jobsキャンペーンを表示する
- キャンペーンを一覧表示する
- Sponsored Jobsキャンペーンの詳細を取得する
- キャンペーンを一時停止、再開、削除する
NodeJS ATSを作成するためのSponsored Jobs API連携ガイド
3-legged OAuthを使用してNodeJS応募者追跡システムを作成します。
Indeed の API の使用について Indeed と書面による契約を締結していない場合、この API またはそのドキュメントを使用することにより、Indeed の API の使用には Indeed API Terms および Additional API Terms and Guidelines が適用されることに同意したものとみなされます。
概要
このガイドでは、ATSパートナー向けに、雇用主がATSを通じてSponsored Jobsキャンペーンを作成できるNodeJS Expressアプリの構築方法を説明します。
- Framework: Node.js
- OAuth: 3-legged OAuth
- Sample code: Sponsored Job Campaigns API

サンプルアプリでは、次の 方法を示します。
- XML求人フィードを使用してATSの求人をIndeedと共有する
- 3-legged OAuthを使用して、雇用主に代わってATSがSponsored Jobs APIを呼び出せるように認可する
/campaignsエンドポイントを呼び出してSponsored Jobsキャンペーンを作成する
GitHubのindeedeng/sponsored-jobs-nodejs-auth-codeからサンプルアプリのコードをダウンロードします。
Step 1. Indeedアカウントを作成する
アプリケーション用のIndeedユーザーアカウントを作成します。
Indeedアカウントを作成するには、次の手順を実行します。
- jp.indeed.comにアクセスします。
- サインインしている場合は、Profileメニューを開き、Sign outを選択します。
- Sign inを選択します。
- **New to Indeed?**を選択します。
- メールアドレスとパスワードを入力します。
Step 2. アプリを登録する
Indeed パートナーになると、Indeed が連携用のアプリを作成します。Partner Console にサインインして、アプリと OAuth 認証情報(クライアント ID、クライアントシークレット、および 3-legged OAuth の場合は認可コード)を確認します。認証情報をアクセストークンと交換し、API 呼び出しを認証します。
OAuth 2.0クレデンシャルタイプには、次の値を入力します。
アプリを登録する 項目 値 Public client アプリがpublic clientかどうかを指定します。
このアプリがATSサイトにATS JavaScript Pluginを組み込む場合は、This application is a public clientを選択します。
Allowed grant types authorization code grant typeを選択します。 Redirect URL 1つ以上のredirect URLsを定義します。
このアプリがATSサイトにATS JavaScript Pluginを組み込む場合は、プラグインを読み込むページのURLを追加します。
Save and continueを選択します。
アプリのレビューを受けるかどうかを指定し、Save and continueを選択します。レビューを省略すると、アプリがレビューされていないことを示す警告がユーザーに表示されます。
必要に応じて追加の会社情報を入力し、Save and continueを選択します。
アプリ情報をプレビューし、Complete registrationを選択します。
ページにはクライアントIDが表示されます。public clientではない場合は、クライアントシークレットも表示されます。これらのクレデンシャルは安全に保管してください。共有したり、公開Gitリポジトリにコミットしたりしないでください。
Step 3. NodeJS Expressアプリを作成する
サンプルのNode.js Expressアプリでは、OAuthクライアントアプリがIndeed APIを呼び出せるように、オープンソースのopenid-clientライブラリを使用します。
Node.js Expressアプリを作成するには、次の手順を実行します。
-
Node.jsとnpmをダウンロードしてインストールします。
-
HandlebarsJSビューエンジンを使用して
Find-TalentExpressアプリを生成します。npx express-generator Find-Talent --view=hbs --git--gitオプションにより、Express用の.gitignoreファイ ルが生成されます。 -
package.jsonファイルがあるディレクトリに移動します。 -
必要なnpmパッケージをインストールします。
npm install -
openid-clientライブラリが含まれるようにpackage.jsonファイルを更新します。npm install openid-client -
package.jsonファイルを更新するオープンソースのAxiosライブラリをインストールします。npm install axios -
Expressアプリを起動します。
npm start -
http://localhost:3000/を開きます。
Welcome to Expressというメッセージが表示された、デフォルトのExpressインデックスページが表示されます。
Step 4. アプリを設定する
Expressアプリを設定するには、設定ファイルを作成し、セッション状態を設定して、Bootstrapを有効にします。
config.jsファイルを作成する
シークレットを保存するには、Find-Talentアプリのルートに、次の内容でconfig.jsファイルを作成します。
const config = { oysterBaseURL: 'https://apis.indeed.com/ads/v1', oauthDiscovery: 'https://secure.indeed.com/.well-known/openid-configuration', oauthClientId: '90f9f4bd6a34cac31daebe1a093a606ce6b34e91ae6cfa139432ae387269a529', oauthClientSecret: 'bML2BGshr8mLng6d1c1qCujH2PgblxEJwW5WqLxpr32XWfAFSonlhIE07buG7Nlr', oauthRedirectURL: 'http://localhost:3000/oauth-callback', scope: 'employer_access offline_access employer.advertising.account.read employer.advertising.campaign', sessionSecret: 'Something Secret!',};
module.exports = config;scope設定に注目してください。この設定には、OAuthアプリに必要な権限であるすべてのスコープが含まれています。
たとえば、Sponsored Jobsキャンペーンを作成するには、employer.advertising.campaignを含めます。
スコープの一覧については、ATSパートナー向けSponsored Jobs APIスコープをご覧ください。
oauthClientIdとoauthClientSecretは、登録済みOAuthアプリのクライアントIDとクライアントシークレットに置き換えてください。Manage app credentialsページで確認できます。
sessionSecret設定は、Expressのセッション状態に使用します。Something Secret!は、任意の新しいシークレットに置き換えてください。
config.jsにはシークレットが含まれているため、このファイルを公開しないでください。たとえば、config.jsを公開GitHubリポジトリに保存しないでください。
セッション状態を設定する
アクセストークンを繰り返し要求しないようにするには、アクセストークンをセッション状態に保存します。Expressアプリでセッション状態を有効にするには、次のコマンドを実行します。
npm install express-session