[XML Import] Import Setup Import Log Import Help

What is XML Import?

XML import is a tool which can parse various XML files and import the jobs data in to your job board. It is flexible enough to be 'trained' to work with any XML feed, as long as it contains the required data.

What does it import?

- Jobs

- Employer accounts (if present with the jobs data)

- Additionally, it can process commands to update or delete a job posting

How does it fetch XML files?

- Direct push to a URL on your server, using the POST method of the HTTP/HTTPS protocol.

- From a local file

- From a remote FTP server

- From any URL

How to Setup

To begin, you will need to prepare a sample file of the XML feed that you would like to import. This must should contain at least one record of a job post, but no more than one is needed.

1. Go to Admin->XML Import, click the 'Add a new Feed to Import' button

2. Fill in the details. For the XML Sample file, select the XML sample file that you prepared earlier.

3. Click on 'Please setup feed structure'. There you will be asked to identify the sequence element. In other words, click on the radio button next to the tag where the job record begins. The system will automatically draw a vertical green line to where it finds the end of the job record. Click 'Submit' to continue

4. Click on 'Please map your fields'. There you will be able to map all the elements with the fields in your database. You can also set some options for how the data is to be imported. Ensure that all the required fields are mapped. Click the 'Save Button' to save. (A mapping is an association between an XML element in the feed and a field in your database)

5. The feed will be ready to import.

How to associate the jobs with employer accounts?

The XML Import tool has four methods for associating jobs with employer accounts

- Insert using the employer's account details provided with the feed. Reject if a user/pass does not authenticate. (This option assumes that the jobs feed also includes accounts data with the username/password included. It will check the username/password in the feed, and only import the job if the account validates. Perfect for importing from semi-trusted systems)

- Insert using the employer's account, but insert using the default username if user/pass do not authenticate (This option assumes that the jobs feed also includes accounts data, but some jobs may not have the correct accounts data. It will authenticate the username/password in the feed, but of it does not validate it will import the job under the default username)

- Insert using the employer's username, create a new account from the account data present in the feed. (This option assumes that the jobs feed also includes accounts data. It will authenticate the account data, and create a new account if it does not exist. Perfect for synchronizing two job boards)

-Always import the jobs under the default username (This option assumes that the feed does not contain account data. Perfect for importing from public feeds, such as RSS Feeds)

What is a Command Field?

This is an element in your feed which tells the importing tool how to process the job data. It supports three user-configurable commands: Update, Insert or Delete

The command field is optional, and if not specified in the field, it is assumed to be Insert

What is a GUID?

GUID stands for Global Unique ID. It is a required piece of data by the importing tool. A GUID must be unique value, not just for your job board, but for every job posting, for every job board across the entire internet. Usually this is the URL to the original job posting.

What are the validation options for the fields?

- At present, there are 7 validation options to choose. If a field is not valid for the option selected, then the import tool will skip importing that record and log the error in the error log file. Here are the validation options:

1. No validation needed

2. Not blank - The field must not be blank

3. Alphanumeric - Only characters 0-9, A-Z, - are allowed. Periods, dash and @ characters are allowed as well. Unicode not supported.

4. Numeric - Positive or negative number with the sign optional, thousands separated with commas, optional decimal point (period).

5. Email - Validates to make sure it's a well formatted email address

6. Currency - It does not validate the symbol or currency code, just ensures that a valid number can be extracted from it.

7. URL - Validates to make sure it's a well formatted URL

Note: Any field that does not fit in the database field will be automatically truncated. This means that text fields are limited to 255 characters max. Textarea and HTML editor fields are not limited.

Note 2: The import tool will automatically convert any XML entities to their normal characters (eg. < will be converted to a less than sign <). The import tool will also convert all UTF-8 characters to the job board's internal character handling system. It will also sanitize the input by removing any malicious HTML from the data such as javascript. You can check the 'Allow limited HTML' option so that not all of the HTML is not stripped from the field.

Can I ignore some fields and replace with my own data?

Yes, check the 'Ignore field & Replace with' checkbox, then enter the value to replace with.

How are Categories Imported?

First, the system will take the imported value and search the categories to see if it exists on the system. If the imported value does not exist on the system, you have one of the four options:

1. 'Add the value as a new category, under the category of' - The imported value will be added as a new category, under the selected category

2. 'Attempt to match the category name with text from...' - This is the smart way of matching a job post to a category, if the job post does not contain category information. How it works is like this: It grabs the text from the selected field. It splits the text in to words, using only words longer than 3 letters The word frequency is then counted, and sorted. Then the most frequent words are searched in the category table to try to get the category_id - it does the search for 5 most frequent words before giving up.

3. Throw an error and skip the whole record. This will be logged in the import log file.

4. Don't do anything, import anyway - Perfect option if the category is not required

How are fields with options imported?

Options for Checkboxes, Radio Buttons, Selects and Multiple Selects are imported using their whole values. In the system, these fields come in pairs. Eg. AU is the code and Australia is the code description.

The system will first check if the imported option exists in the database. If the imported option does not exist, you have one of the four options

1. Add the value as a new option, using the first three letters of the imported option as the code.

2. Add the value as an option, using a selected field as the Code. This means that the imported field will be used for the code description as normal, but instead of using the first three letters for the code, the system will read the code from an additional field which is in the feed.

3. Throw an error and skip the whole record. The error will be logged to the import log error file

4. Don't do anything, import anyway

Do you have a sample XML file for the import tool?

Certainly. Here is a sample XML file. (The file will open in a new window. To view the structure you will need to view the source)

Additionally, you can setup the XML Export tool to export jobs using the structure of the above XML File

Here is how to setup the export tool:
1. Go to Admin->XML Export, click the 'Create a New Schema' button at the top
2. Enter a name and description, click Save
3. Click on 'Configure XML Structure'
4. Click on the 'Import structure from CSV' link
5. Paste in the following data, and click Save

element_id,element_name,is_cdata,parent_element_id,form_id,field_id,schema_id,attributes,static_data,is_pivot,description,fieldcondition,is_boolean,qualify_codes,qualify_cats,truncate,strip_tags,is_mandatory,static_mod,multi_fields,has_child,comment
2399,country,N,2368,1,,5,,,N,,,N,Y,Y,0,N,N,F,1,N,
2398,region,N,2368,1,,5,,,N,,,N,Y,Y,0,N,N,F,1,N,"Region can be a state, province, continent or other geo-political area"
2397,place,N,2368,1,,5,,,N,,,N,Y,Y,0,N,N,F,1,N,This field may be best for when the location is a type-in field
2396,image_link,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2395,description,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,"Required, this is the main description of the job post"
2394,experience,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2393,immigration_status,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2392,benefits,N,2388,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2391,to,N,2388,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2390,from,N,2388,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2389,currency,N,2388,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2388,salary,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,4,Y,
2387,posted_by,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,"Required, the name of the poster"
2386,postalcode,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2385,skills,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2384,duration,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2383,start,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2382,www_url,N,2372,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2381,tel,N,2372,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2379,country,N,2372,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2378,region,N,2372,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2377,place,N,2372,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2376,address,N,2372,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2375,company,N,2372,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,Map to Employer_Company Name
2374,lastName,N,2372,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,Map to Employer Last Name
2373,firstName,N,2372,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,Map to Employer_ First Name
2372,contact,N,2352,1,,5,,,N,,,N,N,N,0,N,N,F,1,Y,
2371,industry,N,2369,1,,5,,,N,,,N,Y,Y,0,N,N,F,1,N,
2370,type,N,2369,1,,5,,,N,,,N,Y,Y,0,N,N,F,1,N,
2369,categories,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,Y,
2368,location,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,Y,Required
2367,email,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,"Required, the email address of the poster"
2366,title,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,"Required, the main title of the job posting"
2365,www_url,N,193,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2364,tel,N,193,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2363,country,N,193,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2362,province,N,193,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2361,town,N,193,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2360,address,N,193,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2359,company,N,193,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2358,lastName,N,193,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2357,firstName,N,193,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2355,accountEmail,N,2352,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,Map to Employer_Email
2402,latitude,N,2368,1,,5,,,N,,,N,Y,Y,0,N,N,F,1,,
2354,password,N,2352,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,Map to Employer_Password (md5 hash). Optional
2353,username,N,2352,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,Map to Employer_Username
2352,account,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,Y,Employers account data.
2351,link,N,2344,1,,5,,%LINK%,N,,,N,N,N,0,N,N,F,1,N,
2350,pubDate,N,2344,1,,5,,%DATE_RFC%,N,,,N,N,N,0,N,N,F,1,N,
2349,application_url,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2348,guid,N,2344,1,,5,,%LINK%,N,,,N,N,N,0,N,N,F,1,N,
2347,refID,N,2344,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,Reference id
2346,days_to_advertise,N,2344,1,,5,,30,N,,,N,N,N,0,N,N,F,1,N,
2345,command,N,2344,1,,5,,INSERT,N,,,N,N,N,0,N,N,F,1,N,
2344,job,N,2322,1,,5,,,Y,,,N,N,N,0,N,N,F,1,Y,
2343,height,N,2338,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2342,width,N,2338,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2341,url,N,2338,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2340,title,N,2338,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2339,link,N,2338,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2337,region,N,2331,1,,5,, ,N,,,N,N,N,0,N,N,F,1,N,"The region can be a state, privince or continent. Change to static when exporting and type-in the value"
2336,country,N,2331,1,,5,, ,N,,,N,N,N,0,N,N,F,1,N,Edit and type-in the value when setting up the feed
2335,skill,N,2331,1,,5,, ,N,,,N,N,N,0,N,N,F,1,N,Edit and type-in the value when setting up the feed
2334,jobs_type,N,2331,1,,5,, ,N,,,N,N,N,0,N,N,F,1,N,Edit and type-in the value when setting up the feed
2333,function,N,2369,1,,5,,,N,,,N,Y,Y,0,N,N,F,1,N,
2332,industry,N,2331,1,,5,, ,N,,,N,N,N,0,N,N,F,1,N,Edit and type-in the value when setting up the feed
2331,targetNiche,N,2322,1,,5,,,N,,,N,N,N,0,N,N,F,1,Y,
2330,webMaster,N,2322,1,,5,,%SITE_CONTACT_EMAIL%,N,,,N,N,N,0,N,N,F,1,N,
2329,managingEditor,N,2322,1,,5,,%SITE_CONTACT_EMAIL%,N,,,N,N,N,0,N,N,F,1,N,
2328,generator,N,2322,1,,5,,%SITE_NAME% - Jamit Job Board,N,,,N,N,N,0,N,N,F,1,N,
2327,lastBuildDate,N,2322,1,,5,,%FEED_DATE%,N,,,N,N,N,0,N,N,F,1,N,
2326,pubDate,N,2322,1,,5,,%FEED_DATE%,N,,,N,N,N,0,N,N,F,1,N,
2325,description,N,2322,1,,5,,%SITE_DESCRIPTION%,N,,,N,N,N,0,N,N,F,1,N,
2323,title,N,2322,1,,5,,%SITE_NAME%,N,,,N,N,N,0,N,N,F,1,N,
2324,link,N,2322,1,,5,,%BASE_HTTP_PATH%,N,,,N,N,N,0,N,N,F,1,N,
2322,jobsFeed,N,2320,1,,5,,,N,,,N,N,N,0,N,N,F,1,Y,
2321,jamitKey,N,2320,1,,5,,,N,,,N,N,N,0,N,N,F,1,N,
2320,jamit,N,0,1,,5,"version=""1.0"" encoding=""utf-8""",,N,,,N,N,N,0,N,N,F,1,Y,
2400,post_mode,N,2344,1,,5,,,N,,,N,Y,Y,0,N,N,F,1,N,"map to the Post Mode, eg. data free, premium or standard"
2401,lang,N,2322,1,,5,,EN,N,,,N,N,N,0,N,N,F,1,N,
2403,longitude,N,2368,1,,5,,,N,,,N,Y,Y,0,N,N,F,1,,

 

Other tutorials, docs & articles

Jamit XML Spec - Explains the Jamit XML spec in detail and provides an example
XML Import Tutorial - How to import from another job board (Advanced)
Extending Functionality - How to customize the functionality XML Importer (Advanced)
Forums - There is a board dedicated to XML Imports / XML Exports