Adding Indeed Apply
Use the Indeed Apply (IA) API to mark your jobs with the Easily Apply label and allow job seekers to apply without leaving Indeed.
The Indeed Apply API takes approximately two to three weeks to implement from start to deployment.
Indeed Apply can be implemented in one of two ways:
- If you maintain an Indeed XML feed, you must add an Indeed Apply element to your feed. See Adding IA using the XML feed for instructions.
- If you do not maintain an Indeed XML feed, you can add the Indeed Apply HTML button to the job description pages on your website. See Adding IA using the HTML button for instructions.
Generating an API token
Before implementing the Indeed Apply API, generate an API token by logging in to your Indeed Advertiser account or creating a new account.
While the integration is the default setting, you must provide your clients with a way to opt-out of Indeed Apply. This opt-out MUST be on a client-level basis, not a job-by-job basis.
Adding IA using the XML feed
If you maintain an Indeed XML feed, add Indeed Apply configuration attributes to an <indeed-apply-data>
element in your existing feed.
Indeed Apply configuration attributes are outlined in the IA Configuration parameters table.
IA XML element example
The following example shows a basic XML feed containing one job and the Indeed Apply element.
Note: The basic job elements are omitted for clarity, but must be present in your feed.
Basic XML feed example
<?xml version="1.0" encoding="utf-8"?> <source> <publisher/> <publisherurl/> <lastBuildDate/> <job> <title/> <date/> <referencenumber/> <url/> <company/> <sourcename/> <city/> <state/> <country/> <email/> <postalcode/> <description/> <salary/> <education/> <jobtype/> <category/> <experience/> <indeed-apply-data> <![CDATA[indeed-apply-apiToken=1234ABCDE&indeed-apply-jobTitle=Professional+Basket+Weaver+%28apply+by+email%29&indeed-apply-jobId=Sample+ID&indeed-apply-jobCompanyName=My+Favorite+Company&indeed-apply-jobLocation=Austin+TX&indeed-apply-jobUrl=http%3A%2F%2Fwww.indeed.com&indeed-apply-postUrl=https%3A%2F%2Fhookb.in%2FPxOjJqJELNH8lZLZDkpz&indeed-apply-questions=https%3A%2F%2Fpastebin.com%2Fraw%2F0vXq9q9b%23]]> </indeed-apply-data> </job> </source>
IA XML element restrictions
The following restrictions apply when configuring Indeed Apply using the XML feed:
- Attributes must be URL encoded.
- If a field is included in the XML feed, it must not be blank.
- Data attributes must include the prefix
indeed-apply-
. Do not usedata-indeed-apply-
as a prefix. - All standard configuration attributes can be passed using the XML feed with the following exceptions. These attributes only work when using the HTML button:
onapplied
onclick
continueUrl
Adding IA using the HTML button
If you do not maintain an Indeed XML feed, you can implement Indeed Apply by adding an HTML button to job description pages on your site. Add Indeed Apply configuration attributes to a span
element with the class indeed-apply-widget
and include JavaScript to enable it.
The Indeed Apply button is not optimized for single-page applications (SPAs) or a webpage that hosts a button that loads the bootstrap.js
script multiple times without reloading the entire page.
Note: If you maintain an XML feed, please use the XML element instructions to enable Indeed Apply for your jobs on Indeed. Using this HTML method will only apply to jobs on your site.
Indeed Apply configuration attributes are outlined in the IA Configuration parameters table.
IA HTML button example
The following example shows the markup required for the Indeed Apply HTML button, including the JavaScript to enable the feature.
HTML button example
<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> <script>(function(d, s, id) { var js, iajs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)){return;} js = d.createElement(s); js.id = id;js.async = true; js.src = "https://apply.indeed.com/indeedapply/static/scripts/app/bootstrap.js"; iajs.parentNode.insertBefore(js, iajs); }(document, 'script', 'indeed-apply-js')); </script>
IA configuration parameters
Whether using the XML feed or the HTML button, set up the Indeed Apply API using the following configuration parameters.
Note: You can add all of these parameters to the Indeed Apply button as HTML5 data attributes. You must include the prefix data-indeed-apply-
to the data attributes.
List of parameters
Parameter name | Required | Description | Example |
---|---|---|---|
joburl |
No | The canonical URL to the complete job description. Encode this URL in XML files. Note: For applications on Indeed, the joburl will be set in the apply button to the specific URL on Indeed where the apply is taking place. |
http%3A%2F%2Fwww.yourcompany.com %2F%0Acareers%2Fyourjob123.html |
jobid |
No | The ID of the job, used for your own internal tracking.
Note: This field can contain a maximum of 256 ASCII characters. |
7775e2bc62b7f77e |
jobtitle |
Yes | The title of the job to display externally. | Test Engineer |
jobcompanyname |
No | The name of the company. | Your Company |
joblocation |
No | The location of the job. | New York, NY 10110 |
jobmeta |
No | Any arbitrary information you want to provide. This information is not displayed externally, but it will be sent when using the apply via post URL. | right-rail-apply-button |
apitoken |
Yes | The public API token provided by Indeed. | your-api-token |
email |
No | The employer email used to send the applications. This is an encrypted value. See the Encryption and decryption section for more information. This field is required if postUrl is not provided.Note: This field is NOT permitted for ATS integrations. This field may only be used by direct employer integrations. |
b18d0be4c173dfa2b7c b7856e7c7b6f02a5638 67a9df67ca208c8b9 654966299 |
locale |
No | If email is provided, the locale will be used to determine the language used when sending the email to the employer. The default language is English (en ).Note: This field will not affect the confirmation email sent to the applicant. |
es |
posturl |
No | The URL to which Indeed will post the application data. Encode this URL in XML files. Note: If email is not provided, postUrl is required. |
http%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 optional , hidden , or required . The default value is optional . |
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 optional , hidden , or required . The default value is required .If you select optional or hidden you must include screener questions.You must support .pdf, .doc, .docx, .rtf, and .txt formats for resumes. |
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. |
firstlastname |
onapplied |
No | A comma delimited list of global JavaScript functions to call when the user has applied to the job. The first and only argument to this function will be the HTMLElement element of this button. Note: This attribute only works when implementing Indeed Apply using the HTML button. |
on_applied_callback |
onclick |
No | A comma delimited list of global JavaScript functions to call when the user clicks on the button. The first and only argument to this function is the HTMLElement element of this button. Note: This attribute only works when implementing Indeed Apply using the HTML button. |
on_click_callback |
advnum |
No | The advertiser number to use when attributing an application conversion. | 1432700306306892 |
questions |
No | A URL which returns a JSON-formatted string of questions to be asked during the Indeed Apply application process. Refer to Including screener questions for more information about creating questions. | |
continueurl |
No | A URL which the jobseeker will be prompted to visit after applying by clicking a Continue button on the application confirmation page. Note: This attribute only works when implementing Indeed Apply using the HTML button. |
http%3A%2F%2Fwww.apply.com %2Fafter-the-apply |
noButtonUI |
No | A boolean flag. When set to true , it disables the standard rendering styles of the Indeed Apply button (typically an orange rectangle). Instead, an unstyled button element will be added to the page. This allows the Indeed Apply button’s appearance to be customized to align with the look-and-feel of the context in which it appears.
Note: This attribute only works when implementing Indeed Apply using the HTML button. |
true|false |
onappliedstatus |
No | A comma-delimited list of global JavaScript functions to call when the Indeed Apply button is rendered for a job.
The first argument to this function is the HTMLElement element of this button. The second argument to this function is a status flag that is set to 1 if the job seeker currently viewing the job has already applied to the job for which the Indeed Apply button is configured. Note: This attribute only works when implementing Indeed Apply using the HTML button. |
<span class="indeed-apply-
|
closeHandler |
No | A comma-delimited list of global JavaScript functions to call when a user clicks the ‘close’ link that appears after a job seeker completes the Indeed Apply workflow and has submitted an application for the job the HTML button is configured for.
The first and only argument to this function is the HTMLElement element of this button. Note: This attribute only works when implementing Indeed Apply using the HTML button. |
|
skipContinue |
No | A boolean flag. When set to ‘true’ this will disable the default screen that appears after a job seeker has submitted an application to the job for which the button is configured.
When used in tandem with the “continueUrl” parameter, this will effectively redirect the job seeker’s entire browser window to the provided continueUrl after an application has been submitted (instead of just keeping the job seeker on the page the button appears on). Note: This attribute only works when implementing Indeed Apply using the HTML button. |
data-indeed-apply- |
Setting up your IA integration
To complete your integration, review the following topics and follow the instructions appropriate for your configuration.
Topic | Description |
---|---|
Application data delivery | Choose whether to receive applications from job seekers through email or posturl. If you choose posturl, learn more about the JSON that must be read and parsed. |
Encryption and decryption | If using Indeed Apply through email, you must encrypt the email to which Indeed sends applications. |
Testing and monitoring your IA integration | Use the Indeed Apply test tool to test your configuration, review the integration checklist before submitting your XML feed, and learn how to monitor your integration to avoid common issues. |
Disposition data integration | Set up a disposition data integration to provide updates about applications status. |
Indeed Apply options
Consider the following options for your configuration:
Topic | Description |
---|---|
Including screener questions | Learn about adding screener questions to the Indeed apply application process. |
Sponsored Jobs ATS Integration | If you are developing an applicant tracking system (ATS), you can allow clients to sponsor jobs on a pay-per-click basis. Read this topic to learn more about sponsoring jobs in your XML feed. |
Next steps
- Maintain an XML feed to have better control over how jobs are displayed. To learn more, see XML Job Feed.
- Before submitting your XML feed to Indeed, refer to the Integration Checklist.
- Be sure to complete your integration as described in Setting up your IA integration and consider the Indeed Apply options.
- Provide updates about application statuses by setting up a Disposition Data integration.
- Explore other topics in Indeed Apply documentation on our home page.