- Generating an API token
- 日本のみ
- 日本以外
- Adding IA by using HTML elements
- IA HTML metadata example
- IA configuration parameters
- Before you begin
- Considerations
- Best practices
- JSON for screener questions
- JSON screener question parameters
- Screener question types
- JSON post example
- Testing your screener questions?
- PostUrl
- JSON application data
- JSON Resume upload example
- IA JSON fields
- POST authenticity
- Using C# (version 6.0)
- Using Java (openjdk version 17.0.4.1)
- Using Perl (version 5.0)
- Using Python (version 3.10)
- Using Node JS (LTS 16)
- Testing IA
- Monitor integration health
- Common integration issues
- Integration checklist
Integrating with Indeed through IA HTML metadata
Integrate with Indeed Apply by using Indeed Apply HTML metadata.
- このAPIおよびそのドキュメントを使用し、統合を構築することで、追加のAPI利用規約およびガイドラインに同意したものとみなされます。
This document is intended for those completing integrations using a non-standard method outside of Indeed's traditional, multi-source feeds.
Job delivery
Indeed handles the acquisition of your clients jobs through web crawling. Make sure your client’s job pages are available to be scraped by third-party sites, and grant the Indeed bot (user agent “IndeedBot 1.1”) access to your domains. Our services regularly check job content for updates to maintain the most accurate list of jobs still available.
In the event that a client no longer wants Indeed to crawl their jobs, they should submit a request using this page.
To facilitate the best possible launch, provide Indeed with a full list of job list URLs for your clients before the integration goes live.
Adding Indeed Apply
Use the Indeed Apply (IA) API to mark your jobs with the Easily Apply label on Indeed and allow job seekers to apply without leaving Indeed.
The IA API takes approximately two to three weeks to implement from start to deployment.
Generating an API token
Before you can implement an Indeed Apply integration, complete these steps:
日本のみ
-
Manage app credentialsページでIndeedアカウントにサインインし、Register new applicationを選択します。
-
アプリ名と説明を入力し、クレデンシャルタイプとしてIndeed Applyを選択して、Save and continueを選択します。
-
Complete registrationを選択します。
Indeed Applyトークンを取得するには、Manage app credentialsページに戻ります。クライアントIDがIndeed Applyトークンです。
日本以外
Indeed Apply XML連携を構築するには、Indeed Client Successチームにお問い合わせください。デベロッパー契約を締結すると、Indeed APIとサービスをお客様のプロダクトに組み込むアプリをIndeedがセットアップします。
アプリとそのIndeed Apply APIトークンクレデンシャルを表示するには、Partner Consoleにサインインします。
- APIトークンクレデンシャルは、クライアントIDとクライアントシークレットです。
- Indeedに投稿する各求人にこのAPIトークンを含めてください。
Adding IA by using HTML elements
Add Indeed Apply configuration attributes to a span> element with the class indeed-apply-widget.
IA HTML metadata example
This example shows the markup required for Indeed Apply through HTML.
<span class="indeed-apply-widget" data-indeed-apply-apiToken="INSERT YOUR APITOKEN HERE" data-indeed-apply-jobId="7775e2bc62b7f77e" data-indeed-apply-jobLocation="New York, NY 10110" data-indeed-apply-jobCompanyName="Your Company" data-indeed-apply-jobTitle="Test Engineer" data-indeed-apply-jobUrl="http://www.yourcompany.com/careers/yourjob123.html" data-indeed-apply-postUrl="http://www.yourcompany.com/process-applications" data-indeed-apply-jobMeta="right-rail-apply-button"> </span>IA configuration parameters
Set up the Indeed Apply API using these configuration parameters.
All parameters should use this format in the span class: data-indeed-apply-”parameter”.
If you currently use HTTP Post URLs, please migrate them to HTTPS immediately. Here is an article that provides instructions for how to convert HTTP → HTTPS.
| Parameter name | Required | Description | Example |
|---|---|---|---|
jobUrl | No | The canonical URL to the complete job description. Encode this URL in XML files. For applications on Indeed, the | http%3A%2F%2Fwww.yourcompany.com%2F%0Acareers%2Fyourjob123.html |
jobId | No | The ID of the job, used for your own internal tracking. This field can contain a maximum of 256 ASCII characters. | 7775e2bc62b7f77e |
jobTitle | Yes | The title of the job to display externally. This value should match the | Test Engineer |
jobCompanyName | Yes | The name of the company. This should match the value provided in the <company> field in the xml. | Your Company |
jobLocation | Yes | The location of the job. | New York, NY 10110 |
jobMeta | No | Arbitrary information. This information does not appear externally, but is sent when using the apply through the post URL. | right-rail-apply-button |
apiToken | Yes | The "Client ID" value generated with your Indeed Apply credentials. See Generating an API Token. | your-api-token |
postUrl | Yes | The URL to which Indeed posts the application data. Encode this URL in XML files. Must be HTTPS. | https%3A%2F%2Fwww.yourcompany.com%2Fprocess-applications |
phone | No | A string value indicating whether the phone number field should be displayed on the job.
Acceptable values are optional, hidden, or required. The default value is optional. | optional |
coverletter | No | A string value indicating if the message or coverletter field is required.
Acceptable values are This field is a freeform text field. If an attachment is expected consider using a screener question to request a file upload. | required |
resume | No | Specifies whether to require a resume, make a resume optional, or to hide the resume upload option from the user. Acceptable values are You must support .pdf, .doc, .docx, .rtf, and .txt formats for resumes. Acceptable values are | required |
name | No | A string value indicating if the name field in the apply form should be split into first and last name (name="firstlastname") or if a single field for the full name is sufficient (name="fullname"). The default value renders a single field for the full name. We recommend using name="firstlastname". | firstlastname |
questions | No | A URL which returns a JSON-formatted string of questions to be asked during the Indeed Apply application process. For more information about creating questions, see Screener questions. Encode this URL in XML files. Must be HTTPS. | https%3A%2F%2Fwww.yourcompany.com%2Fjob1234%2Fquestions.json |
Screener questions
Format screener questions in JSON and post them to a URL (HTTPS) that is included in the data-indeed-apply-questions parameter. Indeed does not host screener questions on your behalf. If your system supports screener questions you must implement them on Indeed Apply to have your integration approved.
Before you begin
Considerations
- You can provide a maximum of 500 questions. However, our data indicates that a sharp drop-off in conversion occurs when more than 20 questions are asked.
- Questions files should be no larger than 1 MB.
Questions files are cached server-side by unique question URLs and refreshed every 20 minutes.
Questions are ONLY cached when they are requested by Indeed when a jobseeker starts the Indeed Apply process.
- The format of
type=dateimpacts how the application is passed to the third party as well as the parsing of min and max. The job seeker still enters the date based on their locale, not the specified format, and validation error messages are in their locale’s format. - For
type=date, useyyyyinstead ofyyin the format to prevent confusion.
Verify the syntax of your JSON file and preview the look of your screener questions using the Indeed Apply Questions tool.
Best practices
- Only include questions that are relevant to the job.
- Include as few screener questions as possible. Remember that some job seekers answer these questions on mobile devices.
- Use the “pagebreak” question type to split your application into logical sections. Indeed inserts pagebreaks by default if none are included in your JSON, but this can split your application up in unintended ways. Indeed displays up to ten questions on each page for both mobile and desktop.
- Do not repeat questions that can be answered from a job seeker’s resume, or have already been collected during the Indeed Apply application process, e.g., basic contact details.
- Follow local laws when determining which questions to ask. Consult your legal department about questions your local laws may prohibit.
- Provide guidance to job seekers when answers require a specific format.
- Indeed uses the SimpleDateFormat, so month must be formatted as
MM. Usingmmcauses misconfiguration.
JSON for screener questions
This topic describes the parameters that you use to build all question types. For examples of specific question types, see Screener question types.
JSON screener question parameters
| Name | Required? | Description | Allowed values | Example |
|---|---|---|---|---|
id | Yes | Unique ID for this question. | any string | strengths |
type | Yes | Describes the type of question. | textarea text select hierarchical multiselect date file information pagebreak | textarea |
question | No for | The question text that applicants see. | any string | Veteran status? |
text | Yes for | Text that applicants see. | any string | These questions are optional. |
options | Yes for | The list of options available in the drop-down menu. | JSON | |
value | Yes for | The value corresponding to each option that is returned for questions with drop-down menus. | any string | 1 |
label | Yes for | The text for options in any drop-down menus. | any string | Female |
required | No | Allows you to set a question as required. When required:true is present, Indeed Apply forces a non-empty text field or a non-empty selection. When the required parameter is not present, questions are optional. If a question is optional, a possible answer value is "". | true | "required":true |
format | Yes for | The accepted format of the input. If used with type:text, the question accepts only integer, decimal, or numeric_text validation answers. If used with type:date, the question only accepts SimpleDateFormat with MM. | Text formats:
| integer, dd/MM/yyyy |
limit | No | For type=text and type=textarea, the character limit for the answer. | any integer | 100 |
min | No | For format=integer or format=decimal, the minimum value for the answer. For type=date, the date that the answer must be on or after. | any integer for | 0 |
max | No | For format=integer or format=decimal the maximum value for the answer. For type=date, the date the answer must be on or before. | any integer for | 100 |
condition | No | Marks a question as conditional, depending on the answer to a previous select question. Specify the id of the previous question as well as the option value that activates this question. For example, you might ask the applicant if they served in the military. If they answer yes, you display a conditional question that asks what branch they served in. | JSON | |
Screener question types
textarea
A question that displays a multi-line text entry field. Used for questions with long-form answers.