Getting Started

This page quickly outlines the key steps to get your jobs live on Facebook. Check out the How-To page to go deeper on these concepts, or the FAQ page for common questions.

Quick Intro: Creating a Facebook Jobs XML Feed in 15 Minutes

Check out the below video for a full guide, end-to-end, on how to build out your XML feed. Note that the video assumes you already have Jobs API permissions.

Something Went Wrong
We're having trouble playing this video.

1. Generate your XML Feed

The following section describes the fields needed in your XML feed to properly ingest jobs, including a sample feed.

Required Fields

  • publisher-name : The name of your organization
  • publisher-url : The URL of your organizations's website
  • title : The job title
  • date : The date the job was posted
  • id : A unique ID of your choosing that distinguishes this job from all other jobs you provide Facebook
  • description : The job description
  • city : The city the job is located in
  • region : The region the job is located in
  • country : The country the job is located in
  • company-name : The name of the hiring company
  • company-id: A unique ID of your choosing that distinguishes this hiring company from all other hiring companies you provide in your XML feeds
  • company-full-address : The full address of the hiring company
  • company-url : The URL of the hiring company (URL format: http://www.companyname.com)
  • facebook-apply-data : A wrapper tag that contains tags for your callback URL (see below) or any other custom application requirements (see How-To section)
  • application-callback-url : A URL you provide us that we will notify whenever your job receives an application (see How-To section for more details)

Default Fields

Default fields are not required, but will default to a particular value if the xml tag is not present.

  • job-type (defaults to: full_time)
  • company-page-matching-approach : Determines whether or not you want your job to be matched to a Facebook page. Set to "none" to prevent the job from being matched to a page, otherwise put "standard".

Full Feed Specification

All required, default, and other possible fields are listed in this sample XML document below.

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

<publisher-name>Your ATS</publisher-name>
<publisher-url>http://www.yourdomain.com</publisher-url>
<last-build-date>2017-11-06 18:47:08 +0000</last-build-date>

<job>

<!-- basic info -->
<title><![CDATA[Example Engineer]]></title>
<date><![CDATA[2017-11-06 18:47:08 +0000]]></date>
<id><![CDATA[unique11111]]></id>
<photo-url><![CDATA[https://url/to/photo]]></photo-url>
<description><![CDATA[Example job description]]></description>
<job-type><![CDATA[full_time, part_time, contract, internship, volunteer]]></job-type>

<!-- company info -->
<company-name><![CDATA[Facebook]]></company-name>
<company-id><![CDATA[unique11111]]></company-id>
<company-full-address><![CDATA[1 Hacker Way, Menlo Park, CA, 94025]]></company-full-address>
<company-facebook-url>
    <![CDATA[https://www.facebook.com/goldengatebridge]]>
</company-facebook-url>
<company-data-policy-url>
    <![CDATA[https://www.facebook.com/policy.php]]>
</company-data-policy-url>
<company-url><![CDATA[https://facebook.com]]></company-url>
<company-page-matching-approach><![CDATA[standard, none]]></company-page-matching-approach>

<!-- location -->
<full-address><![CDATA[1 Hacker Way, Menlo Park, CA, 94025]]></full-address>
<house-number><![CDATA[1]]></house-number>
<street-name><![CDATA[Hacker Way]]></street-name>
<city><![CDATA[Menlo Park]]></city>
<region><![CDATA[CA]]></region>
<country><![CDATA[US]]></country>
<postal-code><![CDATA[94025]]></postal-code>

<!-- salary -->

<salary><![CDATA[150000]]></salary>
<salary-min><![CDATA[100000]]></salary-min>
<salary-max><![CDATA[200000]]></salary-max>
<salary-currency><![CDATA[USD]]></salary-currency>
<salary-type><![CDATA[hourly, daily, weekly, biweekly, monthly, annually, one-time]]></salary-type>

<!-- integration configuration -->

<facebook-apply-data>
    <application-callback-url>
    <![CDATA[https://yourdomain.com/callback]]>
    </application-callback-url>
    <custom-questions-url>
    <![CDATA[https://yourdomain.com/custom-questions]]>
    </custom-questions-url>
    <form-config>
        <email-field>
            <optional><![CDATA[false]]></optional>
        </email-field>
        <phone-number-field>
            <optional><![CDATA[false]]></optional>
        </phone-number-field>
        <work-experience-field>
            <optional><![CDATA[false]]></optional>
        </work-experience-field>
    </form-config>
</facebook-apply-data>

</job>

[...]

</source>
  

Receiving Applications

We will notify you when you receive an application at the application-callback-url endpoint you provide. See full details on this callback, and how to retrieve the applications, in the How-To section.

Example Job Posting

The following is a sample of how the job will appear on Facebook.

2. Receive Jobs API Permissions

In order for Facebook to start ingesting your jobs, we must grant you the necessary permissions in order to continue work on the integration. Speak with your Facebook contact to understand your permissioning status. Note that these APIs have a 30-day usage policy - if the permission is not used 30 days after granting, it will be revoked. Note that you will receive errors indicating you do not have the correct permissions when attempting all further API calls if you don't have permission. Fill out this form and we will reach out to you if you qualify for access.

You cannot proceed further in this guide until you are approved - the bulk of the work exists in step 1, however, so if you build out a full XML feed you can be ready to quickly complete registration once permissions are granted.

3. Register Your Recruiting Manager and Job Feeds

To manage jobs on Facebook all developers must set up a Recruiting Manager. A Recruiting Manager allows you to configure your company properties such as your ATS name, website URL and data policy URL. Once you have created a recruiting manager, you must notify Facebook by submitting an answer to the "Register Recruiting Manager" question in the Direct Support Tool, otherwise your jobs will not be posted. If you do not have access to the Direct Support Tool, please reach out to your contact at Facebook. Note that you can only register one recruiting manager with Facebook, although you can have an indefinite number of jobs or feeds associated with that recruiting manager.

Sample Request

HttpRequest: POST
URL: https://graph.facebook.com/vX.X/${user_id}/recruiting_managers?access_token=${user_access_token}

Sample Body

{
  "name": "YourCompanyName",
  "website_url": "https://www.yourcompanywebsite.com/",
  "photo_url": "https://www.yourcompanywebsite.com/companyprofilephoto.png/",
  "data_policy_url": "https://www.yourcompanywebsite.com/datapolicy.html"
}

Note: The data_policy_url should be mobile friendly and the photo_url image must be 100x100 pixels.

Sample Response

{ 
  "id": recruiting_manager_id
}

Learn how to generate a user access token.

Register Your Jobs Feed

Registering the XML Feed allows Facebook to crawl the feed and post jobs on the jobs browser. Each feed cannot have more than 30,000 jobs. To publish more than 30,000 jobs, the recommendation is to split them into multiple feeds and maintain 1:1 mapping between the jobs and job_feed_id. Note there is a limit of 100 total Job Feeds . If you provide more than 100 job feeds, your integration will be shut off.

Note: XML Feed registration uses app access tokens.

HttpRequest: POST
URL: https://graph.facebook.com/vX.X/${recruiting_manager_id}/job_feeds?access_token=${app_id|app_secret}

Sample Body

{
"feed_url": "https://yourcompany.com/link-to-jobs-xml-feed",
"syncing_frequency": "NONE"||"HOURLY"||"SIX_HOURS"||"TWELVE_HOURS"||"DAILY"
}

Sample Response

{
  "feed_id": jobs_feed_id
}

4. Getting Your Jobs Live

At this point, your jobs are ready to go live. They will still go through Jobs Review and page-matching, and you can check on the status of these things via the Get Job Status section of the How-To page. If there are no errors, and your jobs pass review, they will be live, and Facebook users can start applying to them!

Learn More