Skip to main content

XML feed reference

XML feed nodes, elements, and examples.

note

Indeed does not support HTML entities. For example, use < instead of the HTML &lt; entity.

Indeed might reject or incorrectly format any HTML that violates the formatting guidelines.

HTML entities present anywhere in the XML can affect Indeed's ability to read the XML.

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.)

Basic feed nodes table
ElementDescriptionExample
<?xml ?>

Required

XML declaration.

<?xml version="1.0" encoding="utf-8"?>
<source>

Required

Root node for the XML feed document.

<publisher>

ATS developers only

Name of the ATS from which this job was published.

ATS Name

<publisherurl>

ATS developers only

URL for the ATS from which this job was published.

http://www.atssite.com/

<job>

Required

Job-specific metadata.

Define one <job> node for each job that appears on Indeed. Each <job> node defines job-specific metadata in Job feed elements.

Job feed elements

Job feed elements define job-specific metadata for a node.

Job feed elements table
ElementDescriptionExample
<title>

Required

Title of the job. Do not include other types of information, such as salary, employment type, job location, job descriptions, copies, or headlines.

See also Policy - Job Title Variations.

<![CDATA[Sales Executive]]>
<date>

Required

Date when this job was first published.

We recommend the ISO-8601 standard format for dates and times.

note

If your site shows the publish date, that date must match the date in the XML.

<![CDATA[2014-12-19T22:49:39Z]]>
<referencenumber>

Required

Unique identifying number for this instance of the job, which Indeed uses to identify each job. The same job posted in multiple locations must have a unique value for this element. Do not change the number after you set it.

<![CDATA[unique123131]]>
<requisitionid>

Required

Requisition ID for a job, which was formerly the external job ID.

Your system likely uses this value to track the original role and its applicants. Might be the identifier that appears on your public-facing career page.

Must be the same for each posting of a job across different feeds and different locations. Might not be unique.

<![CDATA[ab1212]]>
<apijobid>

Job ID.

Provide a value for this element only when <apijobid> is different from <requisitionid>.

note

Used by Indeed build integrations, such as Candidate sync, to send candidate information to your system.

<![CDATA[ab1212]]>
<url>

Required

URL for this job listing on your site.

Use the URL for the job description page, not the application page. Include the source=Indeed token to track clicks from Indeed.

<![CDATA[http://www.examplesite.com/viewjob.cfm? jobid=unique123131&source=Indeed]]>

<company>

Required

Company name that appears in search results.

For example, if subsidiaries or franchises have multiple branded locations in the same company, <company> is the simplest version of the business unit or brand name that job seekers can easily understand.

<![CDATA[[ABC Hospital]]>

<sourcename>

ATS developers only

Required

Parent organization hiring for the role.

For example, if subsidiaries or franchises have multiple branded locations in the same company, the <sourcename> is the same for all those jobs.

<![CDATA[ABC Medical Group]]>
<city>

Required

City where this job is located.

<![CDATA[Phoenix]]>
<state>

Required

State where this job is located.

Use the appropriate postal abbreviation. If your job is located outside the US, use the corresponding geographic designation such as province or region.

<![CDATA[AZ]]>
<country>

Required

Country where this job is located.

<![CDATA[US]]>
<postalcode>

Required if on the career site

Postal code where this job is located.

<![CDATA[85003]]>
<streetaddress>

Required if on the career site

Street address of the job's primary work location. Include the street name and number. Indeed might use the street address to improve the precision of location-based job search and to show to job seekers.

<![CDATA[1234 Sunny Lane
Phoenix, AZ 85003]]>
<email>

Required

Email account associated with the Indeed account for this client.

To verify the business entity that posts the job, the Indeed Search Quality team requires the client's contact email address.

<![CDATA[example@abccorp.com]]>

<description>

Required

Description for this job listing that is the source of the raw text that appears to job seekers on Indeed. Ensure the information in this element matches the details on the <url> page, including all job-related information in the same order as the source website, and including text that can also appear in other fields in the XML, such as education or experience.

Indeed might apply filters to this information to omit items such as buttons or link text that does not make sense in the context of Indeed.

note

You must include HTML formatting in your job descriptions. For a list of supported HTML elements, see Formatting guidelines.

<![CDATA[<h2 id="job_description">Job Description:<ul><li> Do you have 1-3 years of sales experience?</li></ul>]]>
<salary>

Required if on the career site

Salary offered for this job.

For best practices, see Indeed pay transparency & salary estimates.

note

If a job does not have a salary, leave the field blank in the XML for that job. Indeed removes salary ranges that are unreasonably wide.

Indeed might also extract salary information directly from job descriptions in addition to, and instead of, the salary information you define in <salary>.

For best, most predictable results, provide salary information in this tag, as recommended by best practices.

<![CDATA[$50000 per year]]>
OR
<![CDATA[$4000 - $5000 per month]]>

<education>

Required if on the career site

Education level desired for this job.

<![CDATA[Bachelors]]>
<jobtype>

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.

<![CDATA[fulltime, parttime]]>
<category>

Optional but recommended

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.

<![CDATA[Category1, Category2, CategoryN]]>
<experience>

Required if on the career site

Experience desired for this job.

<![CDATA[5+ years]]>
<expirationdate>

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.

<![CDATA[2021-11-08]]>
<tracking_url>

Unique URL for the job, which Indeed uses to track clicks on this job. Indeed creates a GET request to this URL each time the job is clicked.

<![CDATA[https://www.examplesite.com/</code><br/><code>trackjob1234]]>

<remotetype>

Type of remote work. A valid value is:

  • Fully remote. The employee works remotely or from home. Fully remote might not have a more specific residency requirement than the nationwide level because remote jobs appear nationwide.

  • Hybrid remote. The employee works both in-office and remotely on a consistent basis.

  • COVID-19. The employee temporarily works remotely due to COVID-19-related circumstances. Eventually, the employee returns to work in-office on either a part- or full-time basis.

For more information about remote jobs, see these sections in the How to post a remote job on Indeed article:

  • If your job appears on Indeed but is posted on your career site or ATS
  • XML file users

For additional text that you can include in the job, see XML feed FAQ.

note

Indeed does not use this element's data to determine location. For information about posting jobs remotely, see XML feed FAQ.

<![CDATA[COVID-19]]>
<lastactivitydate>

Most recent timestamp of any action that your system made to this job.

This action can include candidate review, job update, and so on.

<![CDATA[2014-12-19T22:49:39Z]]>

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&amp;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[COVID-19]]>
</remotetype>
<indeed-apply-data>COVERED IN A LATER SECTION</indeed-apply-data>
</job>
</source>

This XML feed renders this Indeed job listing:

Example of the job post rendered on Indeed.

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.

note

Indeed does not support HTML entities. For example, use < instead of the HTML &lt; entity.

Indeed might reject or incorrectly format any HTML that violates the formatting guidelines.

Indeed supports the following HTML tags:

Formatting guidelines table
TagDescription
<b>Bold.

<h1> to <h6>

Header.

note

Text in header tags appears in consistent sizes on Indeed pages.

<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 bolded, text.
<em>Emphasized, or italicized, text.

<table>, <tbody>, <th>, <tr>, <td>

Simple table. Each cell appears on a new line on Indeed.

Additionally, Indeed supports computed style nodes, such as:

Supported computed style nodes table
NodeDescription
<font style="font-weight:bold">Some bold text</font>Bold.
<div> <h2 style="display:inline">Label: </h2> Text </div>

Shows inline text.

By default, <h2> is a block tag.


note

A paragraph tag must have positive top and bottom margins and padding. By default, the <p> tag has this behavior.

Formatting example

The following example formats a job description:

<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>

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 log in.

    The XML feed must define only current, actively hiring roles.

Common issues

The following issues can cause Indeed to reject your XML feed or can cause jobs to not appear in Indeed search results.

Common issues and solutions
IssueSolution

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 should 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 should 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 should be legitimate companies and the listed jobs should 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:

Common errors with XML job elements
ElementCommon errors
<title>

Includes unnecessary text, such as location, job type, shift, or catch phrases.

<title><![CDATA[ Sales ]]></title>

<title><![CDATA[ Work with top clients! 2 days off per week! Sales) ]]></title>

<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.

<city>, <streetaddress>

The <city> element defines more than only the city, and <streetaddress> must define the full address including the street name and number.

Example: For "1234 Sunny Lane, Phoenix, AZ 85003":

<city><![CDATA[ Phoenix ]]></city>
<streetaddress><![CDATA[1234 Sunny Lane, Phoenix, AZ 85003 ]]></streetaddress>

<city><![CDATA[ 1234 Sunny Lane, Phoenix, AZ 85003 ]]></city>

<description>

The content and the order of the <description> element must match the content on the page to which the <url> element directs.

The Indeed search results page shows the plain text version of the <description> element. It includes all information that might be already included within other elements of the XML feed.

note

The use of HTML formatting is highly recommended.

<salary>

The salary.

note

Include salary breakdown, examples, and bonuses in the <description> element.

Example: If the salary differs depending on experience:

<salary><![CDATA[ $16.00-$20.00 per hour]]></salary>

<salary><![CDATA[ $16.00-$17.00 per hour More than 5 years experience $18.00-$20.00 per hour]]></salary>

caution

Indeed can extract the salary from other elements than the <salary> element.

All elements

If you change the name of any element, such as updating reqid to requisition_id, contact your Client Success representative (if you are an ATS, contact Indeed) to update the mapping. You must add any elements that you use to all jobs. Add the element with a blank value. For example, <salary> </salary>, or <salary />.

XML feed FAQ

How often does Indeed index the feed?

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.

Which metadata can I include in a feed?

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.

Do Indeed search results show all jobs in the feed?

Visibility in search results is based on Indeed’s visibility rules. Our 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 out of AggOps' immediate control.

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 our search quality team’s best practices for posting.

If clients have issues finding their jobs on Indeed they should reach out to Indeed for assistance.

If I use Indeed Apply, why do you require a job URL?

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.

Why does Indeed require an email for each job?

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.

How do I define the same job in multiple languages?

Provide the job in every language you currently have it in 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.

How do I define the same job in multiple locations?

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 needs its own unique location, unique reference number, and should represent a unique job. Otherwise, it loses visibility on Indeed.

How do I define a state- or country-wide job?

To post a state-wide job, send the state and country information 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>

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>

Jobs should be posted to the most specific and accurate location possible. All jobs should have all elements used in the feed, even if those elements are blank (e.g. in the examples above.)

How do I post a remote job?

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 described above.

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>
  • Fully remote:

    • The employee works remotely or from home.
  • Hybrid remote:

    • The employee works both in-office and remotely on a consistent basis.
  • COVID-19:

    • A job that’s fully remote due to COVID-19 related circumstances. Eventually, the employee returns to work in-office on either a part- or full-time 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 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>

On this page