a:6:{i:0;s:6871:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for relationship manager in bangalore</h1></div>
					<p class="breadcrumb ar uu small"><a href="http://www.mkconsultancyservices.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.mkconsultancyservices.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for relationship manager in bangalore</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-->
				
								<div class="pt10px">
				<div class="xxxlarge fw6 dif">Relationship Manager</div>
									<p class="mt7px fw6">Bangalore</p>
									
				<br>
				<p class="aj mt7px">1)Experienced candidates with sound knowledge regarding Sales and B2C Sales. 2)Candidate should not be in Realestate or construction industry<br />
3)Candidate should be in the industry of Insurance, Financial/ Banking sector<br />
4 Only Male Candidates can apply.<br />
<br />
Responsibilities:<br />
•	Responsible for generating sales with project-specific inquiries.<br />
•	Schedule and conduct site visits and regular follow up with the clients until closure.<br />
•	Coordinate between clients and companies for up to date status regarding services, pricing, and new product releases.<br />
•	Report on sales activities through scheduled reporting structure.<br />
•	Reaching the targets and set goals, establishing, maintaining and expanding the client base.<br />
•	To build and enhance the company's brand image internally and externally.<br />
•	Exposure to the marketing industry will be an added advantage<br />
•	Tuesday will week off<br />
•	Two-wheeler is mandatory<br />
•	Fieldwork will be there<br />
•	9:30-6:30 PM shift timing <br />
•	Apart from salary huge incentive will be there<br />
•	Candidate should be ready for fieldwork<br />
•	Should have a positive attitude, flexibility towards work</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">0 - 2 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 2  Lac  50 Thousand  To  3  Lac  50 Thousand  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Real Estate / Construction</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">Other Bachelor Degree</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Relationship Manager</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Relationship Management</span>
											</td>
					</tr>
									
				</table>
				</div>
				<br>
				<div class="pt20px">
				<p class="large fw6">About Company</p>
				<div class="mt10px">
				
									<table class="w100 formTable bdr0 mt5px">
											<tr>
						<td class="w195 alpha75 p5px">Contact Person</td>
						<td class="p5px">MD Irfan Momin</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">A-13, Sharifabad Complex, jivrajpark, Vejalpur</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">9879289484 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:mkconsultancyinfo@gmail.com"> mkconsultancyinfo@gmail.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="759201">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="906709"><input type="hidden" name="subject" value="Applied for 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="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Location</h2>
				</div>
				<div class="ic">
				<div class="mt10px">
									<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-bangalore.htm" title="Jobs in Bangalore">Bangalore</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="large fw6 alpha75 p12px bdrB">
				<h2>Jobs by Functional Area</h2>
				</div>
				<div style="padding:10px 18px;" class="ic">
									<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-property-construction-fid.htm" title="Real Estate / Construction Jobs">Real Estate / Construction</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-it-analyst-software-testing-fid.htm" title="IT Software - QA / Testing / Documentation Jobs">IT Software - QA / Testing / D...</a></p>
									
				</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: 'N01mWk1ueUlCanRVU2ZBakVYa1p4Zz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:76:"Job openings for relationship manager in bangalore | MK Consultancy Services";i:2;s:186:"Relationship Manager Jobs,Relationship Manager Jobs in Bangalore,Relationship Manager Vacancy in Bangalore,Relationship Manager jobs in India,Real Estate / Construction jobs in Bangalore";i:3;s:271:"Apply for Relationship Manager Jobs in Bangalore India - Relationship Manager Vacancy  in Real Estate / Construction field with 0 to 2 years Work Experience, Key Skills are Relationship Manager, Relationship Management, Real Estate / Construction jobs in Bangalore  India";i:4;s:1861:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Relationship Manager",
		  "baseSalary": " 2  Lac  50 Thousand  To  3  Lac  50 Thousand ",
		  "description": "1)Experienced candidates with sound knowledge regarding Sales and B2C Sales. 2)Candidate should not be in Realestate or construction industry
3)Candidate should be in the industry of Insurance, Financial/ Banking sector
4 Only Male Candidates can apply.

Responsibilities:
•	Responsible for generating sales with project-specific inquiries.
•	Schedule and conduct site visits and regular follow up with the clients until closure.
•	Coordinate between clients and companies for up to date status regarding services, pricing, and new product releases.
•	Report on sales activities through scheduled reporting structure.
•	Reaching the targets and set goals, establishing, maintaining and expanding the client base.
•	To build and enhance the company's brand image internally and externally.
•	Exposure to the marketing industry will be an added advantage
•	Tuesday will week off
•	Two-wheeler is mandatory
•	Fieldwork will be there
•	9:30-6:30 PM shift timing 
•	Apart from salary huge incentive will be there
•	Candidate should be ready for fieldwork
•	Should have a positive attitude, flexibility towards work",
		  "educationRequirements": "Other Bachelor Degree",
		  "experienceRequirements": "0 - 2 Years",
		  "industry": "Real Estate / Construction",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Karnataka",
		      "addressRegion": "Bangalore"
		    }
		  },
		 "qualifications": "Other Bachelor Degree",
		     "skills": "Relationship Manager, Relationship Management"
		  }
		</script>
		";i:5;N;}