a:6:{i:0;s:10682:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>PNB Metlife - Relationship Manager</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.namanjobplacement.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.namanjobplacement.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> PNB Metlife - Relationship Manager</p>
					</div>
					</div>
					</section>
									<section id="middle">
				<div class="wrap" id="bodyFormatNT">
				<div class="row1 dt columns23"><!--MIDDLE ROW1 STARTS-->
				<div class="col-2 wideColumn ip ls detail_pm_15"><!--MIDDLE ROW1 COL-2 STARTS-->
				
								<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>Bangalore</p>
										
					<div>
					<form name="frmvacdetail" method="post" action="enquiry-form-10009.htm">
					<input style="padding:7px 15px;" class="button b ffos" type="submit" value="APPLY NOW !" />
					<input type="hidden" name="catalog_mi" value="815084">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="862558"><input type="hidden" name="subject" value="Applied for PNB Metlife - Relationship Manager">
					</form>
					</div>
			
						
				
				<br>
				<div class="bdrT pt20px">
				<p class="xlarge b">Job Description</p>
				<p class="aj mt10px">Description:<br />
<br />
reporting To: Territory Manager<br />
department: Bancassurance.<br />
<br />
key Accountabilities<br />
<br />
    Timely Attend to the Service Appointments Given.<br />
    Update Status of Appointments Accurately and Timely in the System.<br />
    Work with the Customer in the Long Term as Their Relationship Manager.<br />
    Support Sp in Performing Need Analysis and Conversion of Sales.<br />
    Delivering Consistently On Goal Sheet Parameters.<br />
    Adhering to Pnb Metlife Policies and Providing Need-based Selling Support.<br />
    Acting as a Team Player and Reporting the Number of Applications Logged in for the Business Every Day to the Reporting Manager Without Fail.<br />
    Ensure High Level of Persistency & Customer Service to the Customers.​<br />
<br />
measures of Performance:<br />
<br />
    Weighted Adjusted New Business Premium.<br />
    Nop.<br />
    Timely Updating the Appointments and Qna in the System.<br />
    Timely Login of Proposals and Follow Up for Issuance.<br />
    Ensure Healthy Persistency.<br />
<br />
job Summary: Provide Support in Service and Sales of Life Insurance Business Through Leads Provided By Call Center and Convert Them.<br />
<br />
relationship:<br />
<br />
    Internal Business Relationship: Training, Hr, Key Stake Holders, Mis & Operations.<br />
    External Business Relationship: Channel Partner   -  Bm’s of Assigned Branches & Sps.<br />
<br />
required Qualification & Experience:<br />
<br />
    Graduation/ Post Graduation Degree/professional Degree.<br />
    Preferred Experience: 2-5 Years.<br />
    Fresher with Good Communication and Insurance Industry Knowledge is also Preferred.<br />
<br />
knowledge & Skills Required:</p>
				
				<table class="w100 formTable bdr0 mt10px">				
											<tr>
							<td class="w22 alpha75 p5px">Salary</td>
							<td class="p5px"> 2  Lac  25 Thousand  To  4  Lac  P.A.</td>
							</tr>				
											
					<tr>
					<td class="w22 alpha75 p5px">Industry</td>
					<td class="p5px">Sales/Marketing</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">Professional Degree</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">Insurance sales</span>
												<span class="bn dib p5px10px c2px headVr mr7px mb7px"> sales</span>
												<span class="bn dib p5px10px c2px headVr mr7px mb7px"> marketing</span>
												<span class="bn dib p5px10px c2px headVr mr7px mb7px"> business development </span>
												<span class="bn dib p5px10px c2px headVr mr7px mb7px"> Relationship Management</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">PNB METLIFE</p></td>
						</tr>
												<tr>
						<td class="w22 alpha75 p5px vat">About Company</td>
						<td class="p5px vat">PNB METLIFE</td>
						</tr>
												<tr>
						<td class="w22 alpha75 p5px">Contact Person</td>
						<td class="p5px">VIKRAM BAMNERA</td>
						</tr>					
												<tr>
						<td class="w22 alpha75 p5px">Address</td>
						<td class="p5px">1-23-146/2, Tirumala City Colony ,Alwal,Secunderabad-500015</td>
						</tr>					
												<tr>
						<td class="w22 alpha75 p5px">Mobile </td>
						<td class="p5px">7013224962 </td>
						</tr>
												<tr>
						<td class="w22 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:bamnera33@rediffmail.com"> bamnera33@rediffmail.com </a></td>
						</tr>
										
					</table>
									
				<br />
				
									
					<div class="bdrT pt20px">
					<form name="frmvacdetail" method="post" action="enquiry-form-10009.htm">
					<input style="padding:7px 15px;" class="button b ffos" type="submit" value="APPLY NOW !" />
					<input type="hidden" name="catalog_mi" value="815084">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="862558"><input type="hidden" name="subject" value="Applied for PNB Metlife - Relationship Manager">
					</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-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-kolkata.htm" title="Jobs in Kolkata">Kolkata</a> <b class="alpha50 bn small">(2)</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 "><a class="dif" href="jobs-in-bangalore.htm" title="Jobs in Bangalore">Bangalore</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-bhopal.htm" title="Jobs in Bhopal">Bhopal</a> <b class="alpha50 bn small">(1)</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">(2)</b></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-education-teaching-training-counselling-fid.htm" title="Education / Teaching / Training / Counselling / Academic Jobs">Education / Teaching / Training / Counselling / Academic</a> <b class="alpha50 bn small">(1)</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">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-human-resources-fid.htm" title="HR / Recruitment / Administration / IR Jobs">HR / Recruitment / Administration / IR</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-insurance-loan-credit-fid.htm" title="Insurance / Loan / Credit Management Jobs">Insurance / Loan / Credit Management</a> <b class="alpha50 bn small">(1)</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">(3)</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">(3)</b></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: 'bEQ1T3pUTG56Z1VacXlQM1o1aHp3Zz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:81:"PNB Metlife - Relationship Manager Jobs in Bangalore - Vacancy in Sales/Marketing";i:2;s:231:"PNB Metlife - Relationship Manager Jobs,PNB Metlife - Relationship Manager Jobs in Bangalore,PNB Metlife - Relationship Manager Vacancy in Bangalore,PNB Metlife - Relationship Manager jobs in India,Sales/Marketing jobs in Bangalore";i:3;s:313:"Apply for PNB Metlife - Relationship Manager Jobs in Bangalore India - PNB Metlife - Relationship Manager Vacancy  in Sales/Marketing field with 2 to 5 years Work Experience, Key Skills are Insurance sales, sales, marketing, business development , Relationship Management, Sales/Marketing jobs in Bangalore  India";i:4;s:2276:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "PNB Metlife - Relationship Manager",
		  "baseSalary": " 2  Lac  25 Thousand  To  4  Lac ",
		  "description": "Description:

reporting To: Territory Manager
department: Bancassurance.

key Accountabilities

    Timely Attend to the Service Appointments Given.
    Update Status of Appointments Accurately and Timely in the System.
    Work with the Customer in the Long Term as Their Relationship Manager.
    Support Sp in Performing Need Analysis and Conversion of Sales.
    Delivering Consistently On Goal Sheet Parameters.
    Adhering to Pnb Metlife Policies and Providing Need-based Selling Support.
    Acting as a Team Player and Reporting the Number of Applications Logged in for the Business Every Day to the Reporting Manager Without Fail.
    Ensure High Level of Persistency & Customer Service to the Customers.​

measures of Performance:

    Weighted Adjusted New Business Premium.
    Nop.
    Timely Updating the Appointments and Qna in the System.
    Timely Login of Proposals and Follow Up for Issuance.
    Ensure Healthy Persistency.

job Summary: Provide Support in Service and Sales of Life Insurance Business Through Leads Provided By Call Center and Convert Them.

relationship:

    Internal Business Relationship: Training, Hr, Key Stake Holders, Mis & Operations.
    External Business Relationship: Channel Partner   -  Bm’s of Assigned Branches & Sps.

required Qualification & Experience:

    Graduation/ Post Graduation Degree/professional Degree.
    Preferred Experience: 2-5 Years.
    Fresher with Good Communication and Insurance Industry Knowledge is also Preferred.

knowledge & Skills Required:",
		  "educationRequirements": "Professional Degree",
		  "experienceRequirements": "2 - 5 Years",
		  "industry": "Sales/Marketing",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Karnataka",
		      "addressRegion": "Bangalore"
		    }
		  },
		 "qualifications": "Professional Degree",
		     "skills": "Insurance sales, sales, marketing, business development , Relationship Management"
		  }
		</script>
		";i:5;N;}