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 Analyst
New York, New York City
07/25/2026
Contract
Active
Job Description:
Data Analyst
JOB SUMMARY We are seeking a Data Analyst to join our Investment Banking (IB) Reporting team, with a primary focus on data migration, reconciliation, and reporting support. This role will play a key part in transitioning reporting processes from legacy platforms to modern reporting environments, while ensuring data quality, consistency, and accuracy across systems. The ideal candidate will have strong analytical capabilities, hands-on experience in BI reporting tools, solid SQL knowledge, and a proactive mindset toward automation and process improvement. Experience within Investment Banking or Financial Services will be highly valued.
Key Responsibilities Support data migration initiatives from legacy reporting platforms to modern reporting systems. Perform data reconciliation activities to validate completeness, accuracy, and consistency of migrated data. Analyze complex datasets to identify discrepancies, trends, and reporting issues. Develop and support BI dashboards and reports using tools such as Power BI, Cognos, or similar platforms. Write and optimize SQL queries for data extraction, validation, and analysis. Conduct data validation and quality checks to ensure reporting integrity. Work closely with business stakeholders, reporting teams, and technology partners to gather requirements and resolve data issues. Contribute to automation initiatives and process improvements to enhance reporting efficiency and reduce manual effort. Document reconciliation logic, migration processes, and reporting standards for auditability and knowledge sharing. Communicate findings, issues, and recommendations clearly to stakeholders and project teams.
Required Qualifications Strong data analysis and data interpretation skills. Hands-on experience in data migration and reconciliation projects. Good knowledge of SQL and data validation techniques. Experience with BI reporting and analytics tools, such as Power BI, Cognos, Tableau, or similar. Exposure to automation initiatives, reporting enhancements, or process improvement projects. Strong attention to detail with a focus on data accuracy and quality. Excellent communication and stakeholder management skills. Proactive, solution-oriented approach with the ability to work independently and collaboratively.
Preferred Qualifications
-
Experience in Investment Banking, Capital Markets, or broader Financial Services environments. Familiarity with reporting data structures, controls, and governance practices in financial institutions. Understanding of legacy-to-modern platform migration projects within reporting or analytics functions.
-
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 = '5850683'; 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 ('5850683' != '') JobId = '5850683';
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 ('5850683' != '') JobId = '5850683';
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" + "29" + "." + 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