Thanks for your interest in our XING E-Recruiting Feed. This page serves as an implementation guide and technical documentation for importing your job ads into XING Jobs via a XML feed. It’s designed to help you get up and running quickly by outlining the most important steps.

Getting started

First things first: Only XING customers with a valid contract are able to post job postings on XING via a feed. If you don’t have a contract yet, please e-mail e-recruiting-api@xing.com

To integrate your job postings via feed, please make sure your feed meets the following basic requirements:

Protocol and format:
You need to provide an HTTP(S) URL for your job feed. This web resource must be available permanently.
Accepted formats is XML.
Encoding and compression:
HTTP content encoding must be UTF-8. HTTP compression gzip is supported.
Authentication:
HTTP basic authentication as well as POST/GET parameters for authentication are supported.
Don't use IP filters for authentication as our server IPs may change over time.

How it works

The following will give you an overview of how data is collected and integration takes place:

Data delivery
Your feed will be fetched four times a day. Currently there is no way of pushing feeds into the XING Jobs.
Posting status and expiration
Job postings will stay online in XING Jobs as long as they’re in your feed. As soon as you remove a posting from your feed, the next fetch cycle will remove it from XING Jobs, too. However, there are a couple of other situations where your job posting may be removed:
  • If your feed is unavailable for technical reasons, job postings will stay online for seven days since the last time they were successfully loaded
  • Your postings will be deactivated when your contract expires
  • A posting will be deactivated after being online for more than 365 days
Identification and updates
Your postings are being tracked using their unique ID / reference number.
Existing postings will be updated if changes are detected.
Design and HTML support
Please see below for information about designing HTML postings.
The preferred solution is our template.
Banner image
Basic+ orders support banners. There are two ways you can use banner images in your job ads:
  • Submit a single image to our support which then will be used for all current and subsequent postings in the feed
  • Define a unique image per ad, as described below

Feed structure and downloads

This example feed consists of two valid job ads: A minimal one consisting only of mandatory fields and one full example with all available fields filled in. You can also download this example feed and its corresponding XSD schema definition. Please check out the schema for types, occurrence guidelines, and substructures.



Example feed
<?xml version="1.0"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="https://dev.xing.com/jobs/xsd">
  <postings>
    <!-- Start basic example with mandatory fields -->
    <posting>
      <id>1</id>
      <job_title><![CDATA[Senior Sales Manager]]></job_title>
      <description>
        <![CDATA[
          <h3>Company description</h3>
          <p>Lorem ipsum dolor sit consetetur sadipscing elitr, sed diam nonumy eirmod tempor.</p>
          <h3>Your responsibilities</h3>
          <ul>
              <li>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</li>
              <li>Sed diam nonumy eirmod tempor invidunt.</li>
          </ul>
          <h3>Your skills</h3>
          <ul>
              <li>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</li>
              <li>Sed diam nonumy eirmod tempor invidunt.</li>
          </ul>
         ]]>
      </description>
      <url><![CDATA[http://companyname.com/jobs/job1]]></url>
      <company_name><![CDATA[Companyname Inc.]]></company_name>
      <job_location>
        <city><![CDATA[Hamburg]]></city>
        <country><![CDATA[DE]]></country>
      </job_location>
      <reply_setting>url</reply_setting>
    </posting>
    <!-- End basic example -->

    <!-- Start full example -->
    <posting>
      <id>213231RB</id>
      <job_title><![CDATA[Senior Sales Manager]]></job_title>
      <description>
        <![CDATA[
          <h3>Company description</h3>
          <p>Lorem ipsum dolor sit consetetur sadipscing elitr, sed diam nonumy eirmod tempor.</p>
          <h3>Your responsibilities</h3>
          <ul>
              <li>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</li>
              <li>Sed diam nonumy eirmod tempor invidunt.</li>
          </ul>
          <h3>Your skills</h3>
          <ul>
              <li>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</li>
              <li>Sed diam nonumy eirmod tempor invidunt.</li>
          </ul>
        ]]>
      </description>
      <url><![CDATA[http://companyname.com/jobs/job1]]></url>
      <company_name><![CDATA[Companyname Inc.]]></company_name>
      <company_profile_url><![CDATA[https://www.xing.com/companies/deutschetelekomag]]></company_profile_url>
      <publish_to_company_profile>true</publish_to_company_profile>
      <job_location>
        <address><![CDATA[Dammtorstraße 30]]></address>
        <city><![CDATA[Hamburg]]></city>
        <zip_code>08470</zip_code>
        <country><![CDATA[DE]]></country>
        <latitude>23.1112</latitude>
        <longitude>41.220</longitude>
      </job_location>
      <contact_email><![CDATA[recruitment@xing.com]]></contact_email>
      <poster_url><![CDATA[https://www.xing.com/profile/Max_Muster]]></poster_url>
      <user_role>EXTERNAL_RECRUITER</user_role>
      <banner_image_url><![CDATA[http://companyname.com/jobs/job1/banner.jpg]]></banner_image_url>
      <tags>
        <tag><![CDATA[Sales]]></tag>
        <tag><![CDATA[Management]]></tag>
      </tags>
      <skills>
        <skill><![CDATA[Communication]]></skill>
      </skills>
      <salary>
        <range_start>50000</range_start>
        <range_end>70000</range_end>
        <currency>EUR</currency>
      </salary>
      <posting_url><![CDATA[http://companyname.com/jobs/job1/iframe-compatible-view]]></posting_url>
      <industry_id>90000</industry_id>
      <discipline_id>1001</discipline_id>
      <video_url><![CDATA[https://www.youtube.com/watch?v=0TCQKSAbLCI]]></video_url>
      <order_id>123456</order_id>
      <student_classification><![CDATA[INTERNSHIP]]></student_classification>
      <job_type><![CDATA[FULL_TIME]]></job_type>
      <reply_setting><![CDATA[xing_apply]]></reply_setting>
      <billing_reference><![CDATA[3001231]]></billing_reference>
      <career_level><![CDATA[JOBLEVEL_1]]></career_level>
      <xing_apply_configuration>
        <method>EMAIL</method>
        <external_links>
          <external_link>
            <url>http://companyname.com/privacy</url>
            <type>PRIVACY_POLICY</type>
          </external_link>
          <external_link>
            <url>http://companyname.com/terms</url>
            <type>TERMS_AND_CONDITIONS</type>
          </external_link>
        </external_links>
      </xing_apply_configuration>
    </posting>
    <!-- end full example -->
  </postings>
</feed>
Example feed (using template)
<?xml version="1.0"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="https://dev.xing.com/jobs/xsd">
  <postings>
    <posting>
      <id>1</id>
      <job_title><![CDATA[Senior Sales Manager]]></job_title>
      <description_template>
        <title_color>#004665</title_color>

        <!-- begin description text in mutiple fields -->
        <company_description>
          <title><![CDATA[Über uns]]></title>
          <content><![CDATA[Lorem ipsum dolor sit]]></content>
        </company_description>
        <responsibility>
          <title><![CDATA[Deine Aufgaben]]></title>
          <content><![CDATA[Lorem ipsum dolor sit]]></content>
        </responsibility>
        <skills>
          <title><![CDATA[Dein Profil]]></title>
          <content><![CDATA[Lorem ipsum dolor sit]]></content>
        </skills>
        <!-- end description text in mutiple fields -->
        <!-- OR -->
        <!-- begin description text in one single field -->
        <generic_description>
          <![CDATA[
          <h3>Company description</h3>
          <p>Lorem ipsum dolor sit consetetur sadipscing elitr, sed diam nonumy eirmod tempor.</p>
          <h3>Your responsibilities</h3>
          <ul>
              <li>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</li>
              <li>Sed diam nonumy eirmod tempor invidunt.</li>
          </ul>
          <h3>Your skills</h3>
          <ul>
              <li>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</li>
              <li>Sed diam nonumy eirmod tempor invidunt.</li>
          </ul>
         ]]>
        </generic_description>
        <!-- end description text in one single field -->

        <header_image>http://companyname.com/jobs/job1/header.jpg</header_image>
        <footer_image>http://companyname.com/jobs/job1/footer.jpg</footer_image>
        <video_youtube>https://www.youtube.com/embed/video-id</video_youtube>
        <social_youtube>https://www.youtube.com/channel/channel-id</social_youtube>
        <social_xing>https://www.xing.com/pages/example-company-name</social_xing>
      </description_template>
      <url><![CDATA[http://companyname.com/jobs/job1]]></url>
      <company_name><![CDATA[Companyname Inc.]]></company_name>
      <job_location>
        <city><![CDATA[Hamburg]]></city>
        <country><![CDATA[DE]]></country>
      </job_location>
      <contact_email><![CDATA[recruitment@xing.com]]></contact_email>
      <poster_url><![CDATA[https://www.xing.com/profile/Max_Muster]]></poster_url>
      <user_role>EXTERNAL_RECRUITER</user_role>
      <banner_image_url><![CDATA[http://companyname.com/jobs/job1/banner.jpg]]></banner_image_url>
      <tags>
        <tag><![CDATA[Sales]]></tag>
        <tag><![CDATA[Management]]></tag>
      </tags>
      <skills>
        <skill><![CDATA[Communication]]></skill>
      </skills>
      <salary>
        <range_start>50000</range_start>
        <range_end>70000</range_end>
        <currency>EUR</currency>
      </salary>
      <posting_url><![CDATA[http://companyname.com/jobs/job1/iframe-compatible-view]]></posting_url>
      <industry_id>90000</industry_id>
      <video_url><![CDATA[https://www.youtube.com/watch?v=0TCQKSAbLCI]]></video_url>
      <order_id>123456</order_id>
      <student_classification><![CDATA[INTERNSHIP]]></student_classification>
      <job_type><![CDATA[FULL_TIME]]></job_type>
      <reply_setting><![CDATA[email]]></reply_setting>
      <billing_reference><![CDATA[3001231]]></billing_reference>
      <career_level><![CDATA[JOBLEVEL_1]]></career_level>
    </posting>
  </postings>
</feed>

Detailed information for fields

You need to provide several fields for each job posting in your feed. The following listing provides you with an overview. Unless stated otherwise, fields should be considered mandatory, i.e. they should not be empty.

Field Description
id Unique identifier for your job ads.
Never use the same ID for two different ads.
Length is limited to 100 characters.
job_title The title of the job ad.
The length needs to be between 3 and 255 characters.
description The description of the posting. Your posting should at least contain line break tags for a good user experience. The following HTML tags are available for styling:
h1, h2, h3, h4, h5, h6, hr, a, br, li, ol, ul, p, em, i, b, strong
Other tags and attributes including style tags and inline CSS will be removed. Length is limited to 10.000 characters.
You may only use either description or description_template.
city City of the job location. Please provide real and exact values only. For example, sending “Somecity (near Munich)” as city would be accepted by the API but may lead to problems with our geolocation search and, as a result, less traffic for your job posting on our search page. Multiple locations are not supported.
description_template The description_template is a complex field with multiple child elements which allows for greater control over the appearance of your job ad. The individual fields are described further below in this documentation.
You may only use either description or description_template.
company_name Name of the company advertising this job posting. Length is limited to 255 characters.
job_location Must contain 'city' and 'country'. It may also contain 'address', 'zip_code' or 'latitude' and 'longitude'. The country value should be one from the available values here . Only one location is supported per ad.
reply_setting Defines how a user can apply to a job posting. Must be one of:
  • url - requires url
  • xing_apply - requires xing_apply_configuration
  • email - requires contact_email
Optional fields
url optional Application link of the posting. This must link to a publicly accessible website.
This field becomes conditionally mandatory when reply_setting is set to url
remote_options optional Choose one, multiple, or no value from this list of optional fields to define the possible remote options for the job posting:
  • FULLY_REMOTE
  • PARTIALLY_REMOTE
  • NON_REMOTE
company_profile_url optional An URL to the corresponding XING company profile / employer branding profile. If provided this overwrites the default profile which is defined per feed. The posting will link to and appear on this profile.
publish_to_company_profile optional A boolean value indicating whether the posting will be shown on the XING company profile / employer branding profile defined in the company_profile_url parameter.
  • True: Posting will be published on the defined XING company profile (default)
  • False: Posting will not be published on the XING company profile.
billing_reference optional A text field that can be used to identify your postings for billing reasons. It is not shown on the job posting. Length is limited to 100 characters.
banner_image_url optional URL to the banner image for this ad. Only available for Basic+ and Standard ads. Accepted formats are:
"image/jpg", "image/png", "image/gif", "image/jpeg", "image/pjpeg", "image/x-png"
The maximum image size is 936x200px. Your image will be centered horizontally if it's smaller than the maximum width and sized down keeping the image dimensions if it's bigger than the maximum image size.
The maximum file size is 1 MB.

NOTE: this image is ignored if the job posting uses a description template with a non-empty description_template.header_image
contact_email optional E-mail address of the point of contact.
This field becomes conditionally mandatory when xing_apply_configuration.method is EMAIL or reply_setting is email
poster_url optional The XING profile url of the point of contact. The corresponding profile will be shown beneath the job posting as point of contact person.
user_role optional Requires poster_url. Specifies the role of the point of contact person. Must be one of:
  • EXTERNAL_RECRUITER
  • HR_DEPARTMENT
  • MANAGER
  • EMPLOYEE
  • HR_CONSULTANT
tags optional May contain several nodes holding a tag to help find your ad.
The maximum length of all tags combined, separated by comma, is 500 characters.
(not visible to users)
skills optional May contain several nodes holding a skill to be used to match candidates.
The maximum length of all skills combined, separated by comma, is 255 characters.
(not visible to users)
salary optional Must contain a range_start and range_end which specify the lower and upper bound of the yearly salary range as integer. It may include an optional currency tag. The default value is 'EUR'.
posting_url optional Please note that this is only available for Professional / Professional+ ads. If you’d like to use full HTML, please use the posting_url parameter to include a HTTPS-URL to a job posting on your website which will then be shown in an iframe as a description of your job ad. Where possible, we recommend you also provide a text description as this can be shown as a snippet in the search results. HTML content is cached for a period for 24 hours. However, images and other assets are not cached, so please make sure the whole web page and assets are available all the time. You’ll enjoy the best experience by making your content responsive or optimizing it for a width of 936px. Remove navigation elements as a job seeker is not supposed to navigate in the iframe view of your job posting. Furthermore, don't use advanced scripts as we can not guarantee scripts to work correctly within embedded postings. Please also make sure you use UTF-8 encoding. You cannot use this together with a banner image.
industry_id optional Industry ID of the job posting. Please find available values here.
discipline_id optional Discipline ID of the job posting. Please find available values here.
video_url optional URL pointing to a video on Vimeo or YouTube. The video will be displayed below the job posting content. This field is only available for Professional+ postings.

NOTE: this video is ignored if the job posting uses a description template and at least one of description_template.video_youtube or description_template.video_vimeo fields are non-empty
order_id optional Agencies and applicant tracking system providers posting for multiple customers with custom contracts need to define the order_id for each posting so that they can be billed correctly.
student_classification optional If this is a job posting for Campus, please specify the type of work done by the student. Must be one of:
  • THESIS
  • INTERNSHIP
  • PARTTIME
job_type optional Type of this job posting. Must be one of:
  • FULL_TIME
  • PART_TIME
  • CONTRACTOR
  • INTERN
  • SEASONAL
  • TEMPORARY
  • VOLUNTARY
career_level optional Career level of the job posting. Please find available values here.
xing_apply_configuration.method optional Defines the way applications to this job posting are received. Must be one of:
  • EMAIL
    Applications via xing_apply will be sent to the email account found in the contact_email field
  • API
    Applications via xing_apply can be polled in your Application Tracking System (ATS), the ATS needs to have implemented the respective API endpoint.
This field becomes conditionally mandatory when reply_setting is set to xing_apply
xing_apply_configuration.external_links.external_link.type optional External urls for privacy policies and, terms and conditions for a job posting. It may contain at maximum one external_link per field type. The type must be one of:
  • PRIVACY_POLICY
  • TERMS_AND_CONDITIONS
xing_apply_configuration.external_links.external_link.url optional A valid URL linking to either the privacy policies or the terms and conditions for a job posting.
description_template.title_color optional Color of headlines for all sections in the description_template. The format is a hex color code (e.g. #004665)
description_template.company_description optional Describes what your company is doing and what an applicant should know about your company. If present, it must contain a "content" field and optionally a "title". The title can not contain any html tag. It will be rendered as h2, therefore h2-tags are not allowed in the content section, but all of the following html tags are available for styling:
h3, h4, h5, hr, a, br, li, ol, ul, p, em, i, b, strong
Forbidden tags will be removed from the description. Furthermore a-tags can only contain href-attributes.
The "content" field can not have more than 5000 characters!
description_template.responsibility optional What will be the responsibilities of an applicant in their new position. If present, it must contain a "content" field and optionally a "title". The title can not contain any html tag. It will be rendered as h2, therefore h2-tags are not allowed in the content section, but all of the following html tags are available for styling:
h3, h4, h5, hr, a, br, li, ol, ul, p, em, i, b, strong
Forbidden tags will be removed from the description. Furthermore a-tags can only contain href-attributes.
The "content" field can not have more than 5000 characters!
description_template.skills optional What skills do you desire or require from the applicant to be the right fit for this job. If present, it must contain a "content" field and optionally a "title". The title can not contain any html tag. It will be rendered as h2, therefore h2-tags are not allowed in the content section, but all of the following html tags are available for styling:
h3, h4, h5, hr, a, br, li, ol, ul, p, em, i, b, strong
Forbidden tags will be removed from the description. Furthermore a-tags can only contain href-attributes.
The "content" field can not have more than 5000 characters!
description_template.we_offer optional A description of special offers you have for your employees. If present, it must contain a "content" field and optionally a "title". The title can not contain any html tag. It will be rendered as h2, therefore h2-tags are not allowed in the content section, but all of the following html tags are available for styling:
h3, h4, h5, hr, a, br, li, ol, ul, p, em, i, b, strong
Forbidden tags will be removed from the description. Furthermore a-tags can only contain href-attributes.
The "content" field can not have more than 5000 characters!
description_template.contact_info optional A description of how to get in touch with you. If present, it must contain a "content" field and optionally a "title". The title can not contain any html tag. It will be rendered as h2, therefore h2-tags are not allowed in the content section, but all of the following html tags are available for styling:
h3, h4, h5, hr, a, br, li, ol, ul, p, em, i, b, strong
Forbidden tags will be removed from the description. Furthermore a-tags can only contain href-attributes.
The "content" field can not have more than 5000 characters!
description_template.generic_description optional Instead of using the description sections (e.g. company_description, responsibility, skills, we_offer, contact_info), you can define your own custom description with the generic_description. All of the following html tags are available for styling:
h2, h3, h4, h5, hr, a, br, li, ol, ul, p, em, i, b, strong
Forbidden tags will be removed from the description. Furthermore a-tags can only contain href-attributes.
The generic description can not have more than 29000 characters!
description_template.header_image optional URL to an image that will be displayed on top of the job posting. This field accepts valid http or https URLs ending in .jpg, .jpeg and .png extensions (e.g. https://example.com/some-image.jpg).

NOTE: this image takes precedence over the banner_image_url field
description_template.footer_image optional URL to an image that will be displayed at the bottom of the job posting. This field accepts valid http or https URLs ending in .jpg, .jpeg and .png extensions (e.g. https://example.com/some-image.jpg).
description_template.video_youtube optional URL of an embedded YouTube video (e.g. https://www.youtube.com/embed/...).

NOTE: this video takes precedence over the video_url field
description_template.video_vimeo optional URL of a Vimeo video (e.g. https://player.vimeo.com/video/...).

NOTE: this video takes precedence over the video_url field
description_template.social_website optional URL of your company's website. Between 0-1000 characters (e.g. https://www.you-social-website.com/...).
description_template.social_facebook optional URL of your company's Facebook page. Between 0-1000 characters (e.g. https://www.facebook.com/...).
description_template.social_twitter optional URL of your company's Twitter page. Between 0-1000 characters (e.g. https://twitter.com/...).
description_template.social_youtube optional URL of your company's YouTube channel. Between 0-1000 characters (e.g. https://www.youtube.com/...).
description_template.social_xing optional URL of your company's Xing page. Between 0-1000 characters (e.g. https://www.xing.com/...).
description_template.social_instagram optional URL of your company's Instagram account. Between 0-1000 characters (e.g. https://www.instagram.com/...).
description_template.social_pinterest optional URL of your company's Pinterest page. Between 0-1000 characters (e.g. https://www.pinterest.com/...).
description_template.social_tiktok optional URL of your company's Tiktok account. Between 0-1000 characters (e.g. https://www.tiktok.com/...).
description_template.social_kununu optional URL of your company's Kununu account. Between 0-1000 characters (e.g. https://www.kununu.com/...).

Jobs integration

This image will give you an idea of how your postings will look in XING Jobs. Hover over the image to see relations to the field names.

Job market integration
Job market integration

About the employer branding section:
This section will appear automatically for Basic+ postings as we link your job postings to your Company Profile or Employer Branding Profile. Therefore, please let your XING contact person know in whose profile your job postings should be listed. You may overwrite this per posting by providing the 'company_profile_url' parameter.

HTML styles

The following list shows you how certain HTML tags will look in XING Jobs:

<h1>Heading H1</h1>
<h2>Heading H2</h2>
<h3>Heading H3</h3>
<h4>Heading H4</h4>
<h5>Heading H5</h5>
<h6>Heading H6</h6>
<hr>
<p>This is a paragraph text<br>
Here was a break</p>
<ul>
  <li>Unordered list UL list element LI 1</li>
  <li>Unordered list UL list element LI 2</li>
</ul>
<ol>
  <li>Ordered list OL list element LI 1</li>
  <li>Ordered list OL list element LI 2</li>
</ol>
<em>EM tag</em>
<strong>Strong Tag</strong>
Job market styling

Do's and don'ts

Do

  • Provide the full content of your job ads
  • Make use of header and list HTML tags to create structured ads
  • Use CDATA for complex content <![CDATA[...Content...]]>
  • Provide a banner. Your postings will look nicer and get more attention
  • Provide a salary. Your posting will appeal to more job seekers

Don't

  • Change your feed structure
  • Use plain text descriptions without any HTML
  • Provide wrong or misspelled company names

Frequently asked questions

Why is my posting not listed in XING Jobs (yet)?
Make sure the posting is in your feed and provides all of the mandatory fields. It may take up to 24 hours for a new posting to appear in XING Jobs.
Could you change the title / content / style for a certain ad?
The posting content and all other fields will appear in XING Jobs in exactly the same way they are provided in the feed. XING does not modify any content or text structure.
Can I provide multiple feeds / sources?
Yes, you can. However, do bear in mind that two feeds with different structures may lead to double the integration fee.
Do I have to follow the XING documentation?
Please follow this documentation to import job postings into XING Jobs.