a:6:{i:0;s:14603:"				<section id="middle">
				<div class="wrap" id="bodyFormat1">
				<div class="row1 dt columns23"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls detail_pm_15"><!--MIDDLE ROW1 COL-2 STARTS-->
				
									<div class="h1"><h1>Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney Wallet</h1></div>
					<p class="breadcrumb ar uu small"> <a href="http://www.assuredjobconsultancy.com/">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.assuredjobconsultancy.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>  			
											
					<b class="ffv p2px">&rsaquo;</b> Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney Wallet</p>
									<p class="mb5px"><i class="fa fa-briefcase mr7px fl w15px alpha50"></i> 2 - 5 Years</p>
				
									<p class="mb10px"><i class="fa fa-map-marker mr7px fl pl1px w15px alpha50"></i>Delhi, South Delhi</p>
										
					<div>
					<form name="frmvacdetail" method="post" action="post-resume-form1.html">
					<input style="padding:7px 15px;" class="button b ffos" type="submit" value="Post Your Resume" />
					<input type="hidden" name="catalog_mi" value="640522">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="561223"><input type="hidden" name="subject" value="Applied for Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney wallet">
					</form>
					</div>
			
						
				
				<br>
				<div class="bdrT pt20px">
				<p class="xlarge b">Job Description</p>
				<p class="aj mt10px">We are looking for experienced Sr.Project manager who will be responsible for planning, organizing, managing and executing projects from beginning to end. The project scope can vary from single pieces of collateral to multifaceted, multichannel marketing campaigns. <br />
The person will be assign individuals or entire teams to tasks within the project, while creating and managing detailed schedules throughout the duration of the project.  <br />
The person will play a central role in is risk analysis. They must be adept at identifying potential roadblocks related to budgets, resources and timelines, and reporting these potential issues to their management, when necessary.<br />
We expect you to have excellent communication skills written and spoken. This role will be very dynamic, so the person should be versatile and adapt to any given situation. A ‘Can do’ attitude and a desire to learn and grow is essential.<br />
<br />
 Roles & Responsibilities<br />
•	Knowledge and understanding of how to manage and conceptualize a marketing campaign <br />
•	Coordinate internal and external resources and third parties/vendors for the flawless execution of projects<br />
•	Developing project scopes and objectives, involving all relevant stakeholders <br />
•	Ensure resource availability and allocation<br />
•	Ensure that all projects are delivered on-time<br />
•	Manage the relationship with the client and all stakeholders<br />
•	Create and maintain comprehensive project documentation<br />
<br />
Skillset Required<br />
•	Expert organizational skills<br />
•	Strong ability to multi-task<br />
•	Outstanding communication skills<br />
•	Knowledge of project management processes, workflow and terminology<br />
•	Ability to function well in a fast paced (sometimes chaotic) environment under tight deadlines<br />
<br />
Commitment Required<br />
•	Minimum 1-2 years commitment as we intend to grow rapidly so there will be enormous potential to grow and diversify within the company.<br />
<br />
Company Provisions<br />
•	Dynamic working environment with 6days working.<br />
•	Company phone and laptop provided where required.</p>
				
				<table class="w100 formTable bdr0 mt10px">				
											<tr>
							<td class="w22 alpha75 p5px">Salary</td>
							<td class="p5px"> 5  Lac  To  7  Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="w22 alpha75 p5px">Industry</td>
					<td class="p5px">IT Software - Application Programming / Maintenance</td>
					</tr>
									<tr>
				<td class="w22 alpha75 p5px">Work Experience</td>
				<td class="p5px">2 - 5 Years</td>
				</tr>
									<tr>
					<td class="w22 alpha75 p5px">Qualification</td>
					<td class="p5px">B.Tech/B.E, M.B.A/PGDM</td>
					</tr>					
									
				</table>
				
				
				</div>
				
				<br>
				<div class="bdrT pt20px">
									<p class="xlarge b">Key Skills</p>
					<div class="mt10px dif">
											<span class="bn dib p5px10px c2px headVr mr7px mb7px">Senior Project Manager</span>
											</div>
									</div>
				
				
				<br>
				<div class="bdrT pt20px">
				<p class="xlarge b">Company Profile</p>
				<div class="mt10px">
				
									<table class="w100 formTable bdr0 mt5px">
											<tr>
						<td class="w22 alpha75 p5px vat">Company Name</td>
						<td class="p5px vat"><p class="dif b">Assured Job Consultancy</p></td>
						</tr>
												<tr>
						<td class="w22 alpha75 p5px vat">About Company</td>
						<td class="p5px vat">Come,Live your dreams!</td>
						</tr>
												<tr>
						<td class="w22 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:Assuredjobs@assuredjobconsultancy.com"> Assuredjobs@assuredjobconsultancy.com </a></td>
						</tr>
										
					</table>
									
				<br />
				
									
					<div class="bdrT pt20px">
					<form name="frmvacdetail" method="post" action="post-resume-form1.html">
					<input style="padding:7px 15px;" class="button b ffos" type="submit" value="Post Your Resume" />
					<input type="hidden" name="catalog_mi" value="640522">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="561223"><input type="hidden" name="subject" value="Applied for Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney wallet">
					</form>
					</div>
			
									</div>
				</div>			
				
				<!--MIDDLE ROW1 COL-2 ENDS--> 
				</div>
				<div class="col-3 thinColumn"><!--MIDDLE ROW1 COL-1 STARTS-->
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<h2>Jobs by Location</h2>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-chandigarh.htm" title="Jobs in Chandigarh">Chandigarh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-delhi.htm" title="Jobs in Delhi">Delhi</a> <b class="alpha50 bn small">(9)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-bangalore.htm" title="Jobs in Bangalore">Bangalore</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-mumbai.htm" title="Jobs in Mumbai">Mumbai</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-bhubaneswar.htm" title="Jobs in Bhubaneswar">Bhubaneswar</a> <b class="alpha50 bn small">(15)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-chennai.htm" title="Jobs in Chennai">Chennai</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-agra.htm" title="Jobs in Agra">Agra</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-kolkata.htm" title="Jobs in Kolkata">Kolkata</a> <b class="alpha50 bn small">(15)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-hyderabad.htm" title="Jobs in Hyderabad">Hyderabad</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-secunderabad.htm" title="Jobs in Secunderabad">Secunderabad</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-pune.htm" title="Jobs in Pune">Pune</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-kochi.htm" title="Jobs in Kochi">Kochi</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-cuttack.htm" title="Jobs in Cuttack">Cuttack</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-jamshedpur.htm" title="Jobs in Jamshedpur">Jamshedpur</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-sundargarh.htm" title="Jobs in Sundargarh">Sundargarh</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-jajapur.htm" title="Jobs in Jajapur">Jajapur</a> <b class="alpha50 bn small">(3)</b></span>
											<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-saudi-arabia.htm" title="Jobs in Saudi Arabia">Saudi Arabia</a> <b class="alpha50 bn small">(2)</b></span>
												<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-canada.htm" title="Jobs in Canada">Canada</a> <b class="alpha50 bn small">(1)</b></span>
											<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
									</div>
				</div>
				</div>
				</div>
				
				<div class="column_Box mc">
				<div class="tcl bullet divider">
				<div class="h h2"><b class="plusMinus"></b>
				<h2>Jobs by Functional Area</h2>
				</div>
				<div class="ic showHide_rp">
				<div class="mt10px">
									<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-banking-investment-fid.htm" title="Banking / Investments / Stock Market / Financial Services Jobs">Banking / Investments / Stock Market / Financial Services</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-education-teaching-training-counselling-fid.htm" title="Education / Teaching / Training / Counselling / Academic Jobs">Education / Teaching / Training / Counselling / Academic</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-engineering-technical-rd-fid.htm" title="Engineering / Technical / R&D Jobs">Engineering / Technical / R&D</a> <b class="alpha50 bn small">(5)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-fresh-graduate-fid.htm" title="Fresher / Trainee Jobs">Fresher / Trainee</a> <b class="alpha50 bn small">(4)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-front-office-data-entry-fid.htm" title="Front Office / Executive Assistant / Data Entry Jobs">Front Office / Executive Assistant / Data Entry</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-hotel-travel-fid.htm" title="Hotel / Travel / Airlines Jobs">Hotel / Travel / Airlines</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-application-programming-fid.htm" title="IT Software - Application Programming / Maintenance Jobs">IT Software - Application Programming / Maintenance</a> <b class="alpha50 bn small">(20)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-web-designing-programming-fid.htm" title="IT Software - Others Jobs">IT Software - Others</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-call-center-medical-transcription-fid.htm" title="ITES / BPO / KPO / LPO / Customer Service / Operations Jobs">ITES / BPO / KPO / LPO / Customer Service / Operations</a> <b class="alpha50 bn small">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-manufacturing-production-fid.htm" title="Manufacturing / Production / Quality Jobs">Manufacturing / Production / Quality</a> <b class="alpha50 bn small">(6)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-sales-marketing-fid.htm" title="Sales/Marketing Jobs">Sales/Marketing</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px spanlist dn"><a class="dif" href="jobs-in-security-fid.htm" title="Security / Law Enforcement / Defence Force Jobs">Security / Law Enforcement / Defence Force</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
									
				</div>
				</div>
				</div>
				</div>
				
				</div>
				<!--MIDDLE ROW1 COL-1 ENDS-->
				
				<!--MIDDLE ROW1 ENDS--> 
				</div>
				<br><br>
				</div>
				</section>
				<script>
					window.addEventListener("DOMContentLoaded", function(){
						jQuery(document).on("click", ".showallspan", function(){
							if(jQuery(this).attr("data-target") === 'show'){
								jQuery(this).text("View Less");
								jQuery(this).attr("data-target", "hide");
								jQuery(this).closest("div").find(".spanlist").removeClass("dn");
							}else{
								jQuery(this).text("View More");
								jQuery(this).attr("data-target", "show");
								jQuery(this).closest("div").find(".spanlist").addClass("dn");
							}
						});
					});
				</script>
					<script>
	$.ajax({
	  url: "https://www.placementindia.com/job_posting_view.php",
	  type: "POST",
	  dataType: 'html',
	  data: {job_view_id: 'a0V5bHVnakdRNWZkSEdMRkF2dUZDZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:140:"Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney wallet Jobs in Delhi - Vacancy in IT Software - Application Programming / Maintenance";i:2;s:363:"Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney wallet Jobs,Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney wallet Jobs in Delhi,Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney wallet Vacancy in Delhi,Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney wallet jobs in India,IT Software - Application Programming / Maintenance jobs in Delhi";i:3;s:372:"Apply for Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney wallet Jobs in Delhi India - Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney wallet Vacancy  in IT Software - Application Programming / Maintenance field with 2 to 5 years Work Experience, Key Skills are Senior Project Manager, IT Software - Application Programming / Maintenance jobs in Delhi  India";i:4;s:2778:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Senior Project Manager,PayTm,PayUmoney,Jio,Airtelmoney wallet",
		  "baseSalary": " 5  Lac  To  7  Lac ",
		  "description": "We are looking for experienced Sr.Project manager who will be responsible for planning, organizing, managing and executing projects from beginning to end. The project scope can vary from single pieces of collateral to multifaceted, multichannel marketing campaigns. 
The person will be assign individuals or entire teams to tasks within the project, while creating and managing detailed schedules throughout the duration of the project.  
The person will play a central role in is risk analysis. They must be adept at identifying potential roadblocks related to budgets, resources and timelines, and reporting these potential issues to their management, when necessary.
We expect you to have excellent communication skills written and spoken. This role will be very dynamic, so the person should be versatile and adapt to any given situation. A ‘Can do’ attitude and a desire to learn and grow is essential.

 Roles & Responsibilities
•	Knowledge and understanding of how to manage and conceptualize a marketing campaign 
•	Coordinate internal and external resources and third parties/vendors for the flawless execution of projects
•	Developing project scopes and objectives, involving all relevant stakeholders 
•	Ensure resource availability and allocation
•	Ensure that all projects are delivered on-time
•	Manage the relationship with the client and all stakeholders
•	Create and maintain comprehensive project documentation

Skillset Required
•	Expert organizational skills
•	Strong ability to multi-task
•	Outstanding communication skills
•	Knowledge of project management processes, workflow and terminology
•	Ability to function well in a fast paced (sometimes chaotic) environment under tight deadlines

Commitment Required
•	Minimum 1-2 years commitment as we intend to grow rapidly so there will be enormous potential to grow and diversify within the company.

Company Provisions
•	Dynamic working environment with 6days working.
•	Company phone and laptop provided where required.",
		  "educationRequirements": "B.Tech/B.E, M.B.A/PGDM",
		  "experienceRequirements": "2 - 5 Years",
		  "industry": "IT Software - Application Programming / Maintenance",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Delhi/NCR",
		      "addressRegion": "Delhi, South Delhi"
		    }
		  },
		 "qualifications": "B.Tech/B.E, M.B.A/PGDM",
		     "skills": "Senior Project Manager"
		  }
		</script>
		";i:5;N;}