Source description
About the role
Upload Resume
- { margin: 0; padding: 0; outline: 0; border: 0 }
body { font-family: "open sans","Helvetica Neue",Helvetica,Arial,sans-serif; background-color: #011f4b; font-size: 12px; color: #333 !important }
.full_width { width: 100%; float: left }
#uploadResumeCandidateOuter header .headerTop { padding: 1em 5em 1em 2.5em; background: #fff; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -webkit-transition: all .3s ease-in-out; transition: all .3s ease-in-out; -webkit-box-align: center; -ms-flex-align: center; align-items: center; box-shadow: 0 1px 5px rgba(0,0,0,.2) }
#uploadResumeCandidateOuter .logo { float: left; font-size: 0; position: relative; z-index: 2 }
#uploadResumeCandidateOuter header .logo img, #uploadResumeCandidateOuter header .logo svg { -webkit-transition: all .3s ease-in-out; transition: all .3s ease-in-out; height: 60px }
#jobdetailsContent { background: #fff }
.jobDetailsWrapper { max-width: 1134px; margin: 0 auto }
.jobDetailsWrapper h2 { font-size: 2.3em; color: #002d69; font-weight: 600; margin-bottom: 30px; margin-top: 30px }
.jobDetailsWrapper .buttonFooter { text-align: right; border: 0; padding-top: 25px }
.btn.btn-nursedeck.back { color: #646464 !important; border: 2px solid #646464 !important }
.btn.btn-nursedeck.back:active, .btn.btn-nursedeck.back:focus, .btn.btn-nursedeck.back:hover { background-color: #646464; color: #fff !important }
.btn.slpback { background-color: #646464 }
.btn.slpback:active, .btn.slpback:focus, .btn.slpback:hover { background-color: #646464 }
.jobdetail h3 { margin-top: 5px; font-size: 16px; font-weight: 600 }
.jobDetailsWrapper .submitResumeSec { border: 1px solid #e5e6e7; box-shadow: inset 0 1px 1px rgba(0,0,0,.075) }
.jobDetailsWrapper .col-md-5.control-label { text-align: left; font-weight: 400; margin: 0; margin-top: 5px }
.form-group { margin-bottom: 15px }
.jobDetailsWrapper .col-md-5.control-label span { color: red }
.p-h-md { padding: 25px 0 }
.submitCandi_list li .fa.fa-circle { color: #19967d }
.submitResumeSec > ul { padding: 20px 1.5em; list-style: none; margin-bottom: 10px; }
.submitResumeSec > ul > li { padding-left: 10px; }
.submitResumeSec .descHeight { height: auto !important; }
.jobDetailsWrapper .col-md-3.control-label { text-align: left; font-weight: 400; margin: 0; margin-top: 5px; width: 20% }
.jobDetailsWrapper .col-md-9 { width: 80% }
.upLoadResumeWindow { padding-top: 15px; margin-top: 15px; border-top: 1px solid #e5e6e7 }
.submitCandi_header { width: 100%; float: left; padding-bottom: 0 }
.submitCandi_header h3 { color: #0c7cba; font-size: 2em; margin: 0; display: block; line-height: normal }
.submitCandi_header span { font-size: 1.3em; margin: 0; display: block; line-height: normal }
.submitCandi_list { width: 100%; float: left; padding: 1em 0; text-align: left; max-width: 56em }
.submitCandi_list li { display: inline-block; margin-right: 3em; margin-bottom: 2em }
.submitCandi_list li:last-child { margin-right: 0 }
.submitCandi_list li i { display: inline-block; font-size: 1.15em }
.submitCandi_list li p { display: inline-block; margin: 0 0 0 .1em; vertical-align: top; font-size: 1.1em; line-height: 1.3em }
.submitCandi_list li p span { font-size: .9em }
.submitCandi_list li p label { font-weight: 600 }
.submitCandi_list li .fa.fa-circle { color: #19967d }
.submitCandi_list li .fa.fa-circle.InactiveStage { color: red }
.submitCandi_list li .fa.fa-circle.HoldStage { color: orange }
.page-heading .buttonFooter { border-top: none; margin-top: 20px }
.buttonFooter .btn { width: 102px; padding: 6px 12px; margin-right: 5px; font-size: 14px; border: 1px solid transparent; display: inline-block; font-weight: 400; line-height: 1.42857143; text-align: center; white-space: nowrap; vertical-align: middle; background-color: #144991; touch-action: manipulation; cursor: pointer; user-select: none; color: #fff !important; background-image: none; border-radius: 4px }
.buttonFooter .btn.close_btn { border: 1px solid #d2d2d2 }
.btn.slpback { background-color: #646464 }
.fixedBTN { z-index: 99 }
.btnFixed { width: 96%; padding: 5px 15px; width: calc(100% - 70px); display: block; right: 0 }
.form-control, .single-line { background-color: #fff; background-image: none; border: 1px solid #e5e6e7; border-radius: 4px; color: inherit; display: block; padding: 4px 5px; transition: border-color .15s ease-in-out 0s,box-shadow .15s ease-in-out 0s; width: 100%; font-size: 12px; height: 28px; transition: all .3s }
.form-control[disabled]:focus, .form-control[disabled]:hover, .form-control[readonly]:focus, .form-control[readonly]:hover, fieldset[disabled] .form-control:focus, fieldset[disabled] .form-control:hover { border: 1px solid #e5e6e7 }
.has-success .form-control { border-color: #1ab394 }
.has-warning .form-control { border-color: #f8ac59 }
.has-error .form-control { border-color: #ed5565 !important }
.valError { color: #ed5565; font-size: 10px; display: block; text-align: left }
.loaderSection { background: rgba(51,51,51,.35); height: 100%; position: fixed; top: 0; width: 100%; left: 0; display: none; z-index: 99999 }
.container { padding: 15px 25px; max-width: 330px; border-radius: 8px; -webkit-border-radius: 8px; position: fixed; margin: 10px 0; top: 4px; right: 13px !important; z-index: 99999; display: none }
.container p { color: #fff; font: normal 16px/18px Arial,Helvetica,sans-serif }
.container b { border-radius: 50%; -webkit-border-radius: 50%; background: #479248; width: 33px; height: 34px; position: absolute; padding: 5px 0 0 5px; left: -15px; top: 16%; bottom: 30%; border: 2px solid #fff }
.cross { background: #cc3633; display: none }
.cross b { background: #bd3927; top: 18%; cursor: pointer }
.warning { background: #f8ac59 }
.warning b { background: #ddd; top: 18% }
.rightcontainer { background: #479248 }
Submit Resume
Back Submit
Data Scientist
Michigan, Grand Rapids
06/25/2026
Contract
Active
Job Description:
Job Summary We are seeking an experienced Data Scientist to lead and optimize the AI-driven product content ecosystem for owned brands. This role combines machine learning, product catalog management, and digital commerce to improve product descriptions, product intelligence, and recommendation systems. The ideal candidate will develop AI-powered solutions that enhance product discovery, improve customer engagement, and drive Product Detail Page (PDP) conversion through data-driven experimentation and advanced analytics. Key Responsibilities • Develop and optimize AI-generated product descriptions using Large Language Models (LLMs), attribute extraction, and content enrichment techniques. • Improve product content quality, consistency, and completeness across the product catalog. • Build evaluation frameworks to measure the effectiveness of product descriptions based on conversion, customer engagement, and SEO performance. • Develop machine learning models to improve product availability, status accuracy, and lifecycle intelligence. • Build predictive models for in-stock and out-of-stock forecasting. • Develop product readiness and completeness scoring models. • Collaborate with upstream data teams to ensure reliable, accurate, and real-time product data. • Design and implement recommendation systems for similar products, substitute items, and complementary product recommendations. • Continuously optimize recommendation and ranking algorithms to improve customer relevance and conversion performance. • Lead A/B testing initiatives for AI-generated product content and recommendation models. • Measure the business impact of AI solutions on Product Detail Page (PDP) conversion and revenue. • Develop dashboards, reports, and analytical models to measure performance and identify causal business impacts. • Collaborate with cross-functional teams to implement scalable AI and machine learning solutions. • Continuously evaluate and improve machine learning models using data-driven insights and experimentation. Required Qualifications • 10+ years of experience as a Data Scientist or in a related machine learning role. • Mandatory experience in the retail industry. • Strong expertise in machine learning, artificial intelligence, and predictive modeling. • Experience developing AI-powered product content solutions using Large Language Models (LLMs). • Experience building recommendation systems and ranking algorithms. • Strong knowledge of product catalog management and digital commerce platforms. • Experience designing and analyzing A/B tests and experimentation frameworks. • Experience building predictive models for product intelligence and lifecycle management. • Strong analytical, statistical, and problem-solving skills. • Experience developing dashboards and performance measurement frameworks. • Excellent communication and collaboration skills with cross-functional teams. Preferred Qualifications • Experience optimizing Product Detail Page (PDP) conversion through AI and machine learning solutions. • Experience with search relevance, recommendation engines, and personalization strategies. • Knowledge of SEO optimization techniques for AI-generated product content. • Experience working with large-scale product catalogs and e-commerce platforms. • Experience implementing production-grade AI and machine learning models in enterprise environments.
Email ID *
This field is required Please enter valid emailId.
Cell phone *
This field is required Please enter valid cell phone.
First Name *
This field is required Please enter valid first name.
Last Name *
This field is required Please enter valid last name.
Upload Resume
Resume Title *
This field is required
Comments for Recruiter
This field is required
.
.
.
$(document).ready(function () { var JobId = '5833672'; if (JobId == '') { $(".jobdetail").hide(); $("#headertext").html('Upload Resume'); } else { $("#headertext").html('Submit Resume'); } });
function fillEmailId() { if ($.trim($("#txtEmailIdtoSearch").val()) == "") { showvalidation($("#txtEmailIdtoSearch")); $(".loaderSection").hide(); return false; } else { var Reg = new RegExp("^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)@[A-Za-z0-9]+(\.[A-Za-z0-9]+)(\.[A-Za-z]{2,})$"); var matches = $.trim($("#txtEmailIdtoSearch").val()).match(Reg); if (!matches) { hidevalidation($("#txtEmailIdtoSearch")); showRegExpvalidation($("#txtEmailIdtoSearch")); return false; } else { hideRegExpvalidation($("#txtEmailIdtoSearch")); hidevalidation($("#txtEmailIdtoSearch")); } } } function fillFirstName() { if ($.trim($("#txtFirstName").val()) == "") { showvalidation($("#txtFirstName")); $(".loaderSection").hide(); return false; } else { var Reg = new RegExp("^[a-zA-Z][0-9a-zA-Z .,'-]$"); if (!Reg.test($.trim($("#txtFirstName").val()))) { hidevalidation($("#txtFirstName")); showRegExpvalidation($("#txtFirstName")); return false; } else { hideRegExpvalidation($("#txtFirstName")); hidevalidation($("#txtFirstName")); } } } function fillLastName() { if ($.trim($("#txtLastName").val()) == "") { showvalidation($("#txtLastName")); $(".loaderSection").hide(); return false; } else { var Reg = new RegExp("^[a-zA-Z][0-9a-zA-Z .,'-]$"); if (!Reg.test($.trim($("#txtLastName").val()))) { hidevalidation($("#txtLastName")); showRegExpvalidation($("#txtLastName")); return false; } else { hideRegExpvalidation($("#txtLastName")); hidevalidation($("#txtLastName")); } } } function fillCandidateComments() { if ($.trim($("#txtCandidateComments").val()) == "") { showvalidation($("#txtCandidateComments")); $(".loaderSection").hide(); return false; } else { hidevalidation($("#txtCandidateComments")); } } function fillPhone() { if ($.trim($("#txtPhone").val()) == "") { showvalidation($("#txtPhone")); $(".loaderSection").hide(); return false; } else { var Reg = /(?\d{3})?-? *\d{3}-? *-?\d{4}/g; var matches = $.trim($("#txtPhone").val()).match(Reg); if (!matches) { hidevalidation($("#txtPhone")); showRegExpvalidation($("#txtPhone")); return false; } else { hideRegExpvalidation($("#txtPhone")); hidevalidation($("#txtPhone")); } } } function fillResumeTitle() { if ($.trim($("#txtDefDocTitle").val()) == "") { showvalidation($("#txtDefDocTitle")); $(".loaderSection").hide(); return false; } else { hidevalidation($("#txtDefDocTitle")); } } function showRegExpvalidation(ctrl) { $(ctrl).parent().addClass("has-error"); $(ctrl).parent().find("span.freg").show(); $(".loaderSection").hide(); } function hideRegExpvalidation(ctrl) { $(ctrl).parent().removeClass("has-error"); $(ctrl).parent().find("span.freg").hide(); $(".loaderSection").hide(); } function showvalidation(ctrl) { $(ctrl).parent().addClass("has-error"); $(ctrl).parent().find("span.freq").show(); $(".loaderSection").hide(); } function hidevalidation(ctrl) { $(ctrl).parent().removeClass("has-error"); $(ctrl).parent().find("span.freq").hide(); $(".loaderSection").hide(); } function ValidateData() { var isProceedToSave = true; $(".loaderSection").show();
if ($.trim($("#txtEmailIdtoSearch").val()) == "") { showvalidation($("#txtEmailIdtoSearch")); isProceedToSave = false; } if ($.trim($("#txtFirstName").val()) == "") { showvalidation($("#txtFirstName")); isProceedToSave = false; } else { var Reg = new RegExp("^[a-zA-Z][0-9a-zA-Z .,'-]$"); if (!Reg.test($.trim($("#txtFirstName").val()))) { hidevalidation($("#txtFirstName")); showRegExpvalidation($("#txtFirstName")); isProceedToSave = false; } } if ($.trim($("#txtLastName").val()) == "") { showvalidation($("#txtLastName")); isProceedToSave = false; } else { var Reg = new RegExp("^[a-zA-Z][0-9a-zA-Z .,'-]$"); if (!Reg.test($.trim($("#txtLastName").val()))) { hidevalidation($("#txtLastName")); showRegExpvalidation($("#txtLastName")); isProceedToSave = false; } } if ($.trim($("#txtPhone").val()) == "") { showvalidation($("#txtPhone")); isProceedToSave = false; } if (isProceedToSave) { var fileUpload = $("#FileUpload2").get(0); var files = fileUpload.files; if (files.length == 0) { ShowErrorNotification("Please attach a resume."); $(".loaderSection").hide(); isProceedToSave = false; } return isProceedToSave; } else { ShowErrorNotification("Whoops! Looks like you've missed entering some data. Please enter data in the highlighted fields."); $(".loaderSection").hide(); window.scrollTo(10, 10); return isProceedToSave; } }
function SubmitResume() { if (ValidateData()) { var FileName = ''; var JobId = '0';
if ('5833672' != '') JobId = '5833672';
var txtemailid = $("#txtEmailIdtoSearch").val(); $.ajax({ url: '/Support/GetCandidateDetailByEmailId', type: "GET", dataType: "JSON", data: { CandidateEmail: txtemailid, JobId: JobId }, success: function (data) { if (data == "exists") { $(".loaderSection").hide(); ShowErrorNotification("You are already submitted to this position."); return false; } else //If email does not exist { if (data.Resume_Id != undefined && data.Resume_Id != null && parseInt(data.Resume_Id) > 0) { SubmitDocument(data.Resume_Id, 0, 1); } else { UploadDocUsingAPI(); } } } }); } else $(".loaderSection").hide(); } function UploadDocUsingAPI() { var fileUpload = $("#FileUpload2").get(0); var files = fileUpload.files; if (files.length == 0) { ShowErrorNotification("Please attach a resume."); $(".loaderSection").hide(); return false; }
if (files.length > 0) { if (window.FormData !== undefined) { var data = new FormData(); for (var i = 0; i 0) { SubmitDocument(data.candidateId, 1, 0); // $(".loaderSection").hide(); } else { ShowErrorNotification(data.EventStatusStatus); $(".loaderSection").hide(); } //callback(data.UploadedFileName); }, error: function (err) { ShowErrorNotification(err.statusText); $(".loaderSection").hide(); window.scrollTo(10, 10); return false; } }); } else { alert("This browser doesn't support HTML5 file uploads!"); } } } async function SubmitDocument(Resume_Id, Datafrom, IsExist) { var FileName = ''; var JobId = '0'; var RecId = '0'; var Source = '4414'; var EntityGroup = '2321'; var SubSource = '13304';
if ('5833672' != '') JobId = '5833672';
if ('0' != '') RecId = '0';
if (Datafrom == 0) { // Wait for the document upload to complete FileName = await UploadCandidateDoc(); if (!FileName) { ShowErrorNotification("Whoops! Looks like some issues in uploading resume. Please try again."); return; // Exit if upload failed } } var ResumeDetails = $.param({ Email_Id: $("#txtEmailIdtoSearch").val(), FirstName: $("#txtFirstName").val(), LastName: $("#txtLastName").val(), Phone: $("#txtPhone").val(), CandidateComments: $("#txtCandidateComments").val(), JobId: JobId, UploadedFileName: FileName, ResumeId: Resume_Id, Datafrom: Datafrom, RecId: RecId, IsExist: IsExist, Source: Source, EntityGroup: EntityGroup, ResumeFromJobPortal: 1, UploadedDocName: $.trim($("#txtDefDocTitle").val()), SubSource: SubSource }); $.ajax({ url: '/Support/UploadResumeForJobPortal', type: "POST", dataType: "JSON", data: ResumeDetails, success: function (data) { if (data.headerCode == "20001") { ShowSaveNotification(data.EventStatusStatus); $(".loaderSection").hide(); window.scrollTo(10, 10); } else if (data.headerCode == "10001") { ShowErrorNotification(data.data.errorDetail); $(".loaderSection").hide(); window.scrollTo(10, 10); } else if (data.headerCode == "20003") { ShowErrorNotification(data.EventStatusStatus); $(".loaderSection").hide(); window.scrollTo(10, 10); } else { ShowErrorNotification(data.PortalJob_Status); $(".loaderSection").hide(); window.scrollTo(10, 10); } } }); }
// Function to convert a file to base64 async function fileToBase64(file) { var base64String; const createPromise = new Promise((resolve, reject) => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = (error) => reject(error); });
await createPromise.then((promisedata) => { base64String = promisedata; });
return base64String; }
function getFileExtension(filename) { if (!filename || !filename.includes('.')) { return ''; } return filename.split('.').pop(); }
function getFileName(filename) { if (!filename || !filename.includes('.')) { return filename; } return filename.split('.').slice(0, -1).join('.'); }
//Upload Document - Returns Promise async function UploadCandidateDoc() { var fileUpload = $("#FileUpload2").get(0); var files = fileUpload.files;
if (files.length == 0) { ShowErrorNotification("Please attach a resume."); $(".loaderSection").hide(); return null; }
if (files.length > 0) { if (window.FormData !== undefined) { var strFileNameWithoutExt = getFileName(files[0].name); var strFileExt = getFileExtension(files[0].name); var strNewFileName = strFileNameWithoutExt.replace("//", "").replace("+", "").replace("*", "").replace(" ", "").replace(":", "").replace(".", "") + "_" + "7" + "24" + "2026" + "17" + "18" + "34" + "." + strFileExt;
var fileBase64String; if (files[0]) { fileBase64String = await fileToBase64(files[0]); } var data = JSON.stringify({ docType: 9001, fileName: strNewFileName, encodedData: fileBase64String.split(',')[1], pjEmployeeId: null, placementTrackerId: null, employeeDetailsId: null });
var encodedData = btoa(data);
// Return a Promise instead of using callback return new Promise((resolve, reject) => { $.ajax({ type: "POST", url: 'https://stafflineapi.compunnel.com/' + "document/upload", contentType: "application/json; charset=utf-8", data: JSON.stringify({ data: encodedData }), timeout: 30000, json: true, headers: { "Authorization": 'qwerty~!@', }, success: function (result) { resolve(strNewFileName); }, error: function (err) { ShowErrorNotification(err.statusText); $(".loaderSection").hide(); window.scrollTo(10, 10); reject(null); } }); }); } else { alert("This browser doesn't support HTML5 file uploads!"); return null; } } return null; } $(function () { if ($('.formSection').offset() != undefined) { var stickyHeaderTop = $('.formSection').offset().top; $(window).scroll(function () { if ($(window).scrollTop() > stickyHeaderTop - 100) { $('.fixedBTN').addClass('btnFixed').css({ position: 'fixed', top: '65px', margin: '0px' });
} else { $('.fixedBTN').removeClass('btnFixed').css({ position: 'static', top: '0px', 'margin-top': '20px' });
} }); }; });
function ShowSaveNotification(strText) { $('.rightcontainer').find('p').text(strText); $('.rightcontainer').css({ 'opacity': '0', top: "50px" }).show(); $('.rightcontainer').stop().animate({ 'opacity': '1', top: "-=50px" }, 1000, function () { $(this).delay(3000).fadeOut(900); }); }
function ShowErrorNotification(strText) { $('.cross').find('p').html(strText); $('.cross').css({ 'opacity': '0', top: "50px" }).show(); $('.cross').stop().animate({ 'opacity': '1', top: "-=50px" }, 1000, function () { $(this).delay(3000).fadeOut(900); }); //$('.cross').show(); }
function ShowWarningNotification(strText) { $('.warning').find('p').html(strText); $('.warning').css({ 'opacity': '0', top: "50px" }).show(); $('.warning').stop().animate({ 'opacity': '1', top: "-=50px" }, 000, function () { $(this).delay(4000).fadeOut(900); }); }
More at Compunnel