Job Sync XML feed reference
Use an XML feed to define your jobs and how they appear on Indeed.
- By using this API and its documentation and building an integration, you agree to the Additional API Terms and Guidelines.
Indeed does not support HTML entities in XML feeds. Use literal characters instead of HTML entities (such as < instead of <). HTML entities can cause Indeed to reject or incorrectly format the content.
Basic feed nodes
Basic feed nodes define general details for an XML feed, including the XML version and encoding, and ATS information (for ATS developers.)
When integrating a feed, if Indeed requests specific feed modifications, you must make the necessary corrections. If you do not make the required corrections, Indeed might reject the feed loading request or stop loading feeds that are already active.
| Element | Description |
|---|---|
Required XML declaration. Example: | |
Required Root node for the XML feed document. | |
ATS developers only Name of the ATS from which this job was published. Example: | |
ATS developers only URL for the ATS from which this job was published. Example: | |
Required Job-specific metadata. Define one |
Job feed elements
Job feed elements define job-specific metadata for a node.
| Element | Description |
|---|---|
Required (Except in Japan) Title of the job. Exclude salary, employment type, location, descriptions, and headlines. See also Misleading Content and Activities. Example: <![CDATA[Sales Executive]]> | |
Required Date when this job was first published. Use ISO-8601 format. If your site shows the publish date, it must match the XML date. Example: <![CDATA[2014-12-19T22:49:39Z]]> | |
Required Unique ID for this job instance. Jobs posted in multiple locations must have unique values. Do not change after setting. Example: <![CDATA[unique123131]]> | |
Required Requisition ID for a job (formerly external job ID). Your system likely uses this value to track the original role and applicants. Might appear on your public career page. Must be the same for each posting across feeds and locations. Might not be unique. Example: <![CDATA[ab1212]]> | |
Job ID. Provide only when Used by Indeed integrations like Candidate Sync to send candidate information to your system. Example: <![CDATA[ab1212]]> | |
Required URL for this job listing on your site. Use the job description page URL, not the application page. Include Example: | |
Required Parent organization hiring for the role. For subsidiaries or franchises with multiple locations, use the same Example: <![CDATA[[ABC Hospital]]> | |
ATS developers only Required Parent organization hiring for the role. For subsidiaries or franchises with multiple locations, use the same Example: <![CDATA[ABC Medical Group]]> | |
Required City where this job is located. Example: <![CDATA[Phoenix]]> | |
Required State where this job is located. Use postal abbreviations. Outside the US, use the corresponding province or region. Example: <![CDATA[AZ]]> | |
Required Country where this job is located. Example: <![CDATA[US]]> | |
Required if on the career site Postal code where this job is located. Example: <![CDATA[85003]]> | |
Required if on the career site Street address of the job's primary work location. Include street name and number. Indeed uses this for location-based search and display. Example:
| |
Required Email associated with the Indeed account for this client. Required by the Indeed Search Quality team to verify the business entity posting the job. Example: | |
Required Job description that appears to job seekers on Indeed. Match the content and order on your Indeed might filter out buttons or link text that does not fit the Indeed context. Include HTML formatting. See Formatting guidelines for supported elements. Example: | |
Required if on the career site Salary offered for this job. For best practices, see How to Display Pay Information in Job Postings. If a job does not have a salary, leave the field blank in the XML for that job. Indeed may also extract salary information directly from job descriptions in addition to, or instead of, the salary information you define in Indeed may not display salary or other pay data provided in this XML field if the data is not entered in the correct numerical format. For best, most predictable results, provide salary information in this XML field, as recommended by best practices. Examples: <![CDATA[$50000 per year]]><![CDATA[$4000 - $5000 per month]]><![CDATA[年収500万円]]><![CDATA[月給40万円~50万円]]> | |
Required if on the career site Education level desired for this job. Example: <![CDATA[Bachelors]] | |
Required if on the career site Type of job, full- or part-time. Indeed might also extract this information directly from other provided job content. Example: <![CDATA[fulltime, parttime]] | |
Comma-delimited list of job categories that help job seekers when searching. Indeed highly recommends that you include this field for job management, to help clients sponsor jobs based on a category, or to reflect additional information from the job details page. For example, you might find it useful to include facility or department information in this field. Example: <![CDATA[Category1, Category2, CategoryN]]> | |
Required if on the career site Experience desired for this job. Example: <![CDATA[5+ years]]> | |
Required if on the career site Date when active hiring for a role concludes. After this date, Indeed might remove the job from search results. By default, data is interpreted by using the CST time zone. Example: <![CDATA[2021-11-08]]> | |
Note: This feature is not available in Japan. Unique URL for the job, which Indeed uses to track clicks on this job. Indeed creates a Example: | |
Type of remote work. A valid value is:
For more information about remote jobs, see these sections in the How to post a remote job on Indeed article (Japanese Article):
For additional text that you can include in the job, see XML feed FAQ. Indeed does not use this element's data to determine location. For information about posting jobs remotely, see XML feed FAQ. Example: <![CDATA[COVID-19]]> | |
Most recent timestamp of any action that your system made to this job. This action can include candidate review, job update, and so on. Example: <![CDATA[2014-12-19T22:49:39Z]]> | |
Identifier for use by clients internally to help identify their own business units. Example: abc123 | |
Controls whether the job post appears in Indeed search. A reason code is required:
Example: <![CDATA[OPT_OUT]]> |
XML feed example
This example XML feed defines one job:
<?xml version="1.0" encoding="utf-8"?><source> <!--publisher is applicable to ATS developers only--> <publisher>ATS Name</publisher> <!--publisherurl is applicable to ATS developers only--> <publisherurl>http://www.atssite.com</publisherurl> <job> <title> <![CDATA[Sales Executive]]> </title> <date> <![CDATA[2021-06-29T22:49:39Z]]> </date> <referencenumber> <![CDATA[unique123131]]> </referencenumber> <requisitionid> <![CDATA[ab1212]]> </requisitionid> <url> <![CDATA[http://www.examplesite.com/viewjob.cfm?jobid=unique123131&source=Indeed]]> </url> <company> <![CDATA[ABC Hospital]]> </company> <sourcename> <![CDATA[ABC Medical Group]]> </sourcename> <city> <![CDATA[Phoenix]]> </city> <state> <![CDATA[AZ]]> </state> <country> <![CDATA[US]]> </country> <postalcode> <![CDATA[85003]]> </postalcode> <streetaddress> <![CDATA[123 fake street Phoenix AZ, 85003]]> </streetaddress> <email> <![CDATA[example@abccorp.com]]> </email> <description> <![CDATA[Do you have 1-3 years of sales experience? Are you relentless at closing the deal? Are you ready for an exciting and high-speed career in sales? If so, we want to hear from you! [...] We provide competitive compensation, including stock options and a full benefit plan. As a fast-growing business, we offer excellent opportunities for exciting and challenging work. As our company continues to grow, you can expect unlimited career advancement! ]]> </description> <salary> <![CDATA[$50000 per year]]> </salary> <education> <![CDATA[Bachelors]]> </education> <jobtype> <![CDATA[fulltime, parttime]]> </jobtype> <category> <![CDATA[Category1, Category2, CategoryN]]> </category> <experience> <![CDATA[5+ years]]> </experience> <expirationdate> <![CDATA[2021-11-08]]> </expirationdate> <remotetype> <![CDATA[Fully remote]]> </remotetype> <indeed-apply-data>COVERED IN A LATER SECTION</indeed-apply-data> </job></source>This XML feed renders this Indeed job listing:

Formatting guidelines
When you define job descriptions in the XML feed, include HTML formatting in CDATA tags. Indeed expects the same HTML formatting in CDATA tags that you use on your website.
Rather than strictly complying with HTML standards, Indeed normalizes and renders HTML content in a standardized format to job seekers.
Indeed does not support HTML entities in XML feeds. Use literal characters instead of HTML entities (such as < instead of <). HTML entities can cause Indeed to reject or incorrectly format the content.
| Tag | Description |
|---|---|
<b> | Bold text. |
| Header. Text in header tags appears in consistent sizes on Indeed. |
<br> | Single line break. |
<p> | Paragraph. Indeed automatically inserts an empty line between paragraph tags. |
<ul> | Unordered, or bulleted, list. |
<li> | List item. |
<strong> | Strong, or bold, text. |
<em> | Emphasized, or italicized, text. |
| Simple table. |
| Node | Description |
|---|---|
| Bold text. |
| Inline text. By default, |
The <p> tag has positive top and bottom margins and padding by default. Do not override this.
About new element settings
Japan only.You can configure the following new elements in addition to existing elements (optional).
- Keywords and image URLs can be specified as comma-separated multiple values.
- New elements are currently being tested and gradually implemented on Indeed. Elements you specify are not guaranteed to be displayed. Contact your assigned Alliance Manager for details.
- When you add (or modify) existing or new elements, you need to request that Indeed add the corresponding element configuration on the Indeed side. Notify Indeed when you make changes.
Other notes
Japan only.- Update the feed at least once per day.
- Ensure that the XML feed content and the job detail page content contain exactly the same information.
- Do not include test jobs, job board jobs, or shopping mall jobs.
Formatting guidelines (Japan)
Japan only.When defining job descriptions in the XML feed, include HTML formatting inside CDATA tags. Use the same HTML formatting in the CDATA tags that you use on your website.
HTML content is normalized and displayed to job seekers in a standardized format that does not strictly conform to HTML standards.
Indeed does not support HTML entities. For example, use < instead of the HTML < entity.
HTML that does not conform to formatting guidelines might be rejected by Indeed or cause formatting issues.
Indeed supports the following HTML tags:
| Tag | Description |
|---|---|
<b> | Bold. |
| Headers. Note: Text in header tags is converted to a consistent size when displayed on Indeed pages. |
<br> | Single line break. |
<p> | Paragraph. Indeed automatically inserts blank lines between paragraph tags. |
<ul> | Unordered list (bulleted list). |
<li> | List item. |
<strong> | Bold text. |
<em> | Emphasized text (italic). |
| Basic table. Indeed displays tables with line breaks for each cell. |
Indeed also supports the following computed style nodes:
| Node | Description |
|---|---|
<font style="font-weight:bold">Some bold text</font> | Bold. |
<div> <h2 style="display:inline">Label: </h2> Text </div> | Display inline text. By default, |
Use positive numbers for margin and padding values above and below paragraph tags. This is the default behavior of <p> tags.
Formatting example
This example formats a job description:
English
<description> <![CDATA[<h2 id="job_description">Job Description:<ul><li>Do you have 1-3 years of sales experience?</li><li> Are you relentless at closing the deal? </li><li>Are you ready for an exciting and high-speed career in sales? If so, we want to hear from you!</li></ul><font style="font-weight:bold">Benefits</font><p>We provide competitive compensation, including stock options and a full benefit plan. As a fast-growing business, we offer excellent opportunities for exciting and challenging work. As our company continues to grow, you can expect unlimited career advancement! </p>]]></description>Japanese
<description> <![CDATA[<h2 id="job_description">仕事内容<ul><li>1~3年のセールスの経験をお持ちの方。</li><li> 取引成立に向けて全力で挑める方。 </li><li>セールス業界で、急成長を続ける活気に満ちた環境でのキャリアをお探しの方。連絡をお待ちしています。</li></ul><font style="font-weight:bold">福利厚生</font><p>ストックオプションや充実した福利厚生など、魅力的な給与体系が用意されています。急成長を続ける企業として、私たちは面白味があってやりがいを感じられる仕事の機会を提供しています。成長を続ける弊社内には、キャリアアップできるさまざまなチャンスがあります。</p>]]></description>Publish the XML feed
To publish and update your XML feed for Indeed, use one of these methods:
- Provide an XML URL for Indeed to crawl.
- Provide a client-hosted FTP or SFTP site for Indeed to access the feed.
- Publish the file directly to an Indeed FTP server. Indeed recommends compressed files.
Important XML feed policy guidelines
-
Include all jobs that your clients' career pages host in your XML feed.
If your XML file does not include all jobs, Indeed might reject or limit the exposure of jobs that the XML file defines.
-
Include all information available to job seekers from your clients' websites in the XML file.
For example, if a career website lists salaries for jobs, your XML feed must also include the
<salary>element. However, if a career website does not include salaries, Indeed does not require this information to index your feed. -
URLs in the XML feed must link to job detail pages from which job seekers can independently confirm all job details without being required to sign in.
The XML feed must define only current, actively hiring roles.
Common issues
Indeed can reject your XML feed or your jobs might not appear in Indeed search results due to these common issues:
Incomplete data
- If you do not provide required data in your XML feed, Indeed might not approve the feed for launch.
Incorrect special character encoding
- Check the feed URL using the "view source" function in your browser and ensure special characters such as brackets (
<>) show up correctly. Verify that the feed is using an XML Declaration like UTF-8 character encoding. Your file must have a header that declares encoding. You can use an encoding other than UTF-8, although UTF-8 is the most common. XMLs must use allowed character ranges from the XML standard.
Jobs are missing from the feed or job counts differ between feed and career sites
- Include every job in the feed for each client. Anything published and available on the web must be in the feed.
Jobs do not have unique reference numbers and locations
- Each job needs its own unique location and unique reference number, and represents a unique job. Otherwise, it loses visibility on Indeed.
- If you duplicate the reference number in the XML, only the first appearance of the job appears on Indeed.
Job posting for multiple locations
- If you have a job for multiple locations, provide the job in every location where there is an open position.
Region‑wide postings do not reflect region‑wide jobs
- Location specification requires at least three separate fields:
<city>,<state>, and<country>. - If these elements are not provided, the job does not receive organic visibility by default.
Job postings in multiple languages require a unique job for every language
- If you want to post the same job in multiple languages, create a unique job in the XML for every language you currently have.
Incomplete or empty job descriptions
- Include all text related to the job. For example, required qualifications might be a separate category in your database, but for Indeed purposes, include it in the
<description>field.
Jobs that are scams or suspected scams
- Indeed works to exclude suspected scams. Ensure that positions have well-written descriptions. Clients must be legitimate companies and the listed jobs must be actual open positions.
Outdated jobs
- Do not include outdated or inactive jobs in the XML feed. After a job is filled, remove the role from the XML feed. If Indeed notices outdated or inactive jobs, Indeed might ask you to correct that behavior to continue using your XML feed.
Job quality issues
- If clients do not adhere to the Job Posting Standards and jobs are missing required fields or do not meet Indeed quality rules, Indeed can exclude their jobs from Indeed search results.
- If clients have concerns about their postings, they can review Indeed Policies and reach out to the Employer Help Center.
These common errors can occur with XML job elements:
| Element | Common errors |
|---|---|
<title> | Includes unnecessary text, such as location, job type, shift, or catch phrases.
|
<date> | Defines a date in the future. The job might not be visible if this element defines a future date. A date in the future. |
<company> | If there are subsidiaries or franchises operating multiple stores under the same company, enter the business name or brand name in the simplest form that job seekers can immediately understand. Do not include phonetic readings. (Example 1) For companies with facility names or salon names, enter that name. For Hair Salon XX operated by Corporation A:
(Example 2) Do not add parentheses () to the company name
(Example 3) Japan only. Do not use abbreviations such as (株) or (有). Enter only the official name without department names
(Example 4) Japan only. Do not include phonetic readings
|
| The English: For "1234 Sunny Lane, Phoenix, AZ 85003": Japanese: 「東京都千代田区丸の内1-9-2グラントウキョウサウスタワー」の場合:
|
<station> | Japan only. Record only the train station name. (Record bus stop information in the For example, in the case of "Nearest Roppongi Station XX bus stop."
Note If the location information is incorrect, the job location will not load correctly. |
<description> | The content and the order of the The Indeed search results page shows the plain text version of the The use of HTML formatting is highly recommended. |
<salary> | The salary. Include salary breakdown, examples, and bonuses in the Example: If the salary differs depending on experience: English:
Japanese:
Indeed can extract the salary from other elements than the |
| All elements | If you change the name of any element, such as updating |
Your client credentials are an Indeed Apply API token and secret. You access these credentials in Partner Console.
Use the shared API secret, which has the Indeed Apply credential type.
Indeed uses the HMAC-SHA1 algorithm to compute a message signature. This signature is sent as an HTTP X-Indeed-Signature header.
Indeed Apply sends a POST request to your postUrl that contains an HTTP header that you can use to verify the authenticity of the POST request.
Today, the EEO/Demographic questions are limited to U.S.-based jobs for EEO compliance.
Indeed has qualification-type questions. These are non-blocking questions that enable the applicant to move to the next section in the apply flow even if the answer does not meet the specification defined in the qualification. The application is delivered in this case.
You can use the Indeed Apply Questions tool to verify the syntax of your Screener Questions JSON file. This tool shows how screener questions appear in the Indeed Apply application flow.
To test your integration before pushing a job or integration live, Indeed provides the Indeed Apply XML configuration testing tool. On the Configurable Parameters tab, provide relevant information to start testing the end-to-end apply flow.
For POST requests, an application is a duplicate if it has the same job ID and is from the same job seeker email as an Indeed application within the last 120 days.
To determine whether an application is a duplicate when responding to the POST request, do not use applications originally submitted from a source other than Indeed. Additionally, do not consider applications that are from the same job seeker email to a different job ID at the same company a duplicate.
For XML that is crawled on a URL or hosted on an FTP server you provide, Indeed refreshes the job data four times a day at six-hour intervals, starting from the time of the last request. For Indeed-hosted FTPs, Indeed refreshes the XML feed when it receives a new file, as often as every two hours. More frequent file uploads can delay updates to the job data. To correct a delay in feed indexing, scale back the frequency of uploads.
As long as you include the standard fields, you can include any fields, such as <branch_id>. If specific information must appear on Indeed, use the <description> field.
Visibility in search results is based on Indeed's visibility rules. The Search Quality team prioritizes jobs that are legitimate, unique, have detailed descriptions and locations, and are easy to apply for.
If the data on the client site corresponds to a data target in Indeed and if the tags match one of the previously mentioned tags, then it appears in the search results page.
However, if the data tag does not match an Indeed tag, its visibility depends on a variety of factors, such as the market in which the job is in, whether search results page is being viewed on desktop and mobile, and other factors.
If the tag contains information that must appear, have the client add the information inside the <description> tag.
Jobs that do not meet these criteria might be hidden from search results. Make sure your clients follow the search quality team's best practices for posting.
If clients have issues finding their jobs on Indeed, reach out to Indeed for assistance.
Indeed requires a URL to the job description, and not to the apply page, for these reasons:
- If Indeed Apply fails, Indeed directs the job seeker to the job URL.
- If a client opts out of Indeed Apply, Indeed needs a method for job seekers to apply.
- The Indeed aggregation engine needs an active URL to confirm job content and job activity.
For companies that are new to Indeed, or for new job sources from companies already on Indeed, Indeed requires a contact email address to verify the account and enable organic syndication.
Although Indeed does not use the email address in some cases, Indeed requires it for all jobs.
Provide the job in every language where an open position exists as a unique job in the XML feed. If you duplicate the reference number in the XML feed, only the first appearance of the job appears on Indeed.
Provide the job in every location where an open position exists. Region-wide postings that are not region-wide jobs are rejected for organic visibility on Indeed. Each job must have its own unique location, unique reference number, and represent a unique job. Otherwise, it loses visibility on Indeed.
To post a state-wide job, send the state and country information by using those elements, and leave the <city> and <postalcode> elements blank.
Example: a statewide job in Texas:
<city> <![CDATA[]]></city><state> <![CDATA[TX]]></state><country> <![CDATA[US]]></country><postalcode> <![CDATA[]]></postalcode>Example: a statewide job in Tokyo:
<city> <![CDATA[]]></city><state> <![CDATA[東京都]]></state><country> <![CDATA[JP]]></country><postalcode> <![CDATA[]]></postalcode>To post a country-wide job, send the country using the <country> element, and send a blank value for <city>, <state>, and <postalcode>.
Example: a US nationwide job:
<city> <![CDATA[]]></city><state> <![CDATA[]]></state><country> <![CDATA[US]]></country><postalcode> <![CDATA[]]></postalcode>Example: a Japan nationwide job:
<city> <![CDATA[]]></city><state> <![CDATA[]]></state><country> <![CDATA[JP]]></country><postalcode> <![CDATA[]]></postalcode>Post jobs to the most specific and accurate location possible. All jobs must include all elements used in the feed, even if those elements are blank, as the examples show.
You can use the <city> or <state> elements to indicate that a job is fully remote by sending the value "remote". If you use this value, enter "remote" in both elements. Alternatively, enter "remote" in one element and leave the other blank. Do not enter "remote" in one element and a real location in the other element.
If you have a job that is fully remote but requires residency in a specific state, you can use the <remotetype> element in conjunction with the statewide posting schema.
Japan only. When posting remote jobs in Japan, leave <city> and <state> blank and use <remotetype>. If you have a fully remote job that requires residence in a specific prefecture, you can use the <remotetype> element in combination with the prefecture-wide posting schema.
Example: A fully-remote job in Texas:
<city> <![CDATA[]]></city><state> <![CDATA[TX]]></state><country> <![CDATA[US]]></country><postalcode> <![CDATA[]]></postalcode><remotetype> <![CDATA[Fully remote]]></remotetype>Example: A fully-remote job in Tokyo:
<city> <![CDATA[]]></city><state> <![CDATA[東京都]]></state><country> <![CDATA[JP]]></country><postalcode> <![CDATA[]]></postalcode><remotetype> <![CDATA[Fully remote]]></remotetype>Remote type values:
- Fully remote: The employee works remotely or from home.
- Hybrid remote: The employee works both in-office and remotely on a consistent basis.
Example: a fully remote job in the US:
<city> <![CDATA[Remote]]></city><state> <![CDATA[]]></state><country> <![CDATA[US]]></country><postalcode> <![CDATA[]]></postalcode><remotetype> <![CDATA[Fully remote]]></remotetype>Example: a fully remote job in Japan:
<city> <![CDATA[]]></city><state> <![CDATA[]]></state><country> <![CDATA[JP]]></country><postalcode> <![CDATA[]]></postalcode><remotetype> <![CDATA[Fully remote]]></remotetype>Example: a hybrid remote job in Austin, TX:
<city> <![CDATA[Austin]]></city><state> <![CDATA[TX]]></state><country> <![CDATA[US]]></country><postalcode> <![CDATA[78701]]></postalcode><remotetype> <![CDATA[Hybrid remote]]></remotetype>Example: a hybrid remote job in Minato, Tokyo:
<city> <![CDATA[港区三田]]></city><state> <![CDATA[東京都]]></state><country> <![CDATA[JP]]></country><postalcode> <![CDATA[100-8602]]></postalcode><remotetype> <![CDATA[Hybrid remote]]></remotetype>No, Indeed Apply is enabled for all client jobs. Clients can opt-out of Indeed Apply at an account level, but not at the job level.
Some steps and considerations are:
- Opt in from ATS: You can opt in or opt out of Indeed Apply directly from your ATS platform. For assistance, contact your ATS.
- Troubleshooting: If Indeed Apply does not work as expected, make sure the client opted in. If issues persist, provide examples of jobs where Easy Apply does not show up and contact Indeed support.
Use the <state> field for Japanese prefectures.
You can ask them to visit your site, but you cannot require them to answer additional questions to complete the application.
Yes. The X-Indeed-Signature header is required to authenticate POST requests from Indeed. Indeed returns the HTTP 401 response code when the signature does not match.