Figure-Eight API

The API allows you to:

  • Create jobs programmatically: you can create a job, add its title, data, GUI (in CML) and configuration (e.g., reward, time).
  • Deploy jobs programmatically: you can publish the job to the crowd programmatically. We discourage you to deploy them without cross-checking manually that everything is set up properly, though!
  • Retrieve the answers to jobs programmatically: you can collect the CSV data files that Figure-Eight generates after having received the answers from the crowd.

Requirements:

  • Have an account in Figure-Eight -- remember the procedure defined in class
  • Look up your Figure-Eight key (Account--> Your details https://make.figure-eight.com/account/user)
  • You will need to check the job ID (after you create a job)

Terminology in Figure-Eight (slightly different from the terminology followed in MTurk): More info at https://success.figure-eight.com/hc/en-us/articles/202703305-Glossary-of-Terms

  • Job: batch of microtasks that share the same GUI, purpose and configuration
  • Judgment: answer provided by a crowd worker
  • Row: each concrete unit that corresponds to a microtask. If you have a sentiment analysis job, you will upload a data file, where every row contains a tweet (and information about the tweet). The job will be deployed to create as many microtasks as rows / tweets your data file has. Crowd workers will accomplish as many microtasks as they decide to.
  • Page: one page is a digital page, that can contain several microtasks. Configuring a page with multiple microtasks helps you to ensure that crowd workers accomplish a minimum number of microtasks.
  • Channel: Figure-Eight is an aggregator, it published the microtasks in multiple labor marketplaces (with a different crowd force, different rules etc.). Each of them is a channel where the microtasks are published.
  • Contributor: contributors are crowd workers - people who accomplish crowd work.
  • Customer: customers are requesters - people who publish crowd work.
import pandas as pd
import requests
import json

Create A Job

f8_key='9usStbnghBSjvnxyEJGv'
url = 'https://api.figure-eight.com/v1/jobs.json?key='+f8_key
    
response = requests.post(url)
    
if (response != None) & (response.status_code == 200): 
    re = response.json()
    print('success!')
    print(re)
    
else:
    print(response.status_code)
        
success!
{'id': 1356294, 'options': {'logical_aggregation': True, 'mail_to': 'sarasua@ifi.uzh.ch', 'req_ttl_in_seconds': 1800}, 'title': None, 'secret': 'R5Zs2WWGuSsIs8QCAE+7JVdgissu9Mk5JqJDaePuFdOO', 'project_number': None, 'alias': None, 'judgments_per_unit': 3, 'units_per_assignment': 5, 'pages_per_assignment': 1, 'max_judgments_per_worker': None, 'gold_per_assignment': 1, 'minimum_account_age_seconds': None, 'execution_mode': 'worker_ui_remix', 'payment_cents': 10, 'design_verified': True, 'public_data': True, 'variable_judgments_mode': 'none', 'max_judgments_per_unit': None, 'expected_judgments_per_unit': None, 'min_unit_confidence': None, 'units_remain_finalized': None, 'auto_order_timeout': None, 'auto_order_threshold': 4, 'completed_at': None, 'state': 'unordered', 'auto_order': False, 'webhook_uri': None, 'send_judgments_webhook': None, 'language': 'en', 'minimum_requirements': None, 'desired_requirements': None, 'max_work_per_network': None, 'copied_from': None, 'created_at': '2019-03-05T13:36:31+00:00', 'updated_at': '2019-03-05T13:36:31+00:00', 'included_countries': [], 'excluded_countries': [], 'instructions': '', 'cml': None, 'js': None, 'css': None, 'confidence_fields': None, 'gold': {}, 'units_count': 0, 'golds_count': 0, 'judgments_count': 0, 'support_email': 'sarasua@ifi.uzh.ch', 'worker_ui_remix': True, 'crowd_costs': 0.0, 'quiz_mode_enabled': False, 'completed': False, 'fields': None, 'order_approved': True}

Create the job adding a title and instructions

url = 'https://api.figure-eight.com/v1/jobs.json?key='+f8_key+'&job[title]=a%20great%20task&job[instructions]=read%20this'
    
response = requests.post(url)
    
if (response != None) & (response.status_code == 200): 
    re = response.json()
    print(re)
else:
    print(response.status_code)
{'id': 1352713, 'options': {'logical_aggregation': True, 'mail_to': 'soccomp2019+u1@protonmail.com', 'req_ttl_in_seconds': 1800}, 'title': 'A Great Task', 'secret': 'YueDH20tRKCwbhGvww2eU664RgzK8P1Yi72HiQFFKCsd', 'project_number': None, 'alias': None, 'judgments_per_unit': 3, 'units_per_assignment': 5, 'pages_per_assignment': 1, 'max_judgments_per_worker': None, 'gold_per_assignment': 1, 'minimum_account_age_seconds': None, 'execution_mode': 'worker_ui_remix', 'payment_cents': 10, 'design_verified': True, 'public_data': False, 'variable_judgments_mode': 'none', 'max_judgments_per_unit': None, 'expected_judgments_per_unit': None, 'min_unit_confidence': None, 'units_remain_finalized': None, 'auto_order_timeout': None, 'auto_order_threshold': 4, 'completed_at': None, 'state': 'unordered', 'auto_order': False, 'webhook_uri': None, 'send_judgments_webhook': None, 'language': 'en', 'minimum_requirements': None, 'desired_requirements': None, 'max_work_per_network': None, 'copied_from': None, 'created_at': '2019-02-25T10:15:35+00:00', 'updated_at': '2019-02-25T10:15:35+00:00', 'included_countries': [], 'excluded_countries': [], 'instructions': 'read this', 'cml': None, 'js': None, 'css': None, 'confidence_fields': None, 'gold': {}, 'units_count': 0, 'golds_count': 0, 'judgments_count': 0, 'support_email': 'soccomp2019+u1@protonmail.com', 'worker_ui_remix': True, 'crowd_costs': 0.0, 'quiz_mode_enabled': False, 'completed': False, 'fields': None, 'order_approved': False}

Add data to an existing job

jobid = '1356294'

url = 'https://api.figure-eight.com/v1/jobs/'+jobid+'/upload.json?key='+f8_key+'&force=true'


myheaders = {'content-type': 'text/csv'}

with open('./data_f8.csv', newline='') as csvFile: 
    
    response = requests.put(url=url,headers=myheaders,data=csvFile.read())
    
    if (response != None) & (response.status_code == 200): 
        re = response.json()
        print(re)
    else:
        print(response.status_code)
{'id': 1356294, 'options': {'logical_aggregation': True, 'mail_to': 'sarasua@ifi.uzh.ch', 'req_ttl_in_seconds': 1800}, 'title': None, 'secret': 'R5Zs2WWGuSsIs8QCAE+7JVdgissu9Mk5JqJDaePuFdOO', 'project_number': None, 'alias': None, 'judgments_per_unit': 3, 'units_per_assignment': 5, 'pages_per_assignment': 1, 'max_judgments_per_worker': None, 'gold_per_assignment': 1, 'minimum_account_age_seconds': None, 'execution_mode': 'worker_ui_remix', 'payment_cents': 10, 'design_verified': True, 'public_data': True, 'variable_judgments_mode': 'none', 'max_judgments_per_unit': None, 'expected_judgments_per_unit': None, 'min_unit_confidence': None, 'units_remain_finalized': None, 'auto_order_timeout': None, 'auto_order_threshold': 4, 'completed_at': None, 'state': 'unordered', 'auto_order': False, 'webhook_uri': None, 'send_judgments_webhook': None, 'language': 'en', 'minimum_requirements': None, 'desired_requirements': None, 'max_work_per_network': None, 'copied_from': None, 'created_at': '2019-03-05T13:36:31+00:00', 'updated_at': '2019-03-05T13:36:31+00:00', 'included_countries': [], 'excluded_countries': [], 'instructions': '', 'cml': None, 'js': None, 'css': None, 'confidence_fields': None, 'gold': {}, 'units_count': 0, 'golds_count': 0, 'judgments_count': 0, 'support_email': 'sarasua@ifi.uzh.ch', 'worker_ui_remix': True, 'crowd_costs': 0.0, 'quiz_mode_enabled': False, 'completed': False, 'fields': None, 'order_approved': True}

Check the number of rows in the job

jobid = '1356294'
url = 'https://api.figure-eight.com/v1/jobs/'+jobid+'/units/ping.json?key='+f8_key


response = requests.get(url=url)
if (response != None) & (response.status_code == 200): 
    re = response.json()
    print(re)
else:
    print(response.status_code)
{'count': 100}

Add a GUI (specified in CML) and set configuration of the job, indicating the number of judgments etc.

cml ='''<div class="html-element-wrapper">
  <p>Read the text below paying close attention to detail:</p>
  <span>{{content}}</span>
  <br />
  <br />
  <a href="%7B%7Burl%7D%7D" target="_blank"></a>
  <a href="{{url}}" target="_blank">Click here to open the original post for additional information.</a>
</div>

<cml:radios label="What is the author&#x27;s sentiment (feeling) throughout the post as it relates to MLB trade rumors?" validates="required" gold="true">
  <cml:radio label="Positive" value="1" />
  <cml:radio label="Neutral" value="2" />
  <cml:radio label="Negative" value="3" />
</cml:radios>'''
jobid= '1356294'
url = 'https://api.figure-eight.com/v1/jobs/'+jobid+'.json?key='+f8_key

parameters ={'job[cml]':cml,'job[judgments_per_unit]':10, 'job[payment_cents]':80,'job[max_judgments_per_worker]':1}

myheaders = {'content-type': 'application/xml'}
response = requests.put(url,headers=myheaders,params=parameters)
    
if (response != None) & (response.status_code == 200): 
    re = response.json()
    print(re)
else:
    print(response.status_code)
{'id': 1356294, 'options': {'logical_aggregation': True, 'mail_to': 'sarasua@ifi.uzh.ch', 'req_ttl_in_seconds': 1800}, 'title': "This Is A Beautiful Title, Don't You Think So?", 'secret': 'R5Zs2WWGuSsIs8QCAE+7JVdgissu9Mk5JqJDaePuFdOO', 'project_number': None, 'alias': None, 'judgments_per_unit': 10, 'units_per_assignment': 5, 'pages_per_assignment': 1, 'max_judgments_per_worker': 1, 'gold_per_assignment': 1, 'minimum_account_age_seconds': None, 'execution_mode': 'worker_ui_remix', 'payment_cents': 80, 'design_verified': True, 'public_data': True, 'variable_judgments_mode': 'none', 'max_judgments_per_unit': None, 'expected_judgments_per_unit': None, 'min_unit_confidence': None, 'units_remain_finalized': None, 'auto_order_timeout': None, 'auto_order_threshold': 4, 'completed_at': None, 'state': 'unordered', 'auto_order': False, 'webhook_uri': None, 'send_judgments_webhook': None, 'language': 'en', 'minimum_requirements': None, 'desired_requirements': None, 'max_work_per_network': None, 'copied_from': None, 'created_at': '2019-03-05T13:36:31+00:00', 'updated_at': '2019-03-05T13:38:21+00:00', 'included_countries': [], 'excluded_countries': [], 'instructions': '<h1>Overview</h1><p>Blablablablablbalbalbal<br></p><hr><h1>Steps</h1><p>One</p><p>Two<br>threee<br></p><hr><h1>Rules &amp; Tips</h1><hr><h1>Examples</h1><p>Blablablabalbalbal<br></p><hr>', 'cml': '<div class="html-element-wrapper">\n  <p>Read the text below paying close attention to detail:</p>\n  <span>{{content}}</span>\n  <br />\n  <br />\n  <a href="%7B%7Burl%7D%7D" target="_blank"></a>\n  <a href="{{url}}" target="_blank">Click here to open the original post for additional information.</a>\n</div>\n\n<cml:radios label="What is the author&#x27;s sentiment (feeling) throughout the post as it relates to MLB trade rumors?" validates="required" gold="true">\n  <cml:radio label="Positive" value="1" />\n  <cml:radio label="Neutral" value="2" />\n  <cml:radio label="Negative" value="3" />\n</cml:radios>', 'js': '', 'css': '', 'confidence_fields': ['what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors'], 'gold': {'what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors': 'what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors_gold'}, 'units_count': 100, 'golds_count': 0, 'judgments_count': 0, 'support_email': 'sarasua@ifi.uzh.ch', 'worker_ui_remix': True, 'crowd_costs': 0.0, 'quiz_mode_enabled': False, 'completed': False, 'fields': {'what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors': 'agg'}, 'order_approved': True}

Publish the job

url = 'https://api.figure-eight.com/v1/jobs/'+jobid+'.json?key='+f8_key

parameters ={'job[auto_order]': 'true'}

response = requests.put(url,params=parameters)
    
if (response != None) & (response.status_code == 200): 
    re = response.json()
    print(re)
else:
    print(response.status_code)
{'id': 1356294, 'options': {'logical_aggregation': True, 'mail_to': 'sarasua@ifi.uzh.ch', 'req_ttl_in_seconds': 1800}, 'title': "This Is A Beautiful Title, Don't You Think So?", 'secret': 'R5Zs2WWGuSsIs8QCAE+7JVdgissu9Mk5JqJDaePuFdOO', 'project_number': None, 'alias': None, 'judgments_per_unit': 10, 'units_per_assignment': 5, 'pages_per_assignment': 1, 'max_judgments_per_worker': 1, 'gold_per_assignment': 1, 'minimum_account_age_seconds': None, 'execution_mode': 'worker_ui_remix', 'payment_cents': 80, 'design_verified': True, 'public_data': True, 'variable_judgments_mode': 'none', 'max_judgments_per_unit': None, 'expected_judgments_per_unit': None, 'min_unit_confidence': None, 'units_remain_finalized': None, 'auto_order_timeout': None, 'auto_order_threshold': 4, 'completed_at': None, 'state': 'unordered', 'auto_order': True, 'webhook_uri': None, 'send_judgments_webhook': None, 'language': 'en', 'minimum_requirements': None, 'desired_requirements': None, 'max_work_per_network': None, 'copied_from': None, 'created_at': '2019-03-05T13:36:31+00:00', 'updated_at': '2019-03-05T13:38:29+00:00', 'included_countries': [], 'excluded_countries': [], 'instructions': '<h1>Overview</h1><p>Blablablablablbalbalbal<br></p><hr><h1>Steps</h1><p>One</p><p>Two<br>threee<br></p><hr><h1>Rules &amp; Tips</h1><hr><h1>Examples</h1><p>Blablablabalbalbal<br></p><hr>', 'cml': '<div class="html-element-wrapper">\n  <p>Read the text below paying close attention to detail:</p>\n  <span>{{content}}</span>\n  <br />\n  <br />\n  <a href="%7B%7Burl%7D%7D" target="_blank"></a>\n  <a href="{{url}}" target="_blank">Click here to open the original post for additional information.</a>\n</div>\n\n<cml:radios label="What is the author&#x27;s sentiment (feeling) throughout the post as it relates to MLB trade rumors?" validates="required" gold="true">\n  <cml:radio label="Positive" value="1" />\n  <cml:radio label="Neutral" value="2" />\n  <cml:radio label="Negative" value="3" />\n</cml:radios>', 'js': '', 'css': '', 'confidence_fields': ['what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors'], 'gold': {'what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors': 'what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors_gold'}, 'units_count': 100, 'golds_count': 0, 'judgments_count': 0, 'support_email': 'sarasua@ifi.uzh.ch', 'worker_ui_remix': True, 'crowd_costs': 0.0, 'quiz_mode_enabled': False, 'completed': False, 'fields': {'what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors': 'agg'}, 'order_approved': True}
jobid = '1356294'

url = 'https://api.figure-eight.com/v1/jobs/'+jobid+'/regenerate?type=full&key='+f8_key
response = requests.post(url)
    
if (response != None) & (response.status_code == 200): 
    re = response.content
    print(re)
else:
    print(response.status_code)
b'<!DOCTYPE html>\n<html lang="en">\n  <head>\n    \n<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"b6a3395450","applicationID":"2391694","transactionName":"dVgIFxEMD1RTREteClRESREGBAZWU0QFQAA=","queueTime":0,"applicationTime":59,"agent":""}</script>\n<script type="text/javascript">(window.NREUM||(NREUM={})).loader_config={xpid:"VQICWF9ACgAJVVdbAw=="};window.NREUM||(NREUM={}),__nr_require=function(t,n,e){function r(e){if(!n[e]){var o=n[e]={exports:{}};t[e][0].call(o.exports,function(n){var o=t[e][1][n];return r(o||n)},o,o.exports)}return n[e].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<e.length;o++)r(e[o]);return r}({1:[function(t,n,e){function r(t){try{s.console&&console.log(t)}catch(n){}}var o,i=t("ee"),a=t(16),s={};try{o=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(s.console=!0,o.indexOf("dev")!==-1&&(s.dev=!0),o.indexOf("nr_dev")!==-1&&(s.nrDev=!0))}catch(c){}s.nrDev&&i.on("internal-error",function(t){r(t.stack)}),s.dev&&i.on("fn-err",function(t,n,e){r(e.stack)}),s.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(s,function(t,n){return t}).join(", ")))},{}],2:[function(t,n,e){function r(t,n,e,r,s){try{p?p-=1:o(s||new UncaughtException(t,n,e),!0)}catch(f){try{i("ierr",[f,c.now(),!0])}catch(d){}}return"function"==typeof u&&u.apply(this,a(arguments))}function UncaughtException(t,n,e){this.message=t||"Uncaught error with no additional information",this.sourceURL=n,this.line=e}function o(t,n){var e=n?null:c.now();i("err",[t,e])}var i=t("handle"),a=t(17),s=t("ee"),c=t("loader"),f=t("gos"),u=window.onerror,d=!1,l="nr@seenError",p=0;c.features.err=!0,t(1),window.onerror=r;try{throw new Error}catch(h){"stack"in h&&(t(8),t(7),"addEventListener"in window&&t(5),c.xhrWrappable&&t(9),d=!0)}s.on("fn-start",function(t,n,e){d&&(p+=1)}),s.on("fn-err",function(t,n,e){d&&!e[l]&&(f(e,l,function(){return!0}),this.thrown=!0,o(e))}),s.on("fn-end",function(){d&&!this.thrown&&p>0&&(p-=1)}),s.on("internal-error",function(t){i("ierr",[t,c.now(),!0])})},{}],3:[function(t,n,e){t("loader").features.ins=!0},{}],4:[function(t,n,e){function r(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var o=t("ee"),i=t("handle"),a=t(8),s=t(7),c="learResourceTimings",f="addEventListener",u="resourcetimingbufferfull",d="bstResource",l="resource",p="-start",h="-end",m="fn"+p,v="fn"+h,w="bstTimer",y="pushState",g=t("loader");g.features.stn=!0,t(6);var b=NREUM.o.EV;o.on(m,function(t,n){var e=t[0];e instanceof b&&(this.bstStart=g.now())}),o.on(v,function(t,n){var e=t[0];e instanceof b&&i("bst",[e,n,this.bstStart,g.now()])}),a.on(m,function(t,n,e){this.bstStart=g.now(),this.bstType=e}),a.on(v,function(t,n){i(w,[n,this.bstStart,g.now(),this.bstType])}),s.on(m,function(){this.bstStart=g.now()}),s.on(v,function(t,n){i(w,[n,this.bstStart,g.now(),"requestAnimationFrame"])}),o.on(y+p,function(t){this.time=g.now(),this.startPath=location.pathname+location.hash}),o.on(y+h,function(t){i("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),f in window.performance&&(window.performance["c"+c]?window.performance[f](u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["c"+c]()},!1):window.performance[f]("webkit"+u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["webkitC"+c]()},!1)),document[f]("scroll",r,{passive:!0}),document[f]("keypress",r,!1),document[f]("click",r,!1)}},{}],5:[function(t,n,e){function r(t){for(var n=t;n&&!n.hasOwnProperty(u);)n=Object.getPrototypeOf(n);n&&o(n)}function o(t){s.inPlace(t,[u,d],"-",i)}function i(t,n){return t[1]}var a=t("ee").get("events"),s=t(19)(a,!0),c=t("gos"),f=XMLHttpRequest,u="addEventListener",d="removeEventListener";n.exports=a,"getPrototypeOf"in Object?(r(document),r(window),r(f.prototype)):f.prototype.hasOwnProperty(u)&&(o(window),o(f.prototype)),a.on(u+"-start",function(t,n){var e=t[1],r=c(e,"nr@wrapped",function(){function t(){if("function"==typeof e.handleEvent)return e.handleEvent.apply(e,arguments)}var n={object:t,"function":e}[typeof e];return n?s(n,"fn-",null,n.name||"anonymous"):e});this.wrapped=t[1]=r}),a.on(d+"-start",function(t){t[1]=this.wrapped||t[1]})},{}],6:[function(t,n,e){var r=t("ee").get("history"),o=t(19)(r);n.exports=r,o.inPlace(window.history,["pushState","replaceState"],"-")},{}],7:[function(t,n,e){var r=t("ee").get("raf"),o=t(19)(r),i="equestAnimationFrame";n.exports=r,o.inPlace(window,["r"+i,"mozR"+i,"webkitR"+i,"msR"+i],"raf-"),r.on("raf-start",function(t){t[0]=o(t[0],"fn-")})},{}],8:[function(t,n,e){function r(t,n,e){t[0]=a(t[0],"fn-",null,e)}function o(t,n,e){this.method=e,this.timerDuration=isNaN(t[1])?0:+t[1],t[0]=a(t[0],"fn-",this,e)}var i=t("ee").get("timer"),a=t(19)(i),s="setTimeout",c="setInterval",f="clearTimeout",u="-start",d="-";n.exports=i,a.inPlace(window,[s,"setImmediate"],s+d),a.inPlace(window,[c],c+d),a.inPlace(window,[f,"clearImmediate"],f+d),i.on(c+u,r),i.on(s+u,o)},{}],9:[function(t,n,e){function r(t,n){d.inPlace(n,["onreadystatechange"],"fn-",s)}function o(){var t=this,n=u.context(t);t.readyState>3&&!n.resolved&&(n.resolved=!0,u.emit("xhr-resolved",[],t)),d.inPlace(t,y,"fn-",s)}function i(t){g.push(t),h&&(x?x.then(a):v?v(a):(E=-E,O.data=E))}function a(){for(var t=0;t<g.length;t++)r([],g[t]);g.length&&(g=[])}function s(t,n){return n}function c(t,n){for(var e in t)n[e]=t[e];return n}t(5);var f=t("ee"),u=f.get("xhr"),d=t(19)(u),l=NREUM.o,p=l.XHR,h=l.MO,m=l.PR,v=l.SI,w="readystatechange",y=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],g=[];n.exports=u;var b=window.XMLHttpRequest=function(t){var n=new p(t);try{u.emit("new-xhr",[n],n),n.addEventListener(w,o,!1)}catch(e){try{u.emit("internal-error",[e])}catch(r){}}return n};if(c(p,b),b.prototype=p.prototype,d.inPlace(b.prototype,["open","send"],"-xhr-",s),u.on("send-xhr-start",function(t,n){r(t,n),i(n)}),u.on("open-xhr-start",r),h){var x=m&&m.resolve();if(!v&&!m){var E=1,O=document.createTextNode(E);new h(a).observe(O,{characterData:!0})}}else f.on("fn-end",function(t){t[0]&&t[0].type===w||a()})},{}],10:[function(t,n,e){function r(t){var n=this.params,e=this.metrics;if(!this.ended){this.ended=!0;for(var r=0;r<d;r++)t.removeEventListener(u[r],this.listener,!1);if(!n.aborted){if(e.duration=a.now()-this.startTime,4===t.readyState){n.status=t.status;var i=o(t,this.lastSize);if(i&&(e.rxSize=i),this.sameOrigin){var c=t.getResponseHeader("X-NewRelic-App-Data");c&&(n.cat=c.split(", ").pop())}}else n.status=0;e.cbTime=this.cbTime,f.emit("xhr-done",[t],t),s("xhr",[n,e,this.startTime])}}}function o(t,n){var e=t.responseType;if("json"===e&&null!==n)return n;var r="arraybuffer"===e||"blob"===e||"json"===e?t.response:t.responseText;return h(r)}function i(t,n){var e=c(n),r=t.params;r.host=e.hostname+":"+e.port,r.pathname=e.pathname,t.sameOrigin=e.sameOrigin}var a=t("loader");if(a.xhrWrappable){var s=t("handle"),c=t(11),f=t("ee"),u=["load","error","abort","timeout"],d=u.length,l=t("id"),p=t(14),h=t(13),m=window.XMLHttpRequest;a.features.xhr=!0,t(9),f.on("new-xhr",function(t){var n=this;n.totalCbs=0,n.called=0,n.cbTime=0,n.end=r,n.ended=!1,n.xhrGuids={},n.lastSize=null,p&&(p>34||p<10)||window.opera||t.addEventListener("progress",function(t){n.lastSize=t.loaded},!1)}),f.on("open-xhr-start",function(t){this.params={method:t[0]},i(this,t[1]),this.metrics={}}),f.on("open-xhr-end",function(t,n){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid)}),f.on("send-xhr-start",function(t,n){var e=this.metrics,r=t[0],o=this;if(e&&r){var i=h(r);i&&(e.txSize=i)}this.startTime=a.now(),this.listener=function(t){try{"abort"===t.type&&(o.params.aborted=!0),("load"!==t.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof n.onload))&&o.end(n)}catch(e){try{f.emit("internal-error",[e])}catch(r){}}};for(var s=0;s<d;s++)n.addEventListener(u[s],this.listener,!1)}),f.on("xhr-cb-time",function(t,n,e){this.cbTime+=t,n?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof e.onload||this.end(e)}),f.on("xhr-load-added",function(t,n){var e=""+l(t)+!!n;this.xhrGuids&&!this.xhrGuids[e]&&(this.xhrGuids[e]=!0,this.totalCbs+=1)}),f.on("xhr-load-removed",function(t,n){var e=""+l(t)+!!n;this.xhrGuids&&this.xhrGuids[e]&&(delete this.xhrGuids[e],this.totalCbs-=1)}),f.on("addEventListener-end",function(t,n){n instanceof m&&"load"===t[0]&&f.emit("xhr-load-added",[t[1],t[2]],n)}),f.on("removeEventListener-end",function(t,n){n instanceof m&&"load"===t[0]&&f.emit("xhr-load-removed",[t[1],t[2]],n)}),f.on("fn-start",function(t,n,e){n instanceof m&&("onload"===e&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=a.now()))}),f.on("fn-end",function(t,n){this.xhrCbStart&&f.emit("xhr-cb-time",[a.now()-this.xhrCbStart,this.onload,n],n)})}},{}],11:[function(t,n,e){n.exports=function(t){var n=document.createElement("a"),e=window.location,r={};n.href=t,r.port=n.port;var o=n.href.split("://");!r.port&&o[1]&&(r.port=o[1].split("/")[0].split("@").pop().split(":")[1]),r.port&&"0"!==r.port||(r.port="https"===o[0]?"443":"80"),r.hostname=n.hostname||e.hostname,r.pathname=n.pathname,r.protocol=o[0],"/"!==r.pathname.charAt(0)&&(r.pathname="/"+r.pathname);var i=!n.protocol||":"===n.protocol||n.protocol===e.protocol,a=n.hostname===document.domain&&n.port===e.port;return r.sameOrigin=i&&(!n.hostname||a),r}},{}],12:[function(t,n,e){function r(){}function o(t,n,e){return function(){return i(t,[f.now()].concat(s(arguments)),n?null:this,e),n?void 0:this}}var i=t("handle"),a=t(16),s=t(17),c=t("ee").get("tracer"),f=t("loader"),u=NREUM;"undefined"==typeof window.newrelic&&(newrelic=u);var d=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],l="api-",p=l+"ixn-";a(d,function(t,n){u[n]=o(l+n,!0,"api")}),u.addPageAction=o(l+"addPageAction",!0),u.setCurrentRouteName=o(l+"routeName",!0),n.exports=newrelic,u.interaction=function(){return(new r).get()};var h=r.prototype={createTracer:function(t,n){var e={},r=this,o="function"==typeof n;return i(p+"tracer",[f.now(),t,e],r),function(){if(c.emit((o?"":"no-")+"fn-start",[f.now(),r,o],e),o)try{return n.apply(this,arguments)}catch(t){throw c.emit("fn-err",[arguments,this,t],e),t}finally{c.emit("fn-end",[f.now()],e)}}}};a("actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,n){h[n]=o(p+n)}),newrelic.noticeError=function(t,n){"string"==typeof t&&(t=new Error(t)),i("err",[t,f.now(),!1,n])}},{}],13:[function(t,n,e){n.exports=function(t){if("string"==typeof t&&t.length)return t.length;if("object"==typeof t){if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if(!("undefined"!=typeof FormData&&t instanceof FormData))try{return JSON.stringify(t).length}catch(n){return}}}},{}],14:[function(t,n,e){var r=0,o=navigator.userAgent.match(/Firefox[\\/\\s](\\d+\\.\\d+)/);o&&(r=+o[1]),n.exports=r},{}],15:[function(t,n,e){function r(t,n){if(!o)return!1;if(t!==o)return!1;if(!n)return!0;if(!i)return!1;for(var e=i.split("."),r=n.split("."),a=0;a<r.length;a++)if(r[a]!==e[a])return!1;return!0}var o=null,i=null,a=/Version\\/(\\S+)\\s+Safari/;if(navigator.userAgent){var s=navigator.userAgent,c=s.match(a);c&&s.indexOf("Chrome")===-1&&s.indexOf("Chromium")===-1&&(o="Safari",i=c[1])}n.exports={agent:o,version:i,match:r}},{}],16:[function(t,n,e){function r(t,n){var e=[],r="",i=0;for(r in t)o.call(t,r)&&(e[i]=n(r,t[r]),i+=1);return e}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],17:[function(t,n,e){function r(t,n,e){n||(n=0),"undefined"==typeof e&&(e=t?t.length:0);for(var r=-1,o=e-n||0,i=Array(o<0?0:o);++r<o;)i[r]=t[n+r];return i}n.exports=r},{}],18:[function(t,n,e){n.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],19:[function(t,n,e){function r(t){return!(t&&t instanceof Function&&t.apply&&!t[a])}var o=t("ee"),i=t(17),a="nr@original",s=Object.prototype.hasOwnProperty,c=!1;n.exports=function(t,n){function e(t,n,e,o){function nrWrapper(){var r,a,s,c;try{a=this,r=i(arguments),s="function"==typeof e?e(r,a):e||{}}catch(f){l([f,"",[r,a,o],s])}u(n+"start",[r,a,o],s);try{return c=t.apply(a,r)}catch(d){throw u(n+"err",[r,a,d],s),d}finally{u(n+"end",[r,a,c],s)}}return r(t)?t:(n||(n=""),nrWrapper[a]=t,d(t,nrWrapper),nrWrapper)}function f(t,n,o,i){o||(o="");var a,s,c,f="-"===o.charAt(0);for(c=0;c<n.length;c++)s=n[c],a=t[s],r(a)||(t[s]=e(a,f?s+o:o,i,s))}function u(e,r,o){if(!c||n){var i=c;c=!0;try{t.emit(e,r,o,n)}catch(a){l([a,e,r,o])}c=i}}function d(t,n){if(Object.defineProperty&&Object.keys)try{var e=Object.keys(t);return e.forEach(function(e){Object.defineProperty(n,e,{get:function(){return t[e]},set:function(n){return t[e]=n,n}})}),n}catch(r){l([r])}for(var o in t)s.call(t,o)&&(n[o]=t[o]);return n}function l(n){try{t.emit("internal-error",n)}catch(e){}}return t||(t=o),e.inPlace=f,e.flag=a,e}},{}],ee:[function(t,n,e){function r(){}function o(t){function n(t){return t&&t instanceof r?t:t?c(t,s,i):i()}function e(e,r,o,i){if(!l.aborted||i){t&&t(e,r,o);for(var a=n(o),s=m(e),c=s.length,f=0;f<c;f++)s[f].apply(a,r);var d=u[g[e]];return d&&d.push([b,e,r,a]),a}}function p(t,n){y[t]=m(t).concat(n)}function h(t,n){var e=y[t];if(e)for(var r=0;r<e.length;r++)e[r]===n&&e.splice(r,1)}function m(t){return y[t]||[]}function v(t){return d[t]=d[t]||o(e)}function w(t,n){f(t,function(t,e){n=n||"feature",g[e]=n,n in u||(u[n]=[])})}var y={},g={},b={on:p,addEventListener:p,removeEventListener:h,emit:e,get:v,listeners:m,context:n,buffer:w,abort:a,aborted:!1};return b}function i(){return new r}function a(){(u.api||u.feature)&&(l.aborted=!0,u=l.backlog={})}var s="nr@context",c=t("gos"),f=t(16),u={},d={},l=n.exports=o();l.backlog=u},{}],gos:[function(t,n,e){function r(t,n,e){if(o.call(t,n))return t[n];var r=e();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,n,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return t[n]=r,r}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],handle:[function(t,n,e){function r(t,n,e,r){o.buffer([t],r),o.emit(t,n,e)}var o=t("ee").get("handle");n.exports=r,r.ee=o},{}],id:[function(t,n,e){function r(t){var n=typeof t;return!t||"object"!==n&&"function"!==n?-1:t===window?0:a(t,i,function(){return o++})}var o=1,i="nr@id",a=t("gos");n.exports=r},{}],loader:[function(t,n,e){function r(){if(!E++){var t=x.info=NREUM.info,n=p.getElementsByTagName("script")[0];if(setTimeout(u.abort,3e4),!(t&&t.licenseKey&&t.applicationID&&n))return u.abort();f(g,function(n,e){t[n]||(t[n]=e)}),c("mark",["onload",a()+x.offset],null,"api");var e=p.createElement("script");e.src="https://"+t.agent,n.parentNode.insertBefore(e,n)}}function o(){"complete"===p.readyState&&i()}function i(){c("mark",["domContent",a()+x.offset],null,"api")}function a(){return O.exists&&performance.now?Math.round(performance.now()):(s=Math.max((new Date).getTime(),s))-x.offset}var s=(new Date).getTime(),c=t("handle"),f=t(16),u=t("ee"),d=t(15),l=window,p=l.document,h="addEventListener",m="attachEvent",v=l.XMLHttpRequest,w=v&&v.prototype;NREUM.o={ST:setTimeout,SI:l.setImmediate,CT:clearTimeout,XHR:v,REQ:l.Request,EV:l.Event,PR:l.Promise,MO:l.MutationObserver};var y=""+location,g={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1118.min.js"},b=v&&w&&w[h]&&!/CriOS/.test(navigator.userAgent),x=n.exports={offset:s,now:a,origin:y,features:{},xhrWrappable:b,userAgent:d};t(12),p[h]?(p[h]("DOMContentLoaded",i,!1),l[h]("load",r,!1)):(p[m]("onreadystatechange",o),l[m]("onload",r)),c("mark",["firstbyte",s],null,"api");var E=0,O=t(18)},{}]},{},["loader",2,10,4,3]);</script>\n    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>\n    <title>Figure Eight</title>\n\n    \n\n    <script src="/javascripts/bundles/crowdflower_base.js?v=f2ee"></script>\n    <script type="text/javascript">\nif (typeof CrowdFlower == "undefined") CrowdFlower = {};\nif (typeof CrowdFlower.Constants == "undefined") CrowdFlower.Constants = {};\n\nCrowdFlower.Constants = {"job":{"excluded_country_limit":15,"included_country_limit":20,"minimum_conversion_warning_threshold":50}};\n</script>\n\n\n\n    \n    \n    <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" type="text/css" rel="Stylesheet" charset="utf-8" media="all" />\n\n    <script type="text/javascript">\n  window.analytics||(window.analytics=[]),window.analytics.methods=["initialize","identify","track","trackLink","trackForm","trackClick","trackSubmit","page","pageview","ab","alias","ready","group","on","once","off"],window.analytics.factory=function(t){return function(){var a=Array.prototype.slice.call(arguments);return a.unshift(t),window.analytics.push(a),window.analytics}};for(var i=0;window.analytics.methods.length>i;i++){var method=window.analytics.methods[i];window.analytics[method]=window.analytics.factory(method)};(function(){var a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src="//d2dq2ahtl5zl1z.cloudfront.net/analytics.js/v1/oxjab4lxcr/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(a,n)})();\n  \n  window._aopts = {"exclude":["Olark"]};\n  _aopts.Intercom = {userHash: "c897402fde181af497fa2754171c26bbab4610d0e233a36c8d1a9f81c0247282"};\n  analytics.ready(function () {\n    if(_aopts.exclude && _aopts.exclude.length > 0) {\n      _aopts.providers = {\'All\': false}\n      for(key in analytics.Integrations) {\n        if(analytics.Integrations.hasOwnProperty(key)) {\n          _aopts.providers[key] = _aopts.exclude.indexOf(key) == -1\n        }\n      }\n    }\n    if(typeof(olark) == "function") {\n      olark("api.box.hide");\n    }\n  });\n  analytics.page(_aopts);\n  analytics.identify(136368, {"email":"sarasua@ifi.uzh.ch","name":"Sar ","firstName":"Sar","lastName":"","plan":"data_for_everyone","created":"2018-02-28T13:16:13+00:00","company":null,"balance":0.0,"team_id":"52ebe94a-a7bf-465f-8e71-7a479b71a2f1","team_name":"sarasua@ifi.uzh.ch"}, _aopts);\n</script>\n      <script type="text/javascript">\n    window.$zopim||(function(d,s){var z=$zopim=function(c){z._.push(c)},$=z.s=\n        d.createElement(s),e=d.getElementsByTagName(s)[0];z.set=function(o){z.set.\n        _.push(o)};z._=[];z.set._=[];$.async=!0;$.setAttribute(\'charset\',\'utf-8\');\n      $.src=\'//v2.zopim.com/?22NXfsdXVjIeHsS8ZLKTewNtYekNIybv\';z.t=+new Date;$.\n          type=\'text/javascript\';e.parentNode.insertBefore($,e)})(document,\'script\');\n  </script>\n\n\n    <link href="/stylesheets/postcss.css?1522764769" type="text/css" rel="Stylesheet" charset="utf-8" media="all" />\n    <link href="/stylesheets/gold.css" type="text/css" rel="Stylesheet" charset="utf-8" media="all" />\n    <link href="/stylesheets/nebula/gold.css" type="text/css" rel="Stylesheet" charset="utf-8" media="all" />\n    <link href="//fonts.googleapis.com/css?family=Lato:100,300,400,700,900" type="text/css" rel="Stylesheet" charset="utf-8" media="all" />\n    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript" charset="utf-8"></script>\n    <script>\n      $.noConflict();\n    </script>\n    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>\n\n    <style>\n      .sidebar-module ul, ul.tabs-body {\n        list-style: none;\n        padding: 0;\n      }\n    </style>\n\n    <link href="/favicon.ico?v=3" rel="shortcut icon" type="image/x-icon" />\n\n    \n  </head>\n  <body class="b-layout thin  job-nav builder nebula">\n\n    <div class="b-header thin">\n  <div class="b-header__container">\n    <a href="/jobs" class="b-header__brand">\n      <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"\n     viewBox="0 0 45 40" class="core-ui-icon crowdflower-logotype">\n  <path class="vibrant-fill" d="M43.9,13.525c-1.567-3.343-5.284-4.987-8.727-4.06c-0.012-0.235-0.03-0.47-0.06-0.707\n  c-0.678-5.472-5.666-9.359-11.139-8.682c-4.933,0.611-8.577,4.725-8.752,9.537c-0.123-0.027-0.245-0.056-0.369-0.081\n  c-6.766-1.307-13.316,3.122-14.625,9.89c-1.309,6.77,3.121,13.318,9.888,14.625c3.156,0.609,6.257-0.027,8.804-1.562\n  c-1.381-1.83-2.255-4.033-2.47-6.379c-1.283,1.154-3.063,1.719-4.884,1.369c-3.083-0.596-5.097-3.578-4.503-6.658\n  c0.597-3.08,3.576-5.093,6.658-4.498c1.801,0.348,3.234,1.517,4,3.041c1.041-2.081,2.633-3.794,4.549-4.993\n  c0.205-0.105,0.415-0.205,0.628-0.297c-1.194-0.689-2.066-1.905-2.249-3.378c-0.309-2.491,1.461-4.761,3.952-5.07\n  c2.491-0.309,4.76,1.46,5.069,3.951c0.182,1.458-0.355,2.837-1.325,3.795c1.868,0.284,3.587,1.091,4.986,2.282\n  c0.112,0.114,0.223,0.229,0.329,0.351c0.217-1.013,0.881-1.916,1.89-2.387c1.707-0.798,3.734-0.061,4.535,1.644\n  c0.797,1.706,0.06,3.732-1.647,4.531c-0.998,0.467-2.104,0.406-3.013-0.066c0.175,1.059,0.118,2.127-0.149,3.135\n  c-0.138,0.404-0.317,0.797-0.54,1.17c0.857-0.088,1.742,0.207,2.378,0.883c1.071,1.146,1.008,2.945-0.137,4.016\n  c-1.145,1.072-2.944,1.01-4.016-0.137c-0.625-0.67-0.864-1.562-0.723-2.404c-0.924,0.479-1.938,0.709-2.947,0.697\n  c-0.228-0.02-0.455-0.055-0.682-0.105c0.281,0.627,0.274,1.373-0.084,2.02c-0.604,1.096-1.981,1.492-3.077,0.887\n  c-1.093-0.604-1.49-1.982-0.886-3.076c0.355-0.641,0.973-1.041,1.647-1.143c-0.657-0.646-1.106-1.455-1.327-2.322\n  c-0.01-0.068-0.019-0.137-0.025-0.205c0,0,0,0-0.001,0c0,0,0,0,0-0.002c-0.03,0.027-0.062,0.051-0.094,0.076\n  c-0.025,0.02-0.049,0.041-0.075,0.059c-0.018,0.014-0.038,0.023-0.056,0.035c-0.045,0.029-0.09,0.059-0.138,0.084\n  c-0.043,0.023-0.088,0.045-0.133,0.064c-0.008,0.004-0.017,0.008-0.025,0.012c-0.022,0.01-0.047,0.016-0.07,0.025\n  c-0.049,0.018-0.099,0.035-0.15,0.049c-0.034,0.01-0.07,0.016-0.104,0.023c-0.04,0.01-0.08,0.016-0.12,0.021\n  s-0.081,0.012-0.123,0.014c-0.034,0.002-0.069,0.002-0.103,0.004c-0.047,0-0.094,0.002-0.141-0.002\n  c-0.018-0.002-0.035-0.004-0.052-0.006c-0.057-0.006-0.114-0.012-0.171-0.023c-0.981-0.189-1.623-1.139-1.434-2.119\n  c0.19-0.98,1.138-1.621,2.12-1.432c0.574,0.109,1.03,0.482,1.273,0.967c0.332-0.662,0.839-1.207,1.449-1.588\n  c0.065-0.035,0.131-0.066,0.2-0.096c-0.38-0.219-0.658-0.606-0.716-1.075c-0.098-0.793,0.465-1.516,1.258-1.614\n  c0.793-0.099,1.515,0.464,1.614,1.258c0.057,0.464-0.113,0.903-0.422,1.208c0.595,0.09,1.143,0.348,1.588,0.727\n  c0.036,0.035,0.071,0.072,0.105,0.111c0.069-0.322,0.28-0.609,0.601-0.76c0.543-0.254,1.189-0.02,1.444,0.521\n  c0.254,0.545,0.02,1.191-0.524,1.445c-0.318,0.148-0.67,0.129-0.96-0.021c0.056,0.336,0.038,0.676-0.047,0.998\n  c-0.044,0.129-0.101,0.254-0.172,0.373c0.273-0.029,0.555,0.064,0.757,0.279c0.341,0.365,0.321,0.939-0.043,1.279\n  c-0.364,0.342-0.938,0.322-1.278-0.043c-0.2-0.215-0.275-0.498-0.23-0.766c-0.294,0.152-0.617,0.225-0.938,0.221\n  c-0.072-0.006-0.146-0.016-0.217-0.033c0.089,0.201,0.087,0.438-0.027,0.643c-0.192,0.35-0.631,0.477-0.98,0.283\n  c-0.347-0.193-0.474-0.631-0.281-0.979c0.113-0.205,0.31-0.332,0.524-0.365c-0.208-0.205-0.35-0.461-0.421-0.734\n  c-0.001-0.008-0.002-0.014-0.003-0.021c-0.003-0.016-0.005-0.031-0.006-0.049c-0.036,0.033-0.077,0.061-0.12,0.084\n  c-0.018,0.006-0.034,0.016-0.05,0.023c-0.101,0.041-0.213,0.055-0.327,0.031c-0.314-0.061-0.518-0.363-0.457-0.676\n  c0.045-0.232,0.225-0.406,0.443-0.453c0.073-0.016,0.151-0.018,0.229-0.002c0.185,0.035,0.331,0.154,0.41,0.311\n  c0.106-0.213,0.269-0.389,0.466-0.51c0.021-0.012,0.042-0.021,0.064-0.029c-0.122-0.072-0.211-0.195-0.23-0.348\n  c-0.031-0.254,0.15-0.486,0.404-0.518c0.255-0.031,0.487,0.148,0.519,0.402c0.019,0.15-0.036,0.291-0.136,0.389\n  c0.191,0.029,0.367,0.113,0.51,0.234c0.012,0.012,0.023,0.023,0.034,0.035c0.022-0.104,0.09-0.195,0.194-0.244\n  c0.174-0.082,0.382-0.006,0.463,0.17c0.082,0.174,0.006,0.381-0.168,0.463c-0.102,0.047-0.215,0.041-0.308-0.008\n  c0.018,0.109,0.012,0.219-0.016,0.322c-0.014,0.041-0.032,0.08-0.055,0.119c0.088-0.01,0.178,0.021,0.243,0.09\n  c0.11,0.117,0.104,0.301-0.014,0.412c-0.118,0.109-0.301,0.102-0.411-0.016c-0.064-0.068-0.088-0.158-0.074-0.246\n  c-0.094,0.049-0.198,0.074-0.301,0.072c-0.023-0.002-0.046-0.006-0.069-0.012c0.028,0.064,0.028,0.141-0.009,0.207\n  c-0.062,0.113-0.203,0.154-0.315,0.092s-0.152-0.203-0.09-0.314c0.036-0.066,0.1-0.107,0.168-0.117\n  c-0.067-0.066-0.113-0.148-0.136-0.238c-0.001-0.006-0.002-0.014-0.002-0.021c-0.003,0.002-0.007,0.006-0.01,0.008\n  c-0.002,0.002-0.005,0.004-0.007,0.006c-0.002,0.002-0.004,0.002-0.006,0.004c-0.004,0.004-0.009,0.006-0.014,0.008\n  c-0.005,0.004-0.009,0.006-0.014,0.008c-0.001,0-0.002,0-0.003,0c-0.002,0.002-0.004,0.002-0.007,0.004\n  c-0.005,0.002-0.01,0.002-0.015,0.004c-0.003,0.002-0.007,0.002-0.011,0.004c-0.004,0-0.008,0-0.012,0.002\n  c-0.005,0-0.008,0-0.013,0.002c-0.003,0-0.007,0-0.011,0c-0.004,0-0.009,0-0.015,0c-0.001,0-0.003-0.002-0.005-0.002\n  c-0.005,0-0.011,0-0.018-0.002c-0.1-0.02-0.166-0.115-0.146-0.217c0.02-0.102,0.117-0.166,0.217-0.146\n  c0.059,0.012,0.106,0.049,0.13,0.1c0.034-0.068,0.086-0.125,0.148-0.164c0.007-0.002,0.014-0.006,0.021-0.008\n  c-0.039-0.023-0.067-0.062-0.073-0.111c-0.01-0.082,0.047-0.156,0.128-0.164c0.081-0.012,0.155,0.047,0.165,0.129\n  c0.006,0.047-0.011,0.092-0.042,0.123c0.061,0.008,0.116,0.035,0.162,0.074c0.003,0.004,0.007,0.006,0.01,0.012\n  c0.007-0.033,0.029-0.062,0.062-0.078c0.055-0.027,0.122-0.002,0.148,0.053c0.026,0.057,0.002,0.121-0.054,0.148\n  c-0.033,0.016-0.069,0.012-0.098-0.002c0.005,0.033,0.004,0.068-0.005,0.102c-0.004,0.014-0.01,0.025-0.017,0.037\n  c0.028-0.002,0.057,0.008,0.077,0.029c0.035,0.037,0.033,0.096-0.004,0.131c-0.038,0.035-0.097,0.033-0.131-0.004\n  c-0.021-0.023-0.028-0.051-0.023-0.078c-0.03,0.016-0.063,0.023-0.096,0.021c-0.008,0-0.015,0-0.023-0.002\n  c0.01,0.02,0.009,0.043-0.002,0.064c-0.02,0.037-0.064,0.049-0.1,0.029s-0.049-0.064-0.029-0.1c0.011-0.021,0.031-0.035,0.054-0.037\n  c-0.02-0.02-0.032-0.043-0.04-0.068c-0.001-0.004-0.003-0.008-0.003-0.014c0,0-0.001,0-0.001,0l0,0\n  c-0.003,0.002-0.006,0.004-0.01,0.006c-0.002,0-0.003,0.002-0.006,0.004c0,0-0.001,0-0.002,0c-0.004,0.002-0.009,0.004-0.014,0.004\n  c-0.003,0-0.006,0-0.01,0c-0.003,0-0.006,0-0.009,0c-0.016-0.004-0.029-0.012-0.038-0.025c-0.008-0.012-0.012-0.027-0.009-0.043\n  c0.006-0.033,0.038-0.053,0.069-0.047c0.009,0.002,0.018,0.006,0.025,0.012c0.006,0.004,0.012,0.012,0.016,0.02l0,0h0\n  c0.011-0.021,0.027-0.039,0.047-0.051c0.002-0.002,0.004-0.004,0.006-0.004c-0.012-0.008-0.021-0.02-0.023-0.035\n  c-0.003-0.025,0.016-0.051,0.042-0.053c0.026-0.004,0.05,0.016,0.053,0.041c0.002,0.014-0.003,0.029-0.014,0.039\n  c0.02,0.004,0.037,0.012,0.052,0.023c0.001,0.002,0.002,0.002,0.003,0.004c0.002-0.01,0.01-0.02,0.02-0.025\n  c0.018-0.008,0.039,0,0.047,0.018s0.001,0.039-0.017,0.047c-0.011,0.006-0.022,0.006-0.032,0c0.002,0.012,0.001,0.021-0.001,0.033\n  c-0.002,0.004-0.003,0.008-0.006,0.012c0.009,0,0.018,0.002,0.024,0.01c0.012,0.012,0.011,0.029-0.001,0.041\n  s-0.03,0.012-0.042-0.002c-0.007-0.006-0.009-0.016-0.008-0.023c-0.01,0.004-0.02,0.006-0.031,0.006c-0.002,0-0.004,0-0.007,0\n  c0.003,0.006,0.003,0.014-0.001,0.021c-0.006,0.01-0.021,0.016-0.032,0.008c-0.011-0.006-0.016-0.02-0.009-0.031\n  c0.004-0.008,0.01-0.012,0.017-0.012c-0.007-0.008-0.011-0.016-0.014-0.025c0,0,0,0,0-0.002l0,0l0,0.002c0,0,0,0-0.001,0h0\n  c-0.001,0-0.001,0.002-0.001,0.002s-0.001,0-0.001,0l0,0c0,0-0.001,0-0.001,0c0,0,0,0-0.001,0s0,0-0.001,0\n  c-0.001,0-0.001,0-0.001,0.002c0,0,0,0-0.001,0h-0.001h-0.001l0,0c-0.001,0-0.001-0.002-0.002-0.002\n  c-0.01,0-0.018-0.012-0.015-0.021c0.002-0.01,0.012-0.016,0.022-0.014c0.005,0,0.01,0.004,0.013,0.01\n  c0.004-0.008,0.009-0.014,0.015-0.018c0,0,0.001,0,0.002,0c-0.004-0.002-0.007-0.006-0.008-0.012\n  c-0.001-0.008,0.005-0.016,0.013-0.018c0.008,0,0.016,0.006,0.017,0.014c0.001,0.006-0.001,0.01-0.004,0.014\n  c0.006,0,0.012,0.002,0.017,0.006c0,0.002,0,0.002,0,0.002c0.001-0.002,0.003-0.006,0.006-0.008c0.006-0.002,0.013,0,0.016,0.006\n  c0.002,0.006,0,0.012-0.006,0.014c-0.003,0.002-0.007,0.002-0.01,0c0,0.004,0,0.008-0.001,0.012c0,0-0.001,0.002-0.001,0.004\n  c0.003,0,0.005,0,0.008,0.002c0.003,0.004,0.003,0.01-0.001,0.014s-0.01,0.004-0.014,0c-0.001-0.002-0.003-0.006-0.001-0.008\n  c-0.003,0.002-0.007,0.002-0.01,0.002c0,0-0.001,0-0.002,0c0,0.002,0,0.004,0,0.006c-0.002,0.004-0.007,0.006-0.01,0.004\n  c-0.004-0.002-0.005-0.008-0.003-0.01c0.001-0.004,0.003-0.004,0.005-0.006c-0.002,0-0.003-0.004-0.005-0.008l0,0l0,0h0\n  c-0.001,0.002-0.001,0.002-0.001,0.002c0,0-0.002,0-0.003,0c-0.003-0.002-0.005-0.004-0.004-0.008c0-0.002,0.002-0.004,0.004-0.004\n  c0,0,0.001,0,0.002,0c0.002,0,0.004,0.002,0.004,0.004c0.001-0.004,0.003-0.006,0.005-0.006c0,0,0,0,0.001,0\n  c-0.001,0-0.002-0.002-0.002-0.004s0.001-0.006,0.004-0.006c0.003,0,0.005,0.002,0.006,0.004s0,0.004-0.001,0.006\n  c0.002,0,0.003,0,0.005,0c0,0.002,0,0.002,0,0.002c0-0.002,0.001-0.002,0.002-0.002c0.001-0.002,0.004,0,0.004,0\n  c0.001,0.002,0,0.006-0.001,0.006s-0.002,0-0.003,0c0,0,0,0.002,0,0.004c0,0,0,0-0.001,0c0.001,0,0.002,0,0.002,0.002\n  c0.001,0,0.001,0.002,0,0.004c-0.001,0-0.003,0-0.004,0c-0.001-0.002-0.001-0.002-0.001-0.004c-0.001,0-0.002,0.002-0.003,0.002\n  c0,0,0,0-0.001,0c0,0,0,0,0,0.002c0,0-0.002,0.002-0.003,0c-0.001,0-0.001-0.002-0.001-0.004c0,0,0.001,0,0.002,0\n  c0,0-0.001-0.002-0.001-0.002l0,0c0,0,0,0,0,0l0,0l0,0l0,0l0,0l0,0l0,0l0,0l0,0h-0.001l0,0h0c-0.001,0-0.001-0.002-0.001-0.002\n  c0-0.002,0.001-0.002,0.003-0.002h0.001c0,0,0.001,0,0.002,0l0,0c-0.001,0-0.001-0.002-0.001-0.002s0.001-0.002,0.001-0.002\n  c0.001,0,0.001,0,0.001,0.002c0,0,0,0,0,0.002c0.001,0,0.002,0,0.002,0l0,0h0c0,0,0.001,0,0.001,0c0,0,0,0,0,0c0,0,0,0-0.001,0\n  c0,0.002,0,0.002,0,0.002l0,0h0c0,0.002,0,0.002,0,0.002s-0.001,0-0.001,0l0,0c0,0-0.001,0-0.001,0l0,0l0,0c0,0-0.001,0-0.001,0l0,0\n  c0,0,0,0,0,0c0-0.002,0-0.002,0-0.002l0,0l0,0l0,0l0,0c0,0-0.001,0-0.001,0c0-0.002,0-0.002,0.001-0.002c0,0,0,0,0,0.002\n  c0-0.002,0-0.002,0.001-0.002c0,0-0.001,0-0.001,0c0,0-0.002,0-0.002,0.002c0,0,0,0,0.001,0.002c-0.001,0-0.001,0.002,0,0.002\n  c0,0,0.001,0,0.002,0l0,0c0.001,0,0.002,0,0.003,0c0.001-0.002,0.001-0.002,0-0.004c0.001,0,0.001-0.002,0.001-0.002\n  c0-0.002-0.002-0.002-0.003-0.002l0,0c0-0.002-0.002-0.004-0.003-0.004c-0.002,0-0.003,0.002-0.003,0.004l0,0\n  c-0.002,0-0.004,0.002-0.005,0.002c0,0.002,0,0.004,0.002,0.006l0,0l0,0h0l0,0l0,0c-0.001,0.002,0,0.006,0.002,0.008\n  c0.002,0,0.005,0,0.006-0.002l0,0c0.003,0.002,0.007,0.002,0.01,0c0.002-0.002,0.003-0.006,0-0.008\n  c0.004-0.002,0.006-0.008,0.004-0.01c-0.001-0.004-0.005-0.006-0.009-0.006l0,0c0-0.006-0.005-0.01-0.011-0.01\n  c-0.006,0.002-0.009,0.006-0.01,0.01c0,0,0,0,0,0c-0.007,0-0.014,0.004-0.016,0.012c-0.001,0.006,0.002,0.012,0.009,0.014l0,0\n  c-0.005,0.008-0.002,0.02,0.006,0.023c0.007,0.004,0.016,0.002,0.021-0.004c0,0,0,0,0,0c0.008,0.008,0.021,0.008,0.03,0\n  c0.007-0.006,0.009-0.018,0.003-0.025c0.012-0.006,0.018-0.021,0.012-0.033c-0.005-0.012-0.018-0.016-0.029-0.014\n  c0-0.002,0-0.002,0-0.002c-0.002-0.02-0.019-0.031-0.038-0.029c-0.016,0.002-0.028,0.016-0.029,0.031c0,0,0,0-0.001,0\n  c-0.022-0.004-0.044,0.012-0.049,0.033c-0.003,0.016,0.004,0.033,0.018,0.041v0.002c0.001,0,0.002,0,0.003,0.002l0,0\n  c0.001,0,0.002,0,0.004,0.002l0,0c0,0,0.001,0,0.001,0h0c-0.014,0.025-0.005,0.057,0.02,0.07c0.022,0.012,0.05,0.006,0.065-0.012\n  c0,0,0.001,0,0.001,0c0.024,0.027,0.065,0.027,0.092,0.004c0.023-0.021,0.026-0.057,0.009-0.084c0,0,0,0,0,0\n  c0.039-0.018,0.056-0.064,0.037-0.104c-0.016-0.035-0.055-0.053-0.09-0.043c0-0.002,0-0.004-0.001-0.008\n  c-0.007-0.057-0.059-0.098-0.116-0.09c-0.051,0.008-0.089,0.051-0.091,0.1c0,0-0.002,0-0.003,0c0,0-0.001-0.002-0.001-0.002\n  c-0.07-0.014-0.139,0.033-0.153,0.104c-0.003,0.018-0.002,0.035,0.001,0.051c0,0.002,0,0.004,0.001,0.006\n  c0.002,0.006,0.003,0.01,0.005,0.016c0.001,0.004,0.003,0.008,0.005,0.012c0.001,0.002,0.003,0.004,0.004,0.008\n  c0.003,0.004,0.006,0.01,0.01,0.014c0,0,0.001,0.002,0.002,0.002c0.014,0.018,0.031,0.031,0.053,0.039h-0.001\n  c-0.043,0.08-0.015,0.178,0.063,0.221c0.07,0.041,0.157,0.021,0.206-0.039c0.001,0.002,0.002,0.004,0.004,0.004\n  c0.076,0.082,0.205,0.086,0.288,0.01c0.073-0.068,0.084-0.18,0.03-0.26V21.81c0.122-0.057,0.175-0.201,0.118-0.324\n  c-0.051-0.107-0.171-0.162-0.284-0.133c0-0.006-0.001-0.014-0.001-0.021c-0.022-0.18-0.185-0.305-0.363-0.283\n  c-0.161,0.02-0.279,0.154-0.285,0.311c-0.004,0-0.009-0.002-0.013-0.004c-0.221-0.043-0.434,0.102-0.477,0.324\n  c-0.032,0.164,0.041,0.326,0.172,0.414c0,0,0.002,0,0.002,0.002c0.01,0.006,0.02,0.012,0.031,0.018c0.001,0,0.003,0.002,0.004,0.002\n  c0.009,0.006,0.021,0.01,0.032,0.016c0.001,0,0.003,0,0.004,0.002c0.003,0,0.006,0.002,0.009,0.004\n  c-0.001,0.002-0.003,0.004-0.004,0.006c-0.136,0.246-0.046,0.557,0.199,0.691c0.221,0.123,0.492,0.062,0.645-0.127\n  c0.004,0.004,0.009,0.01,0.014,0.016c0.241,0.256,0.645,0.27,0.903,0.029c0.231-0.215,0.266-0.564,0.096-0.818\n  c0,0,0.001-0.002,0.001-0.002c0.383-0.178,0.549-0.635,0.37-1.018c-0.16-0.344-0.541-0.512-0.893-0.416\n  c-0.001-0.023-0.003-0.049-0.006-0.072c-0.069-0.561-0.58-0.959-1.14-0.889c-0.505,0.062-0.877,0.482-0.896,0.977\n  c-0.013-0.004-0.025-0.006-0.038-0.008c-0.692-0.135-1.363,0.318-1.497,1.012c-0.12,0.617,0.229,1.215,0.796,1.434\n  c-0.002,0.002-0.003,0.004-0.005,0.006c-0.423,0.766-0.145,1.73,0.621,2.154c0.688,0.379,1.533,0.195,2.006-0.398\n  c0.014,0.016,0.027,0.031,0.042,0.047c0.75,0.803,2.008,0.844,2.81,0.096c0.72-0.674,0.827-1.758,0.299-2.551\n  c0.001-0.002,0.003-0.002,0.004-0.002c1.192-0.559,1.708-1.979,1.15-3.172c-0.499-1.064-1.683-1.588-2.778-1.292\n  c-0.004-0.075-0.01-0.15-0.02-0.226c-0.215-1.742-1.803-2.98-3.546-2.764c-1.569,0.194-2.729,1.502-2.787,3.033\n  c-0.041-0.009-0.08-0.021-0.121-0.029c-2.157-0.417-4.243,0.995-4.661,3.154c-0.313,1.615,0.403,3.186,1.688,4.051\n  c0.007,0.004,0.014,0.01,0.021,0.014c0.097,0.064,0.196,0.125,0.299,0.18c0.014,0.008,0.027,0.016,0.041,0.023\n  c0.1,0.053,0.203,0.1,0.308,0.145c0.015,0.008,0.029,0.014,0.044,0.02c0.029,0.012,0.056,0.025,0.085,0.037\n  c-0.013,0.023-0.028,0.043-0.041,0.066c-1.328,2.404-0.456,5.432,1.95,6.762c2.157,1.193,4.812,0.613,6.296-1.25\n  c0.044,0.049,0.088,0.102,0.135,0.15c2.354,2.518,6.305,2.65,8.824,0.297c2.262-2.115,2.596-5.518,0.938-8.012\n  c0.004-0.002,0.009-0.004,0.014-0.006C44.033,21.732,45.652,17.271,43.9,13.525"/>\n</svg>\n\n    </a>\n      <ul id="nav-states" class="b-job-nav">\n          <li class="b-job-nav__item active " id="data-nav-tab">\n  <a class="job-step" data-toggle="tooltip" data-placement="bottom" title="Upload your source data that contributors need to work with" href="https://make.figure-eight.com/jobs/1356294/units">data</a>\n</li>\n\n          <li class="b-job-nav__item active " id="design-nav-tab">\n  <a class="job-step" data-toggle="tooltip" data-placement="bottom" title="Design the form for contributors to enhance your data" href="https://figure-eight.com/jobs/1356294/edit">design</a>\n</li>\n\n          <li class="b-job-nav__item active " id="quality-nav-tab">\n  <a class="job-step" data-toggle="tooltip" data-placement="bottom" title="Create answers to Test Questions to help contributors meet your quality standards" href="https://make.figure-eight.com/jobs/1356294/test_questions">quality</a>\n</li>\n\n          <li class="b-job-nav__item active " id="launch-nav-tab">\n  <a class="job-step" data-toggle="tooltip" data-placement="bottom" title="Set payment and judgments needed per row" href="https://make.figure-eight.com/jobs/1356294/debits/new">launch</a>\n</li>\n\n          <li class="b-job-nav__item active " id="monitor-nav-tab">\n  <a class="job-step" data-toggle="tooltip" data-placement="bottom" title="Check progress and manage quality in real time after launch" href="https://make.figure-eight.com/jobs/1356294/dashboard">monitor</a>\n</li>\n\n          <li class="b-job-nav__item next " id="results-nav-tab">\n  <a class="job-step" data-toggle="tooltip" data-placement="bottom" title="Download your data output and other reports after launch" href="https://make.figure-eight.com/jobs/1356294/reports">results</a>\n</li>\n\n      </ul>\n\n    <div class="b-header__account">\n      <div class="nav-collapse">\n        <ul class="nav pull-right">\n        <ul class="nav">\n          \n          <li>\n          <a id="accounts-popover" class="popover-menu-container" data-container="#accounts-popover" data-placement="bottom" data-toggle="popover" data-content="\n              <ul class=\'popover-menu\'>\n                <li>\n                  <a href=\'https://make.figure-eight.com/jobs\'>Your Jobs</a>\n                </li>\n                <li>\n                  <a href=\'https://make.figure-eight.com/account\'>Account</a>\n                </li>\n                <li>\n                  <a data-method=\'delete\' href=\'https://api.figure-eight.com/logout\'>Sign Out</a>\n                </li>\n              </ul>" href="#">Sar  <b id=\'header_username_caret\' class=\'caret\'></b></a>\n          </li>\n        </ul>\n      </div>\n    </div>\n  </div>\n</div>\n\n\n    <div id="main-wrapper" class="container">\n      <div class="row">\n        <div class="col-xs-9 left-unpadded-col">\n\n          <div id="main" class="">\n            <div id="content">\n              <div id="top" class="awesome"></div>\n              {"message":{"success":true}}\n              <div class="push"></div>\n            </div>\n          </div>\n\n        </div>\n\n          <div class="col-xs-3 left-unpadded-col">\n                      <div class="sidebar-module row call-to-action">\n\n\n              <div class="status col-xs-6">\n                <header class="status">Status</header>\n                <span class="job-state job-state-running">Running</span>\n              </div>\n              <div class="col-xs-6">\n                  <a class="btn btn-lg btn-default half" href="/jobs/1356294/pause">Pause Job</a>\n              </div>\n          </div>\n\n          <div class="sidebar-module job">\n              <div class="id text-uppercase">Job Id 1356294</div>\n              <div class="title"><strong>This Is A Beautiful Title, Don\'t You Think So?</strong></div>\n              <hr>\n              <div class="settings">\n                <a href="https://make.figure-eight.com/jobs/1356294/settings">\n                  <span class="cf-icon settings-icon"></span>Settings\n                </a>\n              </div>\n              <div class="preview">\n                <a href="https://make.figure-eight.com/jobs/1356294/preview_redirect" target="_blank">\n                  <span class="cf-icon preview-icon"></span>Preview\n                </a>\n              </div>\n              <div class="copy">\n               <a href="#"\n                 id="copy-popover"\n                 class="popover-menu-container"\n                 data-toggle="popover"\n                 data-placement="bottom"\n                 data-container="#copy-popover"\n                 data-content=\'\n                   <ul class="popover-menu">\n                       <li><a href="/jobs/1356294/copy?all_units=true">With all rows</a></li>\n                       <li><a href="/jobs/1356294/copy">With no rows</a></li>\n                   </ul>\'>\n                <span class="cf-icon copy"></span>Copy\n                <span class="caret"></span>\n               </a>\n              </div>\n          </div>\n\n         <!-- if @job.id -->\n\n        <div class="sidebar-module footer">\n          <div class="b-footer">\n  <ul class="b-footer__menu">\n    <li class="b-footer__menu-item">\n      <a id="help" target="_blank" class="b-footer__menu-link" href="http://success.figure-eight.com">Help</a>\n    </li>\n\n        <li class="b-footer__menu-item">\n          <a id="chat-us" class="b-footer__menu-link" href="#">Chat</a>\n        </li>\n        <li class="b-footer__menu-item">\n          <a class="b-footer__menu-link" target="_blank" href="http://info.figure-eight.com/platform-upgrade-request">Upgrade</a>\n        </li>\n\n    <li class="b-footer__menu-item">\n      <a href="#"\n        id="footer-popover"\n        class="b-footer__menu-link popover-menu-container"\n        data-placement="top"\n        data-toggle="popover"\n        data-container="#footer-popover"\n        data-content="\n          <ul class=\'b-footer__popover\'>\n            <li><a class=\'b-footer__popover-link\' href=\'https://figure-eight.com/company\'>About</a></li>\n            <li><a class=\'b-footer__popover-link\' href=\'https://figure-eight.com/privacy\'>Privacy</a></li>\n            <li><a class=\'b-footer__popover-link\' href=\'https://figure-eight.com/terms-and-conditions\'>Terms</a></li>\n            <li><a class=\'b-footer__popover-link\' href=\'https://make.figure-eight.com/product-release-notes\'>Release Notes</a></li>\n          </ul>\n        ">\xe2\x80\xa2\xe2\x80\xa2\xe2\x80\xa2</a>\n    </li>\n  </ul>\n</div>\n\n\n        </div>\n\n          </div>\n      </div>\n      <div class=\'flash_delay\'>\n        <div class="b-alerts-container" id="message">\n          \n        </div>\n      </div>\n    </div>\n\n      <script type=\'text/javascript\'>\n    Array.each( $$(\'[data-toggle="popover"]\') , function(el, index){\n      $el = jQuery(el);\n      // The header menu should respond only on click\n      if ($el.attr(\'id\') == \'accounts-popover\') {\n        $el.popover({html: true})\n      } else {\n        $el.popover({\n          html: true,\n          trigger: \'hover\',\n          delay: {show: 50, hide: 400}\n        });\n      }\n      // Bootstrap keeps hiding the popover container\n      // This removes the bootstrap added style\n      $el.on(\'hidden.bs.popover\', function(e) {\n        $el = jQuery(e.currentTarget);\n        $el.removeAttr(\'style\');\n      });\n    });\n\n    // Close the header mnenu after any click\n    jQuery(document).on(\'click\', function(e) {\n      $popover_header = jQuery(\'#accounts-popover\');\n      if (e.target != $popover_header[0]) {\n        $popover_header.popover(\'hide\')\n      }\n    });\n\n    // Without this, the popovers might appear underneath other elements\n    jQuery(\'.sidebar-module .popover-menu-container\').on(\'show.bs.popover\', function(e) {\n      jQuery(e.currentTarget).parents(\'.sidebar-module\').css(\'z-index\', 999);\n    }).on(\'hide.bs.popover\', function(e) {\n      jQuery(e.currentTarget).parents(\'.sidebar-module\').css(\'z-index\', 0);\n    });\n\n    window.addEvent(\'load\', function () {\n      if (window.$zopim != undefined) {\n        var toggleChat = function (e) {\n          e.preventDefault();\n            $zopim.livechat.setName(\'Sar \');\n            $zopim.livechat.setEmail(\'sarasua@ifi.uzh.ch\');\n          $zopim.livechat.window.setPosition(\'br\')\n          $zopim.livechat.window.toggle();\n        }\n\n        $(\'chat-us\').addEvent(\'click\', toggleChat);\n      } else {\n        if ( $(\'chat-us\') ) {\n          $(\'chat-us\').getParent().hide()\n        }\n      }\n    });\n  </script>\n\n    <div id="prefetch">\n      \n    </div>\n    <script type="text/javascript">\n  CF = window.CF || {};\n  CF.Page = CF.Page || {};\n  CF.Page.saved = true;\n\n  CF.ENV = \'live\';\n\n  if(!CF.ENV.match(/test/)){\n\n    var saveButtons = $$("input[type=submit]", ".save_button");\n    if (saveButtons.length > 0) {\n      saveButtons.each(function(el){\n        el.addEvent(\'click\', function() {\n          CF.Page.saved = true;\n        });\n      });\n    }\n\n    // don\'t add for Active Contributors or graphical editor or cml editor or new page\n    // (I know, these selectors aren\'t exactly specific to those pages...)\n    var inputs = $$(\'form:not(.search):not(#job_form):not(#upload_form)\').getChildren();\n    if (inputs.length == 1) {\n      inputs[0].each(function(el, idx){\n        // not technically correct, but no harm in onChange for a div for\n        // keeping the code simple, right?\n        el.addEvent(\'change\', function(event) {\n          CF.Page.saved = false;\n        });\n      });\n    }\n\n    if(typeof dirty === \'undefined\') {\n      dirty = false;\n    }\n    if(typeof __dirty === \'undefined\') {\n      __dirty = false;\n    }\n\n    window.onbeforeunload = function() {\n      if (!CF.Page.saved || dirty || __dirty) {\n        return "You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes";\n      }\n    };\n\n  }\n</script>\n\n    \n\n  </body>\n</html>\n'
!pip install StringIO
Collecting StringIO
  Could not find a version that satisfies the requirement StringIO (from versions: )
No matching distribution found for StringIO
from io import BytesIO
from zipfile import ZipFile
from urllib.request import urlopen
# or: requests.get(url).content

url = 'https://api.figure-eight.com/v1/jobs/'+jobid+'.csv?type=full&key='+f8_key

resp = urlopen(url)
zipfile = ZipFile(BytesIO(resp.read()))
print(zipfile.namelist())
for line in zipfile.open('f1356294.csv').readlines():
    print(line.decode('utf-8'))
['f1356294.csv']
_unit_id,_created_at,_id,_started_at,_tainted,_channel,_trust,_worker_id,_country,_region,_city,_ip,what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors,url,what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors_gold

import csv
import zipfile

jobid = '1356294'
url = 'https://api.figure-eight.com/v1/jobs/'+jobid+'.csv?type=full&key='+f8_key


target_path = 'alaska.zip'

response = requests.get(url=url, stream=True)
if (response != None) & (response.status_code == 200): 
    
    print(response.text)
    handle = open(target_path, "wb")
    for chunk in response.iter_content(chunk_size=512):
        if chunk:  # filter out keep-alive new chunks
            handle.write(chunk)
    handle.close()

    
    
else:
    print(response.status_code)

#json
#PK|eN''PK4|eN��job_1356294.jsonPK>0
x-�Q�i����P@�jg��Y�+�u���	,w崴��|���PK4�qeN�y3��%��f1356294.csvPK:�
print(f8_key)
url= 'https://api.figure-eight.com/v1/jobs/1356294.csv?type=full&key=9usStbnghBSjvnxyEJGv'


response = requests.get(url=url)
if (response != None) & (response.status_code == 200): 
    re = response.text
    print(re)
else:
    print(response.status_code)
9usStbnghBSjvnxyEJGv
x-�Q�i����P@�jg��Y�+�u���	,w崴��|���PK4�qeN�y3��%��f1356294.csvPK:�
jobid = '1356294'

#url1 = 'https://api.figure-eight.com/v1/jobs/'+jobid+'/judgments.json?key='+f8_key+'&page={1}'
url = 'https://api.figure-eight.com/v1/jobs/'+jobid+'/judgments.json?key='+f8_key+'&page={2}'

#https://api.figure-eight.com/v1/jobs/{job_id}.csv?type={report_type}&key={api_key}
#n = 1


response = requests.get(url=url)
if (response != None) & (response.status_code == 200): 
    re = response.json()
    print(re)
else:
    print(response.status_code)
{'2188888328': {'url': 'https://twitter.com/Izumih0705/status/974278803550650368', 'what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors': {'res': ['3'], 'agg': '3'}, '_ids': [4596163044], '_updated_at': '2019-03-05 13:57:42 +0000', '_agreement': None, '_state': 'judgable'}, '2188888329': {'url': 'https://twitter.com/juanbx123/status/974278650093809664', 'what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors': {'res': ['3'], 'agg': '3'}, '_ids': [4596163060], '_updated_at': '2019-03-05 13:57:42 +0000', '_agreement': None, '_state': 'judgable'}, '2188888330': {'url': 'https://twitter.com/DaFShow/status/974278457487167489', 'what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors': {'res': ['3'], 'agg': '3'}, '_ids': [4596163053], '_updated_at': '2019-03-05 13:57:42 +0000', '_agreement': None, '_state': 'judgable'}, '2188888331': {'url': 'https://twitter.com/atorsoli/status/974278074400432130', 'what_is_the_authors_sentiment_feeling_throughout_the_post_as_it_relates_to_mlb_trade_rumors': {'res': ['2'], 'agg': '2'}, '_ids': [4596163067], '_updated_at': '2019-03-05 13:57:42 +0000', '_agreement': None, '_state': 'judgable'}}