{"id":881,"date":"2026-10-05T04:08:23","date_gmt":"2026-10-05T04:08:23","guid":{"rendered":"https:\/\/getaiwork.com\/articles\/?p=881"},"modified":"2026-10-05T04:15:24","modified_gmt":"2026-10-05T04:15:24","slug":"snorkel-ai-careers","status":"publish","type":"post","link":"https:\/\/getaiwork.com\/articles\/snorkel-ai-careers\/","title":{"rendered":"Snorkel AI Careers: Its Job Board and the Expert Route"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Snorkel AI careers come by two routes. On October 5, 2026, Snorkel&#8217;s own Greenhouse board listed 41 salaried roles, nearly all hybrid in San Francisco or New York, and 40 of them showed a pay range. The other route is its Expert Contributor community: contract work paid per task, open to eligible US residents outside California.<\/strong><\/p>\n\n\n\n<div class=\"msq-audio\" data-article=\"snorkel-ai-careers\" data-minutes=\"13\">\n<style>.msq-audio{margin:1.25em 0 1.75em;padding:16px 18px;background:#F1F4FA;border:1px solid #DDE3EE;border-radius:12px}\n.msq-audio-lead{margin:0 0 8px;font-size:.95em}.msq-audio audio{width:100%;margin:0 0 12px;display:block}\n.msq-toc-title{margin:0 0 6px;font-weight:700}.msq-toc ol{margin:0;padding:0;list-style:none}\n.msq-toc li{display:flex;gap:10px;align-items:center;padding:6px 6px;border-bottom:1px solid #DDE3EE;border-radius:8px}\n.msq-toc li:last-child{border-bottom:0}.msq-toc li.is-active{background:#fff}\n.msq-toc-play{flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:0;background:#1E3A8A;color:#fff;font:inherit;font-size:.72em;line-height:30px;padding:0;cursor:pointer}\n.msq-toc-play.is-playing{background:#B45309}\n.msq-toc-time{flex:0 0 auto;min-width:3.1em;font-variant-numeric:tabular-nums;color:#55555F;font-size:.9em}\n.msq-toc a{color:#1B1F24;text-decoration:none;line-height:1.35}.msq-toc li.is-active a{font-weight:700;color:#1E3A8A}\n.msq-audio-note{margin:10px 0 0;font-size:.82em;color:#55555F}\nh2.wp-block-heading[id]{scroll-margin-top:24px}\n.msq-hplay{display:inline-block;vertical-align:middle;width:26px;height:26px;margin:0 0 0 10px;border-radius:50%;border:0;background:#1E3A8A;cursor:pointer;padding:0;position:relative;top:-2px}\n.msq-hplay::before{content:'\u25b6\ufe0e';display:block;color:#fff;font-size:11px;line-height:26px;text-align:center}\n.msq-hplay.is-playing{background:#B45309}.msq-hplay.is-playing::before{content:'\u2016';font-size:13px;font-weight:700}\n.msq-bar{position:fixed;left:0;right:0;bottom:0;z-index:9000;display:flex;align-items:center;gap:10px;padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom));background:#FFFFFF;border-top:1px solid #DDE3EE;box-shadow:0 -4px 16px rgba(0,0,0,.08);font-size:.92em;color:#1B1F24;transition:transform .2s ease}\n.msq-bar.is-hidden{transform:translateY(130%)}\n.msq-bar-play{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;background:#1E3A8A;color:#fff;font:inherit;font-weight:700;padding:8px 14px 8px 12px;cursor:pointer;white-space:nowrap}\n.msq-bar-play.is-playing{background:#B45309}\n.msq-bar-icon::before{content:'\u25b6\ufe0e';font-size:12px}.msq-bar-play.is-playing .msq-bar-icon::before{content:'\u2016';font-size:14px;font-weight:700}\n.msq-bar-chapter{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.msq-bar-time{flex:0 0 auto;font-variant-numeric:tabular-nums;color:#55555F;font-size:.9em}\n.msq-bar-rate,.msq-bar-close{flex:0 0 auto;border:1px solid #DDE3EE;background:#fff;color:#1B1F24;font:inherit;font-size:.85em;line-height:1;border-radius:8px;padding:7px 9px;cursor:pointer}\n.msq-bar-close::before{content:'\u2715'}\n.msq-bar.msq-bar-pill{left:auto;right:14px;bottom:14px;padding:6px;padding-bottom:6px;border:1px solid #DDE3EE;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.15)}\n.msq-bar.msq-bar-pill .msq-bar-chapter,.msq-bar.msq-bar-pill .msq-bar-time,.msq-bar.msq-bar-pill .msq-bar-rate{display:none}\nbody.msq-has-bar{padding-bottom:76px}\n@media (max-width:600px){.msq-bar-time{display:none}.msq-bar{gap:8px;padding-left:10px;padding-right:10px}}\n.msq-s.msq-now{background:#F1F4FA;box-shadow:0 2px 0 #1E3A8A;border-radius:2px}\ntr.msq-now td,tr.msq-now th{background:#F1F4FA;box-shadow:inset 0 -2px 0 #1E3A8A}\n@media (hover:hover){.msq-s,tr[data-i]{cursor:pointer}.msq-s:hover{background:#F1F4FA}}<\/style>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"AudioObject\",\"@id\":\"https:\/\/getaiwork.com\/articles\/snorkel-ai-careers\/#audio\",\"name\":\"Snorkel AI Careers: Its Job Board and the Expert Route, read aloud\",\"description\":\"Synthetic voice reading of the article, recorded 5 October 2026.\",\"contentUrl\":\"https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/snorkel-ai-careers-audio-202610050945.mp3\",\"encodingFormat\":\"audio\/mpeg\",\"duration\":\"PT13M14S\",\"uploadDate\":\"2026-10-05\",\"inLanguage\":\"en-US\",\"isAccessibleForFree\":true,\"mainEntityOfPage\":\"https:\/\/getaiwork.com\/articles\/snorkel-ai-careers\/\",\"hasPart\":[{\"@type\":\"Clip\",\"name\":\"Snorkel AI Careers: Its Job Board and the Expert Route\",\"startOffset\":0,\"endOffset\":42},{\"@type\":\"Clip\",\"name\":\"What does Snorkel AI's own job board list today?\",\"startOffset\":42,\"endOffset\":222,\"url\":\"https:\/\/getaiwork.com\/articles\/snorkel-ai-careers\/#what-does-snorkel-ai-s-own-job-board-list-today\"},{\"@type\":\"Clip\",\"name\":\"Where are Snorkel AI jobs based, and are any remote?\",\"startOffset\":222,\"endOffset\":274,\"url\":\"https:\/\/getaiwork.com\/articles\/snorkel-ai-careers\/#where-are-snorkel-ai-jobs-based-and-are-any-remote\"},{\"@type\":\"Clip\",\"name\":\"What do Snorkel AI roles pay, as listed?\",\"startOffset\":274,\"endOffset\":452,\"url\":\"https:\/\/getaiwork.com\/articles\/snorkel-ai-careers\/#what-do-snorkel-ai-roles-pay-as-listed\"},{\"@type\":\"Clip\",\"name\":\"How does the Snorkel Expert Contributor route work?\",\"startOffset\":452,\"endOffset\":602,\"url\":\"https:\/\/getaiwork.com\/articles\/snorkel-ai-careers\/#how-does-the-snorkel-expert-contributor-route-work\"},{\"@type\":\"Clip\",\"name\":\"Which Snorkel route fits which background?\",\"startOffset\":602,\"endOffset\":711,\"url\":\"https:\/\/getaiwork.com\/articles\/snorkel-ai-careers\/#which-snorkel-route-fits-which-background\"},{\"@type\":\"Clip\",\"name\":\"How do you tell a real Snorkel listing from a fake one?\",\"startOffset\":711,\"endOffset\":794,\"url\":\"https:\/\/getaiwork.com\/articles\/snorkel-ai-careers\/#how-do-you-tell-a-real-snorkel-listing-from-a-fake-one\"}],\"contentSize\":\"5.6 MB\"}<\/script>\n<p class=\"msq-audio-lead\"><strong>Listen to this article<\/strong>, about 13 minutes. A synthetic voice reads the article and announces each section title as it begins; tables are read row by row and the questions at the end are left out.<\/p>\n<audio class=\"msq-audio-player\" controls preload=\"metadata\" src=\"https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/snorkel-ai-careers-audio-202610050945.mp3\"><\/audio>\n<nav class=\"msq-toc\" aria-label=\"In this article\"><p class=\"msq-toc-title\">In this article<\/p>\n<ol>\n<li data-start=\"0.0\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"0.0\" aria-label=\"Play from: Snorkel AI Careers: Its Job Board and the Expert Route\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">0:00<\/span><a href=\"#top\">Snorkel AI Careers: Its Job Board and the Expert Route<\/a><\/li>\n<li data-start=\"41.7\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"41.7\" aria-label=\"Play from: What does Snorkel AI&#x27;s own job board list today?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">0:42<\/span><a href=\"#what-does-snorkel-ai-s-own-job-board-list-today\">What does Snorkel AI&#x27;s own job board list today?<\/a><\/li>\n<li data-start=\"222.32\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"222.32\" aria-label=\"Play from: Where are Snorkel AI jobs based, and are any remote?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">3:42<\/span><a href=\"#where-are-snorkel-ai-jobs-based-and-are-any-remote\">Where are Snorkel AI jobs based, and are any remote?<\/a><\/li>\n<li data-start=\"273.82\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"273.82\" aria-label=\"Play from: What do Snorkel AI roles pay, as listed?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">4:34<\/span><a href=\"#what-do-snorkel-ai-roles-pay-as-listed\">What do Snorkel AI roles pay, as listed?<\/a><\/li>\n<li data-start=\"452.24\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"452.24\" aria-label=\"Play from: How does the Snorkel Expert Contributor route work?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">7:32<\/span><a href=\"#how-does-the-snorkel-expert-contributor-route-work\">How does the Snorkel Expert Contributor route work?<\/a><\/li>\n<li data-start=\"601.58\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"601.58\" aria-label=\"Play from: Which Snorkel route fits which background?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">10:02<\/span><a href=\"#which-snorkel-route-fits-which-background\">Which Snorkel route fits which background?<\/a><\/li>\n<li data-start=\"711.36\"><button type=\"button\" class=\"msq-toc-play\" data-start=\"711.36\" aria-label=\"Play from: How do you tell a real Snorkel listing from a fake one?\">&#x25B6;&#xFE0E;<\/button><span class=\"msq-toc-time\">11:51<\/span><a href=\"#how-do-you-tell-a-real-snorkel-listing-from-a-fake-one\">How do you tell a real Snorkel listing from a fake one?<\/a><\/li>\n<\/ol><\/nav>\n<p class=\"msq-audio-note\">Recorded 5 October 2026 from the article as published that day. Press a chapter to jump there; the highlighted line is what is playing. A play button sits beside every section heading, and once you scroll past this player a bar at the bottom of the screen keeps the controls in reach. Tap or click any sentence to hear the reading start from there.<\/p>\n<script>var MSQ_SENT = [[0.0,\"h\",\"snorkelaicareersitsjobbo\",44],[3.72,\"p\",\"snorkelaicareerscomebytw\",31],[6.52,\"p\",\"onoctober52026snorkelsow\",125],[18.68,\"p\",\"theotherrouteisitsexpert\",109],[26.24,\"p\",\"onthispageall41rolesonsn\",186],[41.7,\"h\",\"whatdoessnorkelaisownjob\",38],[44.5,\"p\",\"snorkelaicallsitselfafro\",38],[48.66,\"p\",\"inplainerwordsitmakesthe\",129],[59.38,\"p\",\"ithirestwowaysemployeesw\",76],[66.98,\"p\",\"theemployeesidelivesonon\",81],[73.1,\"p\",\"wereadeverypostingonitth\",75],[80.42,\"p\",\"onepostingforaseniororst\",126],[94.3,\"p\",\"thatisthecompanysownclai\",55],[99.26,\"p\",\"sortedbythedepartmenteac\",64],[104.58,\"p\",\"daasinadepartmentnameiss\",85],[111.18,\"t\",\"engineering\",72],[119.62,\"t\",\"peopleandrecruiting\",72],[125.14,\"t\",\"financelegalandpartnersh\",92],[135.18,\"t\",\"forwarddeployedengineeri\",87],[145.9,\"t\",\"research\",67],[152.7,\"t\",\"dataserviceoperations\",72],[160.94,\"t\",\"product\",62],[167.78,\"t\",\"marketing\",51],[172.86,\"t\",\"deliverysalesandfellows\",72],[180.42,\"t\",\"total\",46],[187.3,\"p\",\"noneofthe41isanexpertcon\",47],[190.22,\"p\",\"oldercontractlistingsfor\",113],[198.74,\"p\",\"afairshareofthemexisttor\",169],[210.06,\"p\",\"ourownfreeworkboardpicke\",154],[222.32,\"h\",\"wherearesnorkelaijobsbas\",41],[226.68,\"p\",\"almostentirelyintwocitie\",25],[229.12,\"p\",\"ofthe41roles23arelisteda\",99],[239.36,\"p\",\"onepostingspellsouthybri\",52],[243.68,\"p\",\"sixrolesnameunitedstates\",155],[254.88,\"p\",\"norolewaslistedoutsideth\",80],[262.08,\"p\",\"ifyouareoutsidetheusthes\",124],[273.82,\"h\",\"whatdosnorkelairolespaya\",31],[276.54,\"p\",\"snorkelisunusuallyopenab\",31],[279.14,\"p\",\"40ofthe41postingsprintas\",108],[288.02,\"p\",\"thefiguresbelowarecopied\",115],[298.42,\"t\",\"operationsassociatepayme\",89],[308.54,\"t\",\"accountingmanager\",81],[321.22,\"t\",\"seniortechnicalrecruiter\",102],[333.78,\"t\",\"researchscientist\",77],[344.5,\"t\",\"softwareengineerproduct\",90],[354.9,\"t\",\"seniororstaffsoftwareeng\",100],[370.34,\"t\",\"directorresearchevaluati\",97],[387.94,\"t\",\"strategicdeliverylead\",88],[400.38,\"p\",\"readthesmallprintandonep\",137],[412.9,\"p\",\"asktherecruiterwhichappl\",27],[415.66,\"p\",\"forscaleourboardsowndata\",180],[433.42,\"p\",\"thatcompareslistedfigure\",48],[438.18,\"p\",\"ifyouarestillworkingoutw\",189],[452.24,\"h\",\"howdoesthesnorkelexpertc\",43],[455.4,\"p\",\"thecontractsideisasepara\",120],[464.48,\"p\",\"themainpagelistsfourstep\",116],[475.04,\"p\",\"contributorsareindepende\",95],[482.16,\"p\",\"eligibilityneedsreadingt\",28],[484.16,\"p\",\"themainpagelistsanadvanc\",199],[498.48,\"p\",\"bothdomainpagessaythewor\",211],[514.04,\"p\",\"payispertask\",12],[515.76,\"p\",\"snorkelspagessayeverytas\",179],[529.0,\"p\",\"themainpagealsocarriesah\",64],[533.48,\"p\",\"weleavethatnumberoutatop\",120],[541.4,\"p\",\"snorkellistsnohourlyrate\",24],[544.56,\"p\",\"onglassdoorsixselfreport\",85],[555.88,\"p\",\"thosearereportsfromsixpe\",96],[562.28,\"p\",\"whatcontributorsreportis\",77],[567.48,\"p\",\"glassdoorshowedoneexpert\",210],[582.92,\"p\",\"thatisonepersonsallegati\",37],[585.48,\"p\",\"snorkelschiefpeopleoffic\",130],[595.48,\"p\",\"onereviewproveslittlebut\",77],[601.58,\"h\",\"whichsnorkelroutefitswhi\",36],[603.78,\"p\",\"theroutesbarelyoverlapso\",66],[608.3,\"p\",\"thistablerestateswhatsno\",69],[614.34,\"t\",\"experiencedengineerresea\",152],[631.42,\"t\",\"experiencedintheuswantsr\",149],[645.62,\"t\",\"advanceddegreeorprofessi\",160],[658.98,\"t\",\"lawyerwithajdusresidento\",139],[672.58,\"t\",\"californiaresident\",118],[682.66,\"t\",\"outsidetheunitedstates\",114],[694.74,\"p\",\"ifnoneofthoserowsdescrib\",96],[700.86,\"p\",\"theopenaicareersguideand\",149],[711.36,\"h\",\"howdoyoutellarealsnorkel\",43],[714.84,\"p\",\"everysnorkelsalariedrole\",125],[727.48,\"p\",\"asearchedcheckonoctober5\",183],[742.16,\"p\",\"thetelegramrecruiterwhoi\",85],[748.16,\"p\",\"giveittime\",10],[749.8,\"p\",\"therulethatdecidesmostof\",136],[762.48,\"p\",\"snorkelsownprocessrunsth\",89],[768.36,\"p\",\"anyonewhoasksyouforafeea\",112],[775.96,\"p\",\"checktheroleonsnorkelsow\",77],[783.36,\"p\",\"beforeyouapplyanywhereth\",149]];\n(function(){\n  function init(){\n  var root = document.querySelector('.msq-audio'); if (!root) { return; }\n  var audio = root.querySelector('audio'), items = Array.prototype.slice.call(root.querySelectorAll('.msq-toc li'));\n  var starts = items.map(function(li){ return parseFloat(li.getAttribute('data-start')) || 0; });\n  var names = items.map(function(li){ return li.querySelector('a').textContent; });\n  var anchors = items.map(function(li){ var h = li.querySelector('a').getAttribute('href') || ''; return (h.charAt(0) === '#' && h !== '#top') ? document.getElementById(h.slice(1)) : null; });\n  var article = root.getAttribute('data-article') || location.pathname, minutes = root.getAttribute('data-minutes') || '';\n  var marks = {}, started = false, pausedAt = -1, closed = false, ended = false;\n  var RATES = [1, 1.25, 1.5], rate = 1;\n  try { var saved = parseFloat(localStorage.getItem('msq-audio-rate')); if (RATES.indexOf(saved) >= 0) { rate = saved; } } catch (e) {}\n  audio.playbackRate = rate;\n  function track(name, extra){ try { if (typeof gtag === 'function') { var p = { article: article }; for (var k in extra) { p[k] = extra[k]; } gtag('event', name, p); } } catch (e) {} }\n  function current(){ var t = audio.currentTime, idx = 0; for (var i = 0; starts.length > i; i += 1) { if (t + 0.25 >= starts[i]) { idx = i; } } return idx; }\n  function onScreen(){\n    var line = window.innerHeight \/ 3, idx = 0;\n    for (var i = 0; anchors.length > i; i += 1) { var el = anchors[i]; if (el && line >= el.getBoundingClientRect().top) { idx = i; } }\n    return idx;\n  }\n  function fmt(s){ s = Math.max(0, Math.round(s || 0)); var m = Math.floor(s \/ 60), r = s % 60; return m + ':' + (10 > r ? '0' : '') + r; }\n  function play(from, source){\n    if (from !== null) { audio.currentTime = from; }\n    var p = audio.play(); if (p && p.catch) { p.catch(function(){}); }\n    track(from === null ? 'audio_resume' : 'audio_chapter', { chapter: names[current()], start: Math.round(audio.currentTime), source: source });\n  }\n  var hbtns = anchors.map(function(el, i){\n    if (!el) { return null; }\n    var b = document.createElement('button'); b.type = 'button'; b.className = 'msq-hplay'; b.setAttribute('aria-label', 'Play this section: ' + names[i]);\n    b.addEventListener('click', function(){\n      if (!audio.paused && current() === i) { audio.pause(); track('audio_pause', { source: 'heading' }); return; }\n      play(starts[i], 'heading');\n    });\n    el.appendChild(b); return b;\n  });\n  var bar = document.createElement('div'); bar.className = 'msq-bar msq-bar-pill is-hidden'; bar.setAttribute('role', 'region'); bar.setAttribute('aria-label', 'Audio player');\n  var playBtn = document.createElement('button'); playBtn.type = 'button'; playBtn.className = 'msq-bar-play';\n  var icon = document.createElement('span'); icon.className = 'msq-bar-icon'; icon.setAttribute('aria-hidden', 'true');\n  var label = document.createElement('span'); label.className = 'msq-bar-label';\n  playBtn.appendChild(icon); playBtn.appendChild(label);\n  var chap = document.createElement('span'); chap.className = 'msq-bar-chapter';\n  var clock = document.createElement('span'); clock.className = 'msq-bar-time';\n  var rateBtn = document.createElement('button'); rateBtn.type = 'button'; rateBtn.className = 'msq-bar-rate'; rateBtn.setAttribute('aria-label', 'Playback speed');\n  var closeBtn = document.createElement('button'); closeBtn.type = 'button'; closeBtn.className = 'msq-bar-close'; closeBtn.setAttribute('aria-label', 'Close the audio bar');\n  bar.appendChild(playBtn); bar.appendChild(chap); bar.appendChild(clock); bar.appendChild(rateBtn); bar.appendChild(closeBtn);\n  document.body.appendChild(bar);\n  function showRate(){ rateBtn.textContent = (rate === 1 ? '1' : String(rate)) + 'x'; }\n  showRate();\n  rateBtn.addEventListener('click', function(){\n    rate = RATES[(RATES.indexOf(rate) + 1) % RATES.length]; audio.playbackRate = rate; showRate();\n    try { localStorage.setItem('msq-audio-rate', String(rate)); } catch (e) {}\n    track('audio_rate', { rate: rate });\n  });\n  closeBtn.addEventListener('click', function(){\n    closed = true; if (!audio.paused) { audio.pause(); } paint(); track('audio_bar_close', {});\n  });\n  function mode(){\n    if (!audio.paused) { return 'pause'; }\n    if (ended) { return 'again'; }\n    if (!started) { return 'listen'; }\n    return (pausedAt === onScreen()) ? 'resume' : 'section';\n  }\n  playBtn.addEventListener('click', function(){\n    var m = mode();\n    if (m === 'pause') { audio.pause(); track('audio_pause', { source: 'bar' }); return; }\n    if (m === 'again') { ended = false; play(0, 'bar'); return; }\n    if (m === 'resume') { play(null, 'bar'); return; }\n    play(starts[onScreen()], 'bar');\n  });\n  function paint(){\n    var idx = current(), playing = !audio.paused, m = mode();\n    items.forEach(function(li, i){\n      var on = (i === idx) && playing, b = li.querySelector('.msq-toc-play'), a = li.querySelector('a');\n      li.classList.toggle('is-active', on); b.classList.toggle('is-playing', on);\n      b.textContent = on ? '\u2016' : '\u25b6\ufe0e';\n      b.setAttribute('aria-label', (on ? 'Pause: ' : 'Play from: ') + a.textContent);\n    });\n    hbtns.forEach(function(b, i){ if (b) { var on = (i === idx) && playing; b.classList.toggle('is-playing', on); b.setAttribute('aria-label', (on ? 'Pause this section: ' : 'Play this section: ') + names[i]); } });\n    playBtn.classList.toggle('is-playing', playing);\n    label.textContent = m === 'pause' ? 'Pause' : m === 'again' ? 'Play again' : m === 'resume' ? 'Resume' : m === 'section' ? 'Play this section' : 'Listen, ' + minutes + ' min';\n    playBtn.setAttribute('aria-label', label.textContent);\n    chap.textContent = started ? names[(playing || m === 'resume') ? idx : onScreen()] : '';\n    clock.textContent = started ? fmt(audio.currentTime) + ' \/ ' + fmt(audio.duration) : '';\n    bar.classList.toggle('msq-bar-pill', !started);\n    var show = !closed && (started || 0 > root.getBoundingClientRect().bottom);\n    bar.classList.toggle('is-hidden', !show);\n    document.body.classList.toggle('msq-has-bar', show);\n  }\n  root.addEventListener('click', function(e){\n    var b = e.target.closest ? e.target.closest('.msq-toc-play') : null; if (!b) { return; }\n    var li = b.parentNode, s = parseFloat(b.getAttribute('data-start')) || 0;\n    if (!audio.paused && current() === items.indexOf(li)) { audio.pause(); track('audio_pause', { source: 'index' }); return; }\n    play(s, 'index');\n  });\n  audio.addEventListener('play', function(){ ended = false; closed = false; if (!started) { started = true; track('audio_play', { minutes: Math.round((audio.duration || 0) \/ 60) }); } paint(); });\n  audio.addEventListener('pause', function(){ pausedAt = current(); paint(); });\n  audio.addEventListener('timeupdate', function(){\n    paint();\n    if (audio.duration > 0) {\n      var pct = Math.floor(audio.currentTime \/ audio.duration * 100);\n      [25, 50, 75].forEach(function(m){ if (pct >= m && !marks[m]) { marks[m] = true; track('audio_progress', { percent: m }); } });\n    }\n  });\n  audio.addEventListener('ended', function(){ ended = true; track('audio_complete', {}); paint(); });\n  var ticking = false;\n  function onScroll(){ if (ticking) { return; } ticking = true; setTimeout(function(){ ticking = false; paint(); }, 80); }\n  window.addEventListener('scroll', onScroll, { passive: true }); window.addEventListener('resize', onScroll);\n  paint();\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); }\n})();\n\n(function(){\n  function start(){\n    var root = document.querySelector('.msq-audio'), audio = root ? root.querySelector('audio') : null;\n    var map = (typeof MSQ_SENT !== 'undefined') ? MSQ_SENT : [];\n    if (!root || !audio || !map.length) { return; }\n    var scope = root.closest('main') || root.closest('article') || root.closest('.entry-content') || document.body;\n    var SKIP = '.msq-audio,.msq,.msq-tool,.msq-end,.msq-bar,script,style,noscript,figcaption,#rank-math-faq,.rank-math-block,nav,header,footer';\n    function norm(s){ return s.toLowerCase().replace(\/[^a-z0-9]+\/g, ''); }\n    var nodes = [], stream = '', walker = document.createTreeWalker(scope, NodeFilter.SHOW_TEXT, null), n;\n    while ((n = walker.nextNode())) {\n      var el = n.parentElement; if (!el || el.closest(SKIP)) { continue; }\n      var raw = n.nodeValue, keep = [], norms = '';\n      for (var i = 0; raw.length > i; i += 1) { var c = raw.charAt(i).toLowerCase(); if (\/[a-z0-9]\/.test(c)) { keep.push(i); norms += c; } }\n      if (!norms) { continue; }\n      nodes.push({ node: n, a: stream.length, b: stream.length + norms.length, keep: keep });\n      stream += norms;\n    }\n    var segs = [], cursor = 0, lastRow = null;\n    map.forEach(function(m, idx){\n      var kind = m[1], f = m[2], len = m[3];\n      if (kind === 't') {\n        var rows = scope.querySelectorAll('tr'), after = !lastRow;\n        for (var r = 0; rows.length > r; r += 1) {\n          var tr = rows[r];\n          if (!after) { if (tr === lastRow) { after = true; } continue; }\n          var cell = tr.querySelector('td,th');\n          if (cell && norm(cell.textContent).indexOf(f) === 0) { tr.setAttribute('data-i', idx); lastRow = tr; break; }\n        }\n        return;\n      }\n      var p = stream.indexOf(f, cursor); if (0 > p) { return; }\n      segs.push({ i: idx, a: p, b: Math.min(p + len, stream.length) }); cursor = p + len;\n    });\n    var si = 0;\n    nodes.forEach(function(nd){\n      var frag = document.createDocumentFragment(), raw = nd.node.nodeValue, rawPos = 0, any = false;\n      for (var k = si; segs.length > k; k += 1) {\n        var sg = segs[k]; if (sg.a >= nd.b) { break; } if (nd.a >= sg.b) { continue; }\n        var s = Math.max(sg.a, nd.a), e = Math.min(sg.b, nd.b);\n        var rs = nd.keep[s - nd.a], re2 = nd.keep[e - nd.a - 1] + 1;\n        if (rs > rawPos) { frag.appendChild(document.createTextNode(raw.slice(rawPos, rs))); }\n        var span = document.createElement('span'); span.className = 'msq-s'; span.setAttribute('data-i', sg.i); span.textContent = raw.slice(rs, re2);\n        frag.appendChild(span); rawPos = re2; any = true;\n        if (sg.b > nd.b) { break; }\n      }\n      while (segs.length > si && nd.b >= segs[si].b) { si += 1; }\n      if (!any) { return; }\n      if (raw.length > rawPos) { frag.appendChild(document.createTextNode(raw.slice(rawPos))); }\n      nd.node.parentNode.replaceChild(frag, nd.node);\n    });\n    var starts = map.map(function(m){ return m[0]; }), curIdx = -1, lastUser = 0, timer = null, autoUntil = 0, dragging = false;\n    function idxAt(t){ var lo = 0, hi = starts.length; while (hi > lo + 1) { var mid = (lo + hi) >> 1; if (t + 0.15 >= starts[mid]) { lo = mid; } else { hi = mid; } } return (t + 0.15 >= starts[0]) ? lo : -1; }\n    function setNow(i){\n      if (i === curIdx) { return; }\n      Array.prototype.forEach.call(scope.querySelectorAll('.msq-now'), function(el){ el.classList.remove('msq-now'); });\n      curIdx = i; if (0 > i) { return; }\n      var els = scope.querySelectorAll('[data-i=\"' + i + '\"]'); if (!els.length) { return; }\n      Array.prototype.forEach.call(els, function(el){ el.classList.add('msq-now'); });\n      var r = els[0].getBoundingClientRect(), now = Date.now();\n      if (!dragging && now > lastUser + 2500 && (80 > r.top || r.bottom > window.innerHeight - 140)) {\n        var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n        autoUntil = now + (reduce ? 400 : 1600);\n        els[0].scrollIntoView({ block: 'center', behavior: reduce ? 'auto' : 'smooth' });\n      }\n    }\n    function tick(){ if (!audio.paused) { setNow(idxAt(audio.currentTime)); } }\n    function userScrolled(){ lastUser = Date.now(); }\n    ['wheel', 'touchmove', 'keydown'].forEach(function(ev){ window.addEventListener(ev, userScrolled, { passive: true }); });\n    window.addEventListener('scroll', function(){ if (Date.now() > autoUntil) { userScrolled(); } }, { passive: true });\n    window.addEventListener('mousedown', function(e){ if (e.clientX >= document.documentElement.clientWidth) { dragging = true; userScrolled(); } }, { passive: true });\n    window.addEventListener('mouseup', function(){ if (dragging) { dragging = false; userScrolled(); } }, { passive: true });\n    audio.addEventListener('play', function(){ if (timer) { clearInterval(timer); } timer = setInterval(tick, 150); tick(); });\n    audio.addEventListener('pause', function(){ if (timer) { clearInterval(timer); timer = null; } });\n    scope.addEventListener('click', function(e){\n      if (e.target.closest('a, button, input, select, textarea, label, summary, .msq, .msq-tool, .msq-end, .msq-audio, .msq-bar')) { return; }\n      var sel = window.getSelection ? String(window.getSelection()) : '';\n      if (sel && sel.trim()) { return; }\n      var el = e.target.closest('[data-i]'); if (!el) { return; }\n      var i = parseInt(el.getAttribute('data-i'), 10); if (isNaN(i)) { return; }\n      if (!audio.paused && i === curIdx) { return; }\n      lastUser = Date.now();\n      audio.currentTime = starts[i];\n      var p = audio.play(); if (p && p.catch) { p.catch(function(){}); }\n      try { if (typeof gtag === 'function') { gtag('event', 'audio_chapter', { article: location.pathname, source: 'sentence', start: Math.round(starts[i]) }); } } catch (err) {}\n    });\n    audio.addEventListener('seeked', tick);\n    audio.addEventListener('ended', function(){ setNow(-1); });\n  }\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', start); } else { start(); }\n})();<\/script>\n<\/div>\n\n\n\n<p class=\"msq-hook wp-block-paragraph\">On this page: all 41 roles on Snorkel AI&#8217;s own Greenhouse board counted by function on October 5, 2026, the pay ranges exactly as listed, and what the Expert Contributor pages actually require, including the California exclusion.<\/p>\n\n\n\n<div class=\"msq\" id=\"ms-quiz\" data-slug=\"snorkel-ai-careers\" data-category=\"ai jobs\" data-list=\"1\">\n<style>.msq,.msq-hook,.msq-box,.msq-end,.msq-tool{--msq-accent:#1E3A8A;--msq-accent-text:#FFFFFF;--msq-line:#DDE3EE;--msq-warn:#B45309;--msq-muted:#55555F;--msq-tint:#F1F4FA;--msq-base:#FFFFFF}\n.msq{margin:1.25em 0 1.75em}\n.msq-hook{border-left:3px solid var(--msq-accent);padding:6px 14px;color:var(--msq-muted);font-size:.97em}\n.msq-box{background:var(--msq-tint);border:1px solid var(--msq-line);border-radius:12px;padding:0}\n.msq-box>summary{cursor:pointer;list-style:none;padding:14px 18px;font-weight:700;color:var(--msq-accent)}\n.msq-box>summary::-webkit-details-marker{display:none}\n.msq-box>summary::before{content:\"+\";display:inline-block;width:1.1em;font-weight:800}\n.msq-box[open]>summary::before{content:\"\\00d7\"}\n.msq-body{padding:2px 18px 18px}\n.msq-intro{margin:0 0 12px;font-size:.95em;color:var(--msq-muted)}\n.msq-list{margin:0;padding:0;list-style:none}\n.msq-q{margin:0 0 18px;padding:0}\n.msq-question{font-weight:700;margin:0 0 8px}\n.msq-options{display:flex;flex-direction:column;gap:8px}\n.msq-opt{text-align:left;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:8px;padding:10px 12px;font:inherit;font-size:.95em;color:inherit;cursor:pointer;line-height:1.35}\n.msq-opt:hover{border-color:var(--msq-accent)}\n.msq-opt[disabled]{cursor:default}\n.msq-opt.is-right{border-color:var(--msq-accent);background:var(--msq-line);font-weight:700}\n.msq-opt.is-wrong{border-color:var(--msq-warn);color:var(--msq-warn)}\n.msq-explain{margin:8px 0 0;font-size:.92em;padding:10px 12px;border-left:3px solid var(--msq-accent);background:var(--msq-base);border-radius:0 8px 8px 0}\n.msq-explain[hidden]{display:none}\n.msq-verdict{font-weight:700}\n.msq-result{margin-top:14px;padding:14px 16px;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:10px}\n.msq-result[hidden]{display:none}\n.msq-result h3{margin:0 0 6px;font-size:1.1em}\n.msq-result p{margin:0 0 8px}\n.msq-jump{margin:0 0 8px;padding-left:1.2em}\n.msq-form{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}\n.msq-form input[type=email]{flex:1 1 220px;padding:10px 12px;border:1px solid var(--msq-muted);border-radius:8px;font:inherit;background:#fff}\n.msq-btn{background:var(--msq-accent);color:var(--msq-accent-text);border:0;border-radius:8px;padding:11px 18px;font:inherit;font-weight:700;cursor:pointer}\n.msq-btn:hover{filter:brightness(.92)}\n.msq-btn[disabled]{opacity:.7;cursor:default}\n.msq-no{font-size:.9em;color:var(--msq-muted);margin-left:4px}\n.msq-privacy{margin:6px 0 0;font-size:.82em;color:var(--msq-muted);flex-basis:100%}\n.msq-hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}\n.msq-msg{margin:8px 0 0;font-size:.92em}\n.msq-end{margin:1.5em 0;padding:18px;border:1px solid var(--msq-accent);border-radius:12px;text-align:center;background:var(--msq-tint)}\n.msq-end p{margin:0 0 12px}\n.msq-end .msq-body{text-align:left;padding:16px 0 0}\n.msq-end .msq-start-test[hidden]{display:none}\n.msq-tool{margin:1.5em 0;padding:18px 20px;background:var(--msq-tint);border:1px solid var(--msq-line);border-radius:12px}\n.msq-tool h3{margin:0 0 6px;font-size:1.15em}\n.msq-tool p{margin:0 0 10px}\n.msq-tool .msq-note{font-size:.85em;color:var(--msq-muted);margin:10px 0 0}\n.msq-check label{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--msq-line);cursor:pointer;line-height:1.4}\n.msq-check label:last-of-type{border-bottom:0}\n.msq-check input{margin-top:5px;flex:0 0 auto;width:18px;height:18px;accent-color:var(--msq-accent)}\n.msq-check-count{font-weight:700;margin:10px 0 0}\n.msq-verdict-box{margin:12px 0 0;padding:10px 14px;border-radius:8px;background:var(--msq-base);border-left:3px solid var(--msq-warn)}\n.msq-verdict-box[hidden]{display:none}\n.msq-calc{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}\n.msq-calc label{display:flex;flex-direction:column;gap:4px;font-size:.92em}\n.msq-calc input,.msq-calc select{padding:8px 10px;border:1px solid var(--msq-muted);border-radius:8px;font:inherit;background:#fff}\n.msq-calc-out{grid-column:1 \/ -1;margin-top:6px;padding:12px 14px;background:var(--msq-base);border-radius:8px;border:1px solid var(--msq-line)}\n.msq-calc-out strong{font-size:1.15em}\n.msq-choose label{display:block;padding:9px 12px;margin:0 0 8px;background:var(--msq-base);border:1px solid var(--msq-line);border-radius:8px;cursor:pointer}\n.msq-choose input{margin-right:8px;accent-color:var(--msq-accent)}\n.msq-choice-result{margin-top:10px;padding:12px 14px;background:var(--msq-base);border-left:3px solid var(--msq-accent);border-radius:0 8px 8px 0}\n.msq-choice-result[hidden]{display:none}\n@media (max-width:600px){.msq-calc{grid-template-columns:1fr}}\nh2.wp-block-heading[id]{scroll-margin-top:24px}<\/style>\n<noscript><style>.msq-explain{display:block !important}<\/style><\/noscript>\n<details class=\"msq-box\">\n<summary>Think you already know this? Five questions, one minute.<\/summary>\n<div class=\"msq-body\">\n<p class=\"msq-intro\">Every answer is on this page. Answer from what you know now; the page fills in the rest.<\/p>\n<ol class=\"msq-list\">\n<li class=\"msq-q\" data-q=\"1\" data-answer=\"a\" data-title=\"What does Snorkel AI&#x27;s own job board list today?\" data-section=\"#what-does-snorkel-ai-s-own-job-board-list-today\">\n<p class=\"msq-question\">1. How many of the 41 roles on Snorkel AI&#8217;s Greenhouse board on October 5, 2026 were Expert Contributor contract postings?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 1 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">None of them<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">About half<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">All of them<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Every posting on the board that day was a salaried role; contract expert work applies through a separate portal. Source: <a href=\"https:\/\/job-boards.greenhouse.io\/snorkelai\" target=\"_blank\" rel=\"noopener\">Snorkel&#8217;s Greenhouse board<\/a> <a class=\"msq-section\" href=\"#what-does-snorkel-ai-s-own-job-board-list-today\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"2\" data-answer=\"b\" data-title=\"Where are Snorkel AI jobs based, and are any remote?\" data-section=\"#where-are-snorkel-ai-jobs-based-and-are-any-remote\">\n<p class=\"msq-question\">2. How many of the 41 roles named United States (Remote) as a location?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 2 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">None<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Six<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Twenty<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>Six roles listed a US remote option, four of them alongside the San Francisco and New York offices. Source: <a href=\"https:\/\/job-boards.greenhouse.io\/snorkelai\" target=\"_blank\" rel=\"noopener\">Snorkel&#8217;s Greenhouse board<\/a> <a class=\"msq-section\" href=\"#where-are-snorkel-ai-jobs-based-and-are-any-remote\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"3\" data-answer=\"c\" data-title=\"What do Snorkel AI roles pay, as listed?\" data-section=\"#what-do-snorkel-ai-roles-pay-as-listed\">\n<p class=\"msq-question\">3. How many of the 41 postings printed a salary range on October 5, 2026?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 3 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">12<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">28<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">40<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>40 of 41 showed a range; the Senior or Staff AI Engineer posting had the field present but empty. Source: <a href=\"https:\/\/job-boards.greenhouse.io\/snorkelai\/jobs\/6185944004\" target=\"_blank\" rel=\"noopener\">that posting<\/a> <a class=\"msq-section\" href=\"#what-do-snorkel-ai-roles-pay-as-listed\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"4\" data-answer=\"a\" data-title=\"How does the Snorkel Expert Contributor route work?\" data-section=\"#how-does-the-snorkel-expert-contributor-route-work\">\n<p class=\"msq-question\">4. Who do Snorkel&#8217;s expert pages say is not currently eligible for the Expert Contributor route?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 4 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">Residents of California<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">Anyone without a PhD<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">Residents of New York<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>The coding and law expert pages both say California residents are not currently eligible. Source: <a href=\"https:\/\/snorkel.ai\/expert-community\/coding\/\" target=\"_blank\" rel=\"noopener\">Snorkel&#8217;s coding expert page<\/a> <a class=\"msq-section\" href=\"#how-does-the-snorkel-expert-contributor-route-work\">Read the section<\/a><\/p>\n<\/li>\n<li class=\"msq-q\" data-q=\"5\" data-answer=\"b\" data-title=\"How do you tell a real Snorkel listing from a fake one?\" data-section=\"#how-do-you-tell-a-real-snorkel-listing-from-a-fake-one\">\n<p class=\"msq-question\">5. What does the FTC say about a job that asks you to pay to get paid?<\/p>\n<div class=\"msq-options\" role=\"group\" aria-label=\"Question 5 options\"><button type=\"button\" class=\"msq-opt\" data-opt=\"a\">It is fine if the fee is refundable<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"b\">It is a sure sign of a scam<\/button><button type=\"button\" class=\"msq-opt\" data-opt=\"c\">It is normal for contract work<\/button><\/div>\n<p class=\"msq-explain\" hidden><span class=\"msq-verdict\"><\/span>The FTC&#8217;s April 2026 alert says paying to get paid or to get a job is a sure sign of a scam. Source: <a href=\"https:\/\/consumer.ftc.gov\/consumer-alerts\/2026\/04\/job-offer-text-probably-scam\" target=\"_blank\" rel=\"noopener\">FTC consumer alert<\/a> <a class=\"msq-section\" href=\"#how-do-you-tell-a-real-snorkel-listing-from-a-fake-one\">Read the section<\/a><\/p>\n<\/li>\n<\/ol>\n<div class=\"msq-result\" hidden><\/div>\n<\/div>\n<\/details>\n<script>(function(){\n  if (window.__msqInit) { return; }\n  window.__msqInit = true;\n  var root = document.getElementById('ms-quiz');\n  if (!root) { return; }\n  var meta = { slug: root.getAttribute('data-slug'), category: root.getAttribute('data-category'),\n               list: root.getAttribute('data-list') || '1' };\n  function qs(el, s){ return el.querySelector(s); }\n  function qsa(el, s){ return Array.prototype.slice.call(el.querySelectorAll(s)); }\n  function track(name, params){\n    try { if (typeof gtag === 'function') { var p = params || {}; p.article = meta.slug; gtag('event', name, p); } } catch (e) {}\n  }\n  function jumpList(missed){\n    if (!missed.length) { return ''; }\n    return '<ul class=\"msq-jump\">' + missed.map(function(q){\n      return '<li><a href=\"' + q.getAttribute('data-section') + '\">' + q.getAttribute('data-title') + '<\/a><\/li>';\n    }).join('') + '<\/ul>';\n  }\n  function emailForm(){\n    return '<div class=\"msq-sub\"><p><strong>Get the next one.<\/strong> We publish new articles on ' + meta.category\n      + ' most weeks and recheck this page on Sundays. Email me when a new article goes up or this page changes.<\/p>'\n      + '<form class=\"msq-form\" method=\"post\" action=\"\/mail\/form.php\" novalidate>'\n      + '<input type=\"hidden\" name=\"list\" value=\"' + meta.list + '\">'\n      + '<input type=\"hidden\" name=\"name\" value=\"\">'\n      + '<label class=\"msq-hp\" aria-hidden=\"true\">Leave this empty<input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label>'\n      + '<input type=\"email\" name=\"email\" placeholder=\"you@example.com\" required aria-label=\"Email address\" autocomplete=\"email\">'\n      + '<button type=\"submit\" class=\"msq-btn\">Email me the updates<\/button>'\n      + '<a href=\"#\" class=\"msq-no\">No thanks<\/a>'\n      + '<p class=\"msq-privacy\">We store your email and this page\\'s topic, nothing else. Unsubscribe any time.<\/p>'\n      + '<\/form><p class=\"msq-msg\" aria-live=\"polite\"><\/p><\/div>';\n  }\n  \/* The autoresponder always answers 200 with its own page. A \".msg.err\" box means the\n     address was rejected, \"You're subscribed\" means accepted, and a redirect only happens\n     after a successful subscribe. Same reading as the landing pages on the other sites. *\/\n  function sendForm(form){\n    return fetch(form.getAttribute('action'), { method: 'POST', body: new FormData(form), credentials: 'same-origin', redirect: 'manual' })\n      .then(function(res){\n        if (res.type === 'opaqueredirect') { return { status: 'ok' }; }\n        if (res.status === 404) { return { status: 'notlive' }; }\n        if (!res.ok) { throw new Error('HTTP ' + res.status); }\n        return res.text().then(function(t){\n          var doc = new DOMParser().parseFromString(t, 'text\/html');\n          var err = doc.querySelector('.msg.err');\n          if (err) {\n            var m = err.textContent.trim();\n            if (\/something went wrong\/i.test(m)) { throw new Error(m); }\n            return { status: 'rejected', message: m };\n          }\n          if (\/you.re subscribed\/i.test(doc.body.textContent)) { return { status: 'ok' }; }\n          return { status: 'unknown' };\n        });\n      });\n  }\n  function wireForm(sub){\n    var form = qs(sub, '.msq-form'), msg = qs(sub, '.msq-msg');\n    qs(form, '.msq-no').addEventListener('click', function(e){\n      e.preventDefault();\n      sub.innerHTML = '<p class=\"msq-msg\">No problem. The Sunday refresh keeps this page current either way.<\/p>';\n      track('quiz_email', { result: 'declined' });\n    });\n    form.addEventListener('submit', function(e){\n      e.preventDefault();\n      var input = qs(form, 'input[name=email]'), btn = qs(form, '.msq-btn');\n      var email = input.value.trim(); input.value = email;\n      if (!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email)) { msg.textContent = 'That email does not look right.'; return; }\n      btn.disabled = true; btn.textContent = 'Sending';\n      function reset(){ btn.disabled = false; btn.textContent = 'Email me the updates'; }\n      sendForm(form).then(function(r){\n        if (r.status === 'ok' || r.status === 'unknown') {\n          sub.innerHTML = '<p class=\"msq-msg\"><strong>Done.<\/strong> We will email you when the next article on ' + meta.category\n            + ' goes up and when this page changes. If a confirmation email arrives, click it.<\/p>';\n          track('quiz_email', { result: r.status });\n          if (r.status === 'ok') { track('generate_lead', { method: 'quiz' }); }\n        } else if (r.status === 'notlive') {\n          msg.textContent = 'Sign up is not switched on yet for this site. Nothing was stored.'; reset();\n          track('quiz_email', { result: 'notlive' });\n        } else {\n          msg.textContent = r.message || 'Please check the email address and try again.'; reset();\n          track('quiz_email', { result: 'rejected' });\n        }\n      }).catch(function(){\n        msg.textContent = 'Could not reach the sign up service just now. Nothing was stored.'; reset();\n        track('quiz_email', { result: 'error' });\n      });\n    });\n  }\n  function finish(container, mode, score, total, missed){\n    var result = qs(container, '.msq-result');\n    track('quiz_complete', { mode: mode, score: score, total: total });\n    var h;\n    if (mode === 'pre') {\n      h = '<h3>You knew ' + score + ' of ' + total + ' before reading.<\/h3>';\n      h += (score === total) ? '<p>All of them. Read on anyway; the sections below carry the detail behind each answer.<\/p>'\n                             : '<p>The rest is below. Jump straight to what you missed:<\/p>' + jumpList(missed);\n      try { sessionStorage.setItem('msq-pre-' + meta.slug, String(score)); } catch (e) {}\n    } else {\n      var pre = null;\n      try { pre = sessionStorage.getItem('msq-pre-' + meta.slug); } catch (e) {}\n      h = '<h3>You got ' + score + ' of ' + total + '.<\/h3>';\n      if (pre !== null) { h += '<p>Before reading you had ' + pre + ' of ' + total + '.<\/p>'; }\n      if (missed.length) { h += '<p>Worth a second look:<\/p>' + jumpList(missed); }\n      h += emailForm();\n    }\n    result.innerHTML = h; result.hidden = false;\n    if (mode !== 'pre') { wireForm(qs(result, '.msq-sub')); }\n    result.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n  }\n  function setup(container, mode){\n    var qEls = qsa(container, '.msq-q'), answered = 0, score = 0, missed = [];\n    qEls.forEach(function(q){\n      var answer = q.getAttribute('data-answer'), opts = qsa(q, '.msq-opt'), explain = qs(q, '.msq-explain');\n      q.removeAttribute('data-done'); explain.hidden = true; qs(explain, '.msq-verdict').textContent = '';\n      opts.forEach(function(b){ b.disabled = false; b.classList.remove('is-right', 'is-wrong'); });\n      opts.forEach(function(b){\n        b.addEventListener('click', function(){\n          if (q.getAttribute('data-done')) { return; }\n          q.setAttribute('data-done', '1');\n          var ok = b.getAttribute('data-opt') === answer;\n          opts.forEach(function(o){ o.disabled = true; if (o.getAttribute('data-opt') === answer) { o.classList.add('is-right'); } });\n          if (ok) { score += 1; } else { b.classList.add('is-wrong'); missed.push(q); }\n          qs(explain, '.msq-verdict').textContent = ok ? 'Right. ' : 'Not quite. ';\n          explain.hidden = false;\n          answered += 1;\n          track('quiz_answer', { mode: mode, question: q.getAttribute('data-q'), correct: ok ? 1 : 0 });\n          if (answered === qEls.length) { finish(container, mode, score, qEls.length, missed); }\n        });\n      });\n    });\n  }\n  var box = qs(root, '.msq-box');\n  setup(root, 'pre');\n  if (box) { var skipFirst = box.hasAttribute('data-default-open'); box.addEventListener('toggle', function(){ if (!box.open) { return; } if (skipFirst) { skipFirst = false; return; } track('quiz_open', { mode: 'pre' }); }); }\n  \/* The end block sits far below this script, so it does not exist yet while this runs\n     during parsing. A delegated listener finds it at click time. *\/\n  document.addEventListener('click', function(e){\n    var startBtn = (e.target && e.target.closest) ? e.target.closest('.msq-start-test') : null;\n    if (!startBtn) { return; }\n    var end = startBtn.closest('.msq-end');\n    if (!end) { return; }\n    var mount = qs(end, '.msq-mount');\n    var clone = qs(root, '.msq-body').cloneNode(true);\n    var intro = qs(clone, '.msq-intro');\n    if (intro) { intro.textContent = 'The same five questions, now that you have read the page.'; }\n    var res = qs(clone, '.msq-result'); if (res) { res.hidden = true; res.innerHTML = ''; }\n    mount.innerHTML = ''; mount.appendChild(clone);\n    setup(mount, 'test');\n    startBtn.hidden = true;\n    track('quiz_open', { mode: 'test' });\n    mount.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    var first = qs(mount, '.msq-opt'); if (first) { first.focus({ preventScroll: true }); }\n  });\n  \/* Shared tool behaviour: checklists remember their ticks on this device, and a chooser\n     shows the result for the option picked. Calculators carry their own small script. *\/\n  function initTools(){\n    qsa(document, '.msq-check').forEach(function(box){\n      var key = 'msq-check-' + meta.slug + '-' + (box.getAttribute('data-id') || 'x');\n      var boxes = qsa(box, 'input[type=checkbox]'), count = qs(box, '.msq-check-count');\n      var yes = qs(box, '.msq-verdict-yes'), no = qs(box, '.msq-verdict-no');\n      var saved = {};\n      try { saved = JSON.parse(localStorage.getItem(key) || '{}'); } catch (e) {}\n      boxes.forEach(function(cb, i){ if (saved[i]) { cb.checked = true; } });\n      function refresh(){\n        var n = boxes.filter(function(cb){ return cb.checked; }).length, state = {};\n        boxes.forEach(function(cb, i){ if (cb.checked) { state[i] = 1; } });\n        try { localStorage.setItem(key, JSON.stringify(state)); } catch (e) {}\n        if (count) { count.textContent = n + ' of ' + boxes.length + (box.getAttribute('data-verb') || ' done'); }\n        if (yes && no) { yes.hidden = n === 0; no.hidden = n !== 0; }\n      }\n      boxes.forEach(function(cb){ cb.addEventListener('change', function(){ refresh(); track('tool_check', { tool: box.getAttribute('data-id') }); }); });\n      refresh();\n    });\n    qsa(document, '.msq-choose').forEach(function(box){\n      var results = qsa(box, '.msq-choice-result');\n      qsa(box, 'input[type=radio]').forEach(function(r){\n        r.addEventListener('change', function(){\n          results.forEach(function(el){ el.hidden = el.getAttribute('data-for') !== r.value; });\n          track('tool_choose', { tool: box.getAttribute('data-id'), choice: r.value });\n        });\n      });\n    });\n  }\n  \/\/ read progress: how far down the article the reader has scrolled, fired once per quarter\n  (function(){\n    var art = root.closest('article') || root.parentNode, fired = {};\n    function check(){\n      var top = art.getBoundingClientRect().top + window.pageYOffset, h = art.offsetHeight || 1;\n      var seen = (window.pageYOffset + window.innerHeight - top) \/ h * 100;\n      [25, 50, 75, 100].forEach(function(m){ if (seen >= m && !fired[m]) { fired[m] = true; track('read_progress', { percent: m }); } });\n    }\n    window.addEventListener('scroll', check, { passive: true }); window.addEventListener('load', check);\n  })();\n  if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initTools); } else { initTools(); }\n})();<\/script>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-does-snorkel-ai-s-own-job-board-list-today\">What does Snorkel AI&#8217;s own job board list today?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Snorkel AI calls itself a frontier AI data lab. In plainer words, it makes the datasets, benchmarks and evaluations AI companies use to train and test models, and it started out of the Stanford AI Lab in 2019. It hires two ways: employees who run the data business, and outside experts who write the data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The employee side lives on one page, Snorkel&#8217;s <a href=\"https:\/\/job-boards.greenhouse.io\/snorkelai\" target=\"_blank\" rel=\"noopener\">Greenhouse job board<\/a>, which its <a href=\"https:\/\/snorkel.ai\/careers\/\" target=\"_blank\" rel=\"noopener\">careers page<\/a> links to. We read every posting on it through Greenhouse&#8217;s public API on October 5, 2026 and counted 41. One posting, for a <a href=\"https:\/\/job-boards.greenhouse.io\/snorkelai\/jobs\/6208931004\" target=\"_blank\" rel=\"noopener\">Senior or Staff Software Engineer in AI and ML<\/a>, says the company raised a $350 million Series E at a $3.5 billion valuation in September 2026. That is the company&#8217;s own claim in a job advert, not an audited figure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sorted by the department each posting names, the 41 roles break down like this. DaaS in a department name is Snorkel&#8217;s data as a service business, the part that manages outside experts.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Function on Snorkel&#8217;s board<\/th><th>Open roles<\/th><th>Example posting<\/th><\/tr><\/thead><tbody><tr><td>Engineering<\/td><td>8<\/td><td>Head of Security; Software Engineer, Product<\/td><\/tr><tr><td>People and recruiting<\/td><td>6<\/td><td>Director of Technical Recruiting<\/td><\/tr><tr><td>Finance, legal and partnerships<\/td><td>5<\/td><td>Counsel, Commercial; Director, Data Partnerships<\/td><\/tr><tr><td>Forward deployed engineering<\/td><td>5<\/td><td>Senior\/Staff FDE, Synthetic Data Generation<\/td><\/tr><tr><td>Research<\/td><td>4<\/td><td>Research Scientist, Frontier Benchmarks<\/td><\/tr><tr><td>Data service operations<\/td><td>4<\/td><td><a href=\"https:\/\/job-boards.greenhouse.io\/snorkelai\/jobs\/6210283004\" target=\"_blank\" rel=\"noopener\">Operations Associate, Payments<\/a><\/td><\/tr><tr><td>Product<\/td><td>3<\/td><td>Staff Product Manager, Data Products<\/td><\/tr><tr><td>Marketing<\/td><td>3<\/td><td>Staff Brand Designer<\/td><\/tr><tr><td>Delivery, sales and fellows<\/td><td>3<\/td><td><a href=\"https:\/\/job-boards.greenhouse.io\/snorkelai\/jobs\/6201450004\" target=\"_blank\" rel=\"noopener\">Senior Manager, Coder Fellows<\/a><\/td><\/tr><tr><td>Total<\/td><td>41<\/td><td>Read October 5, 2026<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">None of the 41 is an Expert Contributor contract posting. Older contract listings for law or STEM experts still circulate on job aggregators, but Snorkel&#8217;s own board carried only salaried roles. A fair share of them exist to run the expert network: a <a href=\"https:\/\/job-boards.greenhouse.io\/snorkelai\/jobs\/6211057004\" target=\"_blank\" rel=\"noopener\">Director of Expert Supply Growth<\/a>, a payments associate for contributor pay disputes, and a manager for the Coding Fellows who write code for AI training. Our own <a href=\"https:\/\/getaiwork.com\/board\/\">free work board<\/a> picked up two Snorkel roles in its crawl on October 2, a Staff Product Manager and a forward deployed engineer, and both were still on Snorkel&#8217;s board three days later.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"900\" src=\"https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/snorkel-ai-careers-chart.png\" alt=\"Bar chart of snorkel ai careers open roles by function on its own job board\" class=\"wp-image-883\" srcset=\"https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/snorkel-ai-careers-chart.png 1600w, https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/snorkel-ai-careers-chart-300x169.png 300w, https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/snorkel-ai-careers-chart-1024x576.png 1024w, https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/snorkel-ai-careers-chart-768x432.png 768w, https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/snorkel-ai-careers-chart-1536x864.png 1536w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><figcaption class=\"wp-block-image__caption\">Engineering holds 8 of the 41 roles on Snorkel AI&#8217;s Greenhouse board on October 5, 2026, and none of the 41 is a contract expert posting.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"where-are-snorkel-ai-jobs-based-and-are-any-remote\">Where are Snorkel AI jobs based, and are any remote?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Almost entirely in two cities. Of the 41 roles, 23 are listed as hybrid in either San Francisco or New York, 11 in San Francisco only and one in New York only. One posting spells out hybrid as three days a week in the office.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Six roles name United States (Remote) as a location: four alongside the offices, mostly research and director posts, and two remote only, the payments associate and the Coder Fellows manager. No role was listed outside the United States on October 5, and the expert route below is US only too. If you are outside the US, the <a href=\"https:\/\/getaiwork.com\/articles\/surge-ai-careers\/\">Surge AI careers breakdown<\/a> and the <a href=\"https:\/\/getaiwork.com\/articles\/scale-ai-careers\/\">Scale AI careers guide<\/a> cover companies whose contractor routes reach more countries.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-do-snorkel-ai-roles-pay-as-listed\">What do Snorkel AI roles pay, as listed?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Snorkel is unusually open about this. 40 of the 41 postings print a salary range; the one that does not, a <a href=\"https:\/\/job-boards.greenhouse.io\/snorkelai\/jobs\/6185944004\" target=\"_blank\" rel=\"noopener\">Senior or Staff AI Engineer<\/a> role, has the pay field present but empty. The figures below are copied as listed on October 5, 2026: hiring ranges that move with location and level, not a promise of what anyone is paid.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Role<\/th><th>Location as listed<\/th><th>Pay range as listed<\/th><\/tr><\/thead><tbody><tr><td>Operations Associate, Payments<\/td><td>United States (Remote)<\/td><td>$30 to $40 an hour<\/td><\/tr><tr><td>Accounting Manager<\/td><td>San Francisco (Hybrid)<\/td><td>$110,000 to $185,000<\/td><\/tr><tr><td>Senior Technical Recruiter, Engineering<\/td><td>San Francisco or New York<\/td><td>$150,000 to $220,000<\/td><\/tr><tr><td>Research Scientist<\/td><td>SF, NY or US remote<\/td><td>$200,000 to $375,000<\/td><\/tr><tr><td>Software Engineer, Product<\/td><td>San Francisco or New York<\/td><td>$220,000 to $300,000<\/td><\/tr><tr><td>Senior or Staff Software Engineer, AI and ML<\/td><td>San Francisco (Hybrid)<\/td><td>$208,000 to $315,000<\/td><\/tr><tr><td>Director, Research, Evaluation and Training<\/td><td>SF, NY or US remote<\/td><td>$275,000 to $425,000<\/td><\/tr><tr><td>Strategic Delivery Lead<\/td><td>San Francisco or New York<\/td><td><a href=\"https:\/\/job-boards.greenhouse.io\/snorkelai\/jobs\/6192349004\" target=\"_blank\" rel=\"noopener\">$296,000 to $444,000<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Read the small print and one posting disagrees with itself: the payments associate advert gives a target hourly rate of $35 to $40, then a range of $30 to $40 a few lines later. Ask the recruiter which applies. For scale, <a href=\"https:\/\/getaiwork.com\/stats\">our board&#8217;s own data<\/a>, updated October 4, 2026, puts the median listed salary across 393 coding and software listings at $175,000 a year, so most Snorkel engineering bands start above the middle of the listed market. That compares listed figures; it forecasts nobody&#8217;s offer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are still working out whether a salaried AI company role or contract training work suits your background, the <a href=\"https:\/\/getaiwork.com\/?h=compare&#038;utm_source=articles&#038;utm_medium=organic&#038;utm_content=snorkel-ai-careers\">two minute match quiz<\/a> sorts the routes by what you have already done rather than by what a course says you could do.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-does-the-snorkel-expert-contributor-route-work\">How does the Snorkel Expert Contributor route work?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The contract side is a separate front door, the <a href=\"https:\/\/snorkel.ai\/expert-community\/\" target=\"_blank\" rel=\"noopener\">Snorkel Expert Community<\/a>, and it applies at experts.snorkel-ai.com rather than through Greenhouse. The main page lists four steps, apply, complete screenings, set up payment, join projects, plus a background check on identity and credentials. Contributors are independent contractors, paid through HireArt, which the page names as Snorkel&#8217;s agent of record.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eligibility needs reading twice. The main page lists an advanced degree in a relevant field, while the <a href=\"https:\/\/snorkel.ai\/expert-community\/coding\/\" target=\"_blank\" rel=\"noopener\">coding expert page<\/a> says professional experience matters more than a specific degree, and the <a href=\"https:\/\/snorkel.ai\/expert-community\/law\/\" target=\"_blank\" rel=\"noopener\">law expert page<\/a> asks for a JD or graduate law degree plus legal work experience. Both domain pages say the work is open to eligible US based contractors and that California residents are not currently eligible, a curious line from a company that lists most of its own roles in San Francisco, but that is what the pages said on October 5, 2026.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pay is per task. Snorkel&#8217;s pages say every task shows its pay up front, work must pass a quality review before it is paid, and accepted work is paid weekly for roughly the week before, with a target of payment within two weeks of acceptance. The main page also carries a headline about what its top experts make in a week. We leave that number out: a top earner figure describes the top, the way a lottery advert describes the winner, and says nothing about a typical week. Snorkel lists no hourly rate. On <a href=\"https:\/\/www.glassdoor.com\/Hourly-Pay\/Snorkel-AI-Expert-Contributor-Hourly-Pay-E5809965_D_KO11,29.htm\" target=\"_blank\" rel=\"noopener\">Glassdoor<\/a>, six self reported Expert Contributor figures, as of February 2026, ran from $41 to $71 an hour. Those are reports from six people, not a rate Snorkel lists, and rates change with projects and nothing is guaranteed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What contributors report is thin on the public record, and Snorkel has no Trustpilot reviews. Glassdoor showed one Expert Contributor review on <a href=\"https:\/\/www.glassdoor.com\/Reviews\/Snorkel-AI-Expert-Contributor-Reviews-EI_IE5809965.0,10_KO11,29.htm\" target=\"_blank\" rel=\"noopener\">its contributor review page<\/a>, a one star review dated February 26, 2026, in which a contributor alleges their access to project work was removed after they complained about how a project lead treated them. That is one person&#8217;s allegation, not a finding. Snorkel&#8217;s Chief People Officer replied publicly, and the reply concedes that scaling the operational side has not always kept pace with the network&#8217;s growth. One review proves little, but a company saying so in writing is worth knowing before you start.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1376\" height=\"768\" src=\"https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/close-up-smartphone-task-notebook-snorkel-ai-careers.jpg\" alt=\"Hands taking notes next to a smartphone showing tasks for freelance snorkel ai careers.\" class=\"wp-image-879\" srcset=\"https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/close-up-smartphone-task-notebook-snorkel-ai-careers.jpg 1376w, https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/close-up-smartphone-task-notebook-snorkel-ai-careers-300x167.jpg 300w, https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/close-up-smartphone-task-notebook-snorkel-ai-careers-1024x572.jpg 1024w, https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/close-up-smartphone-task-notebook-snorkel-ai-careers-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><figcaption class=\"wp-block-image__caption\">Task-based contract work can be managed right from a smartphone or notebook.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"which-snorkel-route-fits-which-background\">Which Snorkel route fits which background?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The routes barely overlap, so the honest answer depends on what you already have. This table restates what Snorkel&#8217;s own pages and postings say, read on October 5, 2026.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Your situation<\/th><th>Route that fits<\/th><th>What Snorkel&#8217;s pages ask for<\/th><\/tr><\/thead><tbody><tr><td>Experienced engineer, researcher or operator near SF or NY<\/td><td>Salaried role on Greenhouse<\/td><td>Role specific experience; most postings are hybrid<\/td><\/tr><tr><td>Experienced, in the US, wants remote salaried work<\/td><td>One of the six remote listed roles<\/td><td>Research, director level or the two remote only posts<\/td><\/tr><tr><td>Advanced degree or professional expertise, US resident outside California<\/td><td>Expert Contributor<\/td><td>Screening, background check, per task contract work<\/td><\/tr><tr><td>Lawyer with a JD, US resident outside California<\/td><td>Expert Contributor, law<\/td><td>JD or graduate law degree and legal work experience<\/td><\/tr><tr><td>California resident<\/td><td>Salaried roles only<\/td><td>Expert pages say California residents are not eligible<\/td><\/tr><tr><td>Outside the United States<\/td><td>Neither, on October 5<\/td><td>No non US locations on the board or expert pages<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1376\" height=\"768\" src=\"https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/man-with-headphones-at-laptop-snorkel-ai-careers.jpg\" alt=\"A man with headphones looks at his laptop while researching snorkel ai careers pathways.\" class=\"wp-image-880\" srcset=\"https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/man-with-headphones-at-laptop-snorkel-ai-careers.jpg 1376w, https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/man-with-headphones-at-laptop-snorkel-ai-careers-300x167.jpg 300w, https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/man-with-headphones-at-laptop-snorkel-ai-careers-1024x572.jpg 1024w, https:\/\/getaiwork.com\/articles\/wp-content\/uploads\/2026\/10\/man-with-headphones-at-laptop-snorkel-ai-careers-768x429.jpg 768w\" sizes=\"auto, (max-width: 1376px) 100vw, 1376px\" \/><figcaption class=\"wp-block-image__caption\">Finding the right remote role depends on matching your specific background.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If none of those rows describe you, Snorkel is not the only company that pays experts to write and check training data. The <a href=\"https:\/\/getaiwork.com\/articles\/openai-careers\/\">OpenAI careers guide<\/a> and the <a href=\"https:\/\/getaiwork.com\/articles\/anthropic-jobs\/\">Anthropic jobs breakdown<\/a> map the same two routes at the model labs themselves, and the free board lists contract training work by country every day.<\/p>\n\n\n\n<div class=\"msq-tool msq-choose\" data-id=\"snorkel-route\">\n<h3>Which Snorkel route matches your situation?<\/h3>\n<p>Pick the line closest to you. This restates the table in the article; it is not a pay estimate and nothing is saved.<\/p>\n<label><input type=\"radio\" name=\"snorkel-route\" value=\"a\">Experienced engineer, researcher or operator near San Francisco or New York<\/label>\n<label><input type=\"radio\" name=\"snorkel-route\" value=\"b\">Experienced, in the US, and want remote salaried work<\/label>\n<label><input type=\"radio\" name=\"snorkel-route\" value=\"c\">Advanced degree or professional expertise, US resident outside California<\/label>\n<label><input type=\"radio\" name=\"snorkel-route\" value=\"d\">California resident<\/label>\n<label><input type=\"radio\" name=\"snorkel-route\" value=\"e\">Outside the United States<\/label>\n<div class=\"msq-choice-result\" data-for=\"a\" hidden><strong>Salaried role on Greenhouse.<\/strong> Most of the 41 roles listed on October 5, 2026 were hybrid in those two cities.<\/div>\n<div class=\"msq-choice-result\" data-for=\"b\" hidden><strong>One of the six remote listed roles.<\/strong> They were mostly research and director posts, plus a payments associate and a Coder Fellows manager.<\/div>\n<div class=\"msq-choice-result\" data-for=\"c\" hidden><strong>Expert Contributor route.<\/strong> Screening, a background check, then per task contract work, applied for at experts.snorkel-ai.com.<\/div>\n<div class=\"msq-choice-result\" data-for=\"d\" hidden><strong>Salaried roles only.<\/strong> Snorkel&#8217;s expert pages said California residents were not currently eligible on October 5, 2026.<\/div>\n<div class=\"msq-choice-result\" data-for=\"e\" hidden><strong>Neither route, as of October 5, 2026.<\/strong> No role or expert page listed a location outside the US; the free board lists work by country.<\/div>\n<p class=\"msq-note\">Routes and eligibility change; check Snorkel&#8217;s own pages on the day you apply. Never pay a fee to apply.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-do-you-tell-a-real-snorkel-listing-from-a-fake-one\">How do you tell a real Snorkel listing from a fake one?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every Snorkel salaried role sits at job-boards.greenhouse.io\/snorkelai, and the expert route starts on snorkel.ai and applies at experts.snorkel-ai.com. A searched check on October 5, 2026 found no published reports of fake recruiters using Snorkel&#8217;s name, but fake offers borrow whatever AI brand is in the news, and a $3.5 billion funding headline is exactly the kind they borrow. The Telegram recruiter who is somehow hiring for every AI lab at once has not, so far, reached for Snorkel. Give it time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The rule that decides most of these is the Federal Trade Commission&#8217;s: its <a href=\"https:\/\/consumer.ftc.gov\/consumer-alerts\/2026\/04\/job-offer-text-probably-scam\" target=\"_blank\" rel=\"noopener\">April 2026 consumer alert<\/a> says paying to get paid, or paying to get a job, is a sure sign of a scam. Snorkel&#8217;s own process runs the other way, with pay going to the contributor through its named agent of record. Anyone who asks you for a fee, a deposit, a check to cash or a crypto payment is not running Snorkel&#8217;s process, whatever logo is on the message. Check the role on Snorkel&#8217;s own board before you reply, and report a fake at reportfraud.ftc.gov.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before you apply anywhere, the <a href=\"https:\/\/getaiwork.com\/?h=datatrainer&#038;utm_source=articles&#038;utm_medium=organic&#038;utm_content=snorkel-ai-careers\">match quiz<\/a> is a quicker way to see whether expert data work or a salaried role suits your background, and our <a href=\"https:\/\/getaiwork.com\/board\/\">work board<\/a> is free and public, with no signup.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"frequently-asked-questions\">Frequently asked questions<\/h2>\n\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-q-1\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Is Snorkel AI a real company?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. Snorkel AI was founded out of the Stanford AI Lab in 2019, according to its own postings, and runs a public Greenhouse job board with 41 salaried roles on October 5, 2026, plus an Expert Contributor network for contract work.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Does Snorkel AI hire in India?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Not on October 5, 2026. Every one of the 41 postings named a US location, and Snorkel&#8217;s expert pages describe the contract work as open to eligible US based contractors only.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-3\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Why can&#8217;t California residents join the Snorkel Expert Community?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Snorkel&#8217;s coding and law expert pages say California residents are not currently eligible, and the main page says it engages contributors only in select locations for legal, tax and compliance reasons. It gives no more detail than that.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-4\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Who pays Snorkel Expert Contributors?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>The Expert Community page names HireArt as Snorkel&#8217;s agent of record for contributor payments, with accepted work paid weekly for roughly the previous week.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-5\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Is there an assessment for Snorkel&#8217;s expert route?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Yes. The pages describe a screening or assessment, a background check that confirms identity and credentials, and then matching to projects. Snorkel says most experts are verified within a few days.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-q-6\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Does Snorkel AI charge a fee to join?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Nothing on Snorkel&#8217;s pages read on October 5, 2026 mentions a fee to apply or join. Any request for money before work starts is the clearest sign that an offer using Snorkel&#8217;s name is not real.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n<div class=\"msq-end\" id=\"ms-quiz-end\">\n<p><strong>Finished the page?<\/strong> The same five questions from the top, to see what stuck.<\/p>\n<button type=\"button\" class=\"msq-btn msq-start-test\">Test Your Understanding of This Article<\/button>\n<div class=\"msq-mount\"><\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Platform statuses and listed pay change without notice. Pay figures are quoted only as listed by the poster on the date shown and are never a promise of earnings. This page was verified on the date shown and is rechecked on the weekly refresh.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Snorkel AI&#8217;s 41 open roles counted from its own Greenhouse board on October 5, 2026, pay ranges as listed, and how its Expert Contributor route actually works.<\/p>\n","protected":false},"author":2,"featured_media":878,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","rank_math_title":"Snorkel AI Careers: Its Job Board and the Expert Route","rank_math_description":"Snorkel AI careers on October 5, 2026: 41 salaried roles on its own board, mostly hybrid in SF or NY, plus a per task expert route for US residents.","rank_math_focus_keyword":"snorkel ai careers","rank_math_canonical_url":"","rank_math_breadcrumb_title":"","rank_math_facebook_title":"","rank_math_facebook_description":"","rank_math_facebook_image":"","rank_math_twitter_title":"","rank_math_twitter_description":"","rank_math_twitter_image":"","rank_math_pillar_content":"","rank_math_robots":[],"rank_math_advanced_robots":[]},"categories":[3],"tags":[],"class_list":["post-881","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-jobs"],"_links":{"self":[{"href":"https:\/\/getaiwork.com\/articles\/wp-json\/wp\/v2\/posts\/881","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/getaiwork.com\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/getaiwork.com\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/getaiwork.com\/articles\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/getaiwork.com\/articles\/wp-json\/wp\/v2\/comments?post=881"}],"version-history":[{"count":4,"href":"https:\/\/getaiwork.com\/articles\/wp-json\/wp\/v2\/posts\/881\/revisions"}],"predecessor-version":[{"id":887,"href":"https:\/\/getaiwork.com\/articles\/wp-json\/wp\/v2\/posts\/881\/revisions\/887"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/getaiwork.com\/articles\/wp-json\/wp\/v2\/media\/878"}],"wp:attachment":[{"href":"https:\/\/getaiwork.com\/articles\/wp-json\/wp\/v2\/media?parent=881"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/getaiwork.com\/articles\/wp-json\/wp\/v2\/categories?post=881"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/getaiwork.com\/articles\/wp-json\/wp\/v2\/tags?post=881"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}