This website stores cookies on your computer. These cookies are used to collect information about how you interact with our website and allow us to remember you. We use this information in order to improve and customize your browsing experience and for analytics and metrics about our visitors both on this website and other media. To find out more about the cookies we use, see our Privacy Policy.
About Opmed.ai
Opmed.ai is a rapidly growing healthcare AI startup helping leading health systems optimize their operations. Our platform is already in use at major health systems and large networks such as Mayo Clinic and Geisinger, and we are backed by world-class funds including NFX and Grove.
Our platform improves patient access, staff satisfaction, and financial performance by transforming complex planning, scheduling, and resource allocation decisions (including equipment and staff) into data-driven workflows.
This is an opportunity to join a company in a phase of significant growth, working with leading health systems and a strong multidisciplinary team.
Role Overview
We are looking for a hybrid Data Scientist – Solution Architect who will sit at the intersection of data, product, and go-to-market. This person will own the technical win in pre-sales: analyzing customer data and constraints, designing models for planning, scheduling, and valuation, and building clear, quantitative business cases that demonstrate the impact of Opmed.ai.
You will work closely with sales, customer success, product, and R&D, and you will regularly interact with operational and executive leaders at leading health systems.
Key Responsibilities
- Partner with sales to lead technical discovery and pre-sales projects with prospects and customers.
- Perform data assessments: understand available data sources, data quality, and constraints relevant to planning, scheduling, and capacity/resource management (including equipment and staff).
- Translate operational workflows (OR, radiology, rehab, etc.) into models for:
- Case length and volume forecasting
- Planning, scheduling, and assignment (rooms, staff, equipment, blocks)
- Valuation and ROI estimation for different scenarios.
- Build prototypes and proof-of-value analyses using real customer data in Python.
- Quantify impact (access, utilization, overtime, revenue, waiting time) and translate it into a clear business case.
- Present findings and recommendations to customer stakeholders (operational and executive) in a clear and structured way.
- Work closely with R&D and product on scoping, assumptions, and handover from pre-sales projects to implementation.
- Collaborate with the R&D team, who will perform code reviews and validate the technical quality and robustness of your work.
- Develop reusable playbooks, templates, and best practices for future pre-sales engagements.
- Represent Opmed.ai as a technical expert in customer calls, workshops, and demos.
Requirements
- 3+ years of experience in Data Science, Operations Research, Applied Analytics, or a similar quantitative role.
- Strong hands-on skills with:
- Python
- SQL and working with relational data.
- Experience with statistical modeling and/or optimization for scheduling, planning, resource allocation, or similar problems.
- Ability to build quick, pragmatic models and analyses that answer business questions, not just “perfect” research models.
- Experience working directly with customers or stakeholders (client-facing, consulting, pre-sales, or internal business partners).
- Excellent communication skills, including the ability to explain complex models and tradeoffs to non-technical audiences.
- Comfortable presenting to senior stakeholders (directors, VPs, C-level).
- Fluent English (spoken and written).
Nice to Have
- Experience in healthcare operations (OR, radiology, rehab, inpatient flow, clinics, etc.).
- Background in optimization (constraint programming, mixed-integer programming, scheduling, routing).
- Previous experience in a Solution Architect / Sales Engineer / Pre-sales Data Scientist type role.
- Experience in B2B SaaS, especially with enterprise customers.
- Experience working with US health systems and their data (EHRs, scheduling systems, etc.).
What This Role Offers
- Direct impact on strategic deals with leading health systems worldwide.
- The opportunity to shape how Opmed.ai runs pre-sales and proof-of-value projects.
- Close collaboration with a strong R&D team building state-of-the-art AI and optimization solutions.
- A front-row seat to how data and models translate into real-world improvement in healthcare operations.
- An opportunity to join a company in significant growth, with room to influence both technology and business outcomes.
Embrace the new era in OR management
See the unseen and anticipate the unexpected to create resilient OR schedules,
maximize resource allocation, and improve quality of care with Opmed.
Book a demo ",e=e.removeChild(e.firstChild)):"string"==typeof o.is?e=l.createElement(a,{is:o.is}):(e=l.createElement(a),"select"===a&&(l=e,o.multiple?l.multiple=!0:o.size&&(l.size=o.size))):e=l.createElementNS(e,a),e[Ni]=t,e[Pi]=o,Pl(e,t,!1,!1),t.stateNode=e,l=Ae(a,o),a){case"iframe":case"object":case"embed":Te("load",e),u=o;break;case"video":case"audio":for(u=0;u<$a.length;u++)Te($a[u],e);u=o;break;case"source":Te("error",e),u=o;break;case"img":case"image":case"link":Te("error",e),Te("load",e),u=o;break;case"form":Te("reset",e),Te("submit",e),u=o;break;case"details":Te("toggle",e),u=o;break;case"input":A(e,o),u=M(e,o),Te("invalid",e),Ie(n,"onChange");break;case"option":u=B(e,o);break;case"select":e._wrapperState={wasMultiple:!!o.multiple},u=Uo({},o,{value:void 0}),Te("invalid",e),Ie(n,"onChange");break;case"textarea":V(e,o),u=H(e,o),Te("invalid",e),Ie(n,"onChange");break;default:u=o}Me(a,u);var s=u;for(i in s)if(s.hasOwnProperty(i)){var c=s[i];"style"===i?ze(e,c):"dangerouslySetInnerHTML"===i?(c=c?c.__html:void 0,null!=c&&Aa(e,c)):"children"===i?"string"==typeof c?("textarea"!==a||""!==c)&&X(e,c):"number"==typeof c&&X(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(ea.hasOwnProperty(i)?null!=c&&Ie(n,i):null!=c&&x(e,i,c,l))}switch(a){case"input":L(e),j(e,o,!1);break;case"textarea":L(e),$(e);break;case"option":null!=o.value&&e.setAttribute("value",""+P(o.value));break;case"select":e.multiple=!!o.multiple,n=o.value,null!=n?q(e,!!o.multiple,n,!1):null!=o.defaultValue&&q(e,!!o.multiple,o.defaultValue,!0);break;default:"function"==typeof u.onClick&&(e.onclick=Fe)}Ve(a,o)&&(t.effectTag|=4)}null!==t.ref&&(t.effectTag|=128)}return null;case 6:if(e&&null!=t.stateNode)Ll(e,t,e.memoizedProps,o);else{if("string"!=typeof o&&null===t.stateNode)throw Error(r(166));n=yn(yu.current),yn(bu.current),Jn(t)?(n=t.stateNode,o=t.memoizedProps,n[Ni]=t,n.nodeValue!==o&&(t.effectTag|=4)):(n=(9===n.nodeType?n:n.ownerDocument).createTextNode(o),n[Ni]=t,t.stateNode=n)}return null;case 13:return zt(vu),o=t.memoizedState,0!==(64&t.effectTag)?(t.expirationTime=n,t):(n=null!==o,o=!1,null===e?void 0!==t.memoizedProps.fallback&&Jn(t):(a=e.memoizedState,o=null!==a,n||null===a||(a=e.child.sibling,null!==a&&(i=t.firstEffect,null!==i?(t.firstEffect=a,a.nextEffect=i):(t.firstEffect=t.lastEffect=a,a.nextEffect=null),a.effectTag=8))),n&&!o&&0!==(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!==(1&vu.current)?rs===Qu&&(rs=Yu):(rs!==Qu&&rs!==Yu||(rs=Gu),0!==us&&null!==es&&(To(es,ns),Co(es,us)))),(n||o)&&(t.effectTag|=4),null);case 4:return wn(),Ol(t),null;case 10:return Zt(t),null;case 17:return It(t.type)&&Ft(),null;case 19:if(zt(vu),o=t.memoizedState,null===o)return null;if(a=0!==(64&t.effectTag),i=o.rendering,null===i){if(a)mr(o,!1);else if(rs!==Qu||null!==e&&0!==(64&e.effectTag))for(i=t.child;null!==i;){if(e=_n(i),null!==e){for(t.effectTag|=64,mr(o,!1),a=e.updateQueue,null!==a&&(t.updateQueue=a,t.effectTag|=4),null===o.lastEffect&&(t.firstEffect=null),t.lastEffect=o.lastEffect,o=t.child;null!==o;)a=o,i=n,a.effectTag&=2,a.nextEffect=null,a.firstEffect=null,a.lastEffect=null,e=a.alternate,null===e?(a.childExpirationTime=0,a.expirationTime=i,a.child=null,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null):(a.childExpirationTime=e.childExpirationTime,a.expirationTime=e.expirationTime,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,i=e.dependencies,a.dependencies=null===i?null:{expirationTime:i.expirationTime,firstContext:i.firstContext,responders:i.responders}),o=o.sibling;return Mt(vu,1&vu.current|2),t.child}i=i.sibling}}else{if(!a)if(e=_n(i),null!==e){if(t.effectTag|=64,a=!0,n=e.updateQueue,null!==n&&(t.updateQueue=n,t.effectTag|=4),mr(o,!0),null===o.tail&&"hidden"===o.tailMode&&!i.alternate)return t=t.lastEffect=o.lastEffect,null!==t&&(t.nextEffect=null),null}else 2*ru()-o.renderingStartTime>o.tailExpiration&&1