91³Ô¹ÏÍø

Watch CBS News

Latest California-based gig work app lets people book content creators, editors

It's 10 a.m. sharp, and Abby Kurtz gets her first assignment of the day. She's received a time, a location in San Francisco and a target.

Her weapon of choice: an iPhone.

"Being a social agent is really the coolest thing ever," she said. 

Kurtz is a content creator working through an app called Social Agent, part of an expanding gig economy where more and more workers are trading stability for flexibility. Work that once required connections, planning, and a big budget can now be booked with a tap —extending the on-demand model from rides and meals to storytelling itself.

 Just make a request, and someone like Kurtz can arrive within 30 minutes, camera-ready.

"What I look for when I'm shooting events is very crisp and clean content," she said. 

Her mission this time took her to Sutro Nursery, a nonprofit dedicated to growing native plants and that is hoping to grow its volunteer base, too. Board member Maryann Rainey said booking a Social Agent is a lot cheaper than hiring someone to do their social media full-time. 

"I know I can't do it myself, and I was certainly hoping that these young people would know how to do a good film," Rainey said.

A typical job runs about $200, with same-day delivery. Agents earn around $50 an hour, plus tips. And if clients already have footage, they can upload it and have it turned into a finished piece. 

The service is currently available in New York, Los Angeles, and Miami, with a slower rollout now underway in other cities.

 Lisa Jammal, the company's CEO, said the idea is simple: Let someone else do the shooting.

"We all are missing those beautiful moments because we're always behind the phone," she said. 

As for Kurtz, after the shoot, she headed straight to a nearby coffee shop, where the clock started ticking. She had just over an hour to shape her raw material into a polished final cut.

"I think I'm going to give this reel a really peaceful, calming feel, but also informative and inviting," she said. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });