a:6:{i:0;s:8447:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Business Developer</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.hr4you.co.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.hr4you.co.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Business Developer</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> 0 - 2 Years</p>
				
									<p class="mb10px"><i class="fa fa-map-marker mr7px fl pl1px w15px alpha50"></i>Kochi</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="863342">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="863744"><input type="hidden" name="subject" value="Applied for Business Developer">
					</form>
					</div>
			
						
				
				<br>
				<div class="bdrT pt20px">
				<p class="xlarge b">Job Description</p>
				<p class="aj mt10px">contribute to the Development and Refinement of Company’s Vision and Strategy<br />
 Generating New Business and Efficiently Keeping in Regular Contact with Existing Prospects<br />
 Closing the Deals Financially in the Defined Time and According to the Contracts Made.<br />
 Give Business Presentation to Clients (brand Owners and other Advertising Agencies)<br />
 Understanding and Keeping Up-to-date with Constant Developments in the Communications Industry and Advertising Market<br />
 Identifying Areas for Expansion and Development<br />
 Maintain and Develop Organizational Culture, Values and Reputation in Its Markets and with all Staff, Clients and Partners & Associates.<br />
 Developing a Targeted Long-term New Business Strategy to also Encompass Regional and International Agencies / Brands and Foster Growth in These Key Areas for the Future<br />
 Create Weekly/monthly Forecasts On Revenue/target Management and End of Month Reports On Revenue and Market Performance<br />
 Delivering Against These Targets to Ensure Revenue Expectations are Met<br />
 Inputting Into Sales and Marketing Collateral – How the Business Positions Itself for Various Audiences.</p>
				
				<table class="w100 formTable bdr0 mt10px">				
											<tr>
							<td class="w22 alpha75 p5px">Salary</td>
							<td class="p5px"> 49 Thousand  9  Hundered  90 9 To  1  Lac  75 Thousand  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">0 - 2 Years</td>
				</tr>
									<tr>
					<td class="w22 alpha75 p5px">Qualification</td>
					<td class="p5px">Other Bachelor 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">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>
											</div>
									</div>
				
				
				<br>
				<div class="bdrT pt20px">
				<p class="xlarge b">Company Profile</p>
				<div class="mt10px">
				
				Connect2Job HR Consultancy Services proudly introduces itself as a reputed placement firm in Kerala. We are actively engaged in catering to various dynamic placement requirements of both job seekers and organizations by providing best-in-class placement services at the most affordable charges. The company was established in the year 2019. Our list of placement services includes HR consultancy services, domestic placement services,manpower recruitment services and career consultancy services.				
				<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="863342">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="863744"><input type="hidden" name="subject" value="Applied for Business Developer">
					</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-kochi.htm" title="Jobs in Kochi">Kochi</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-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-sonipat.htm" title="Jobs in Sonipat">Sonipat</a> <b class="alpha50 bn small">(1)</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-accounting-tax-fid.htm" title="Accounting / Auditing / Taxation Jobs">Accounting / Auditing / Taxation</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-financial-services-fid.htm" title="Finance / Stock Market Jobs">Finance / Stock Market</a> <b class="alpha50 bn small">(1)</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">(1)</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">(1)</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: 'WTJFNjVtWjdnRmZLVGNBVEFSMllZZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:61:"Business Developer Jobs in Kochi - Vacancy in Sales/Marketing";i:2;s:155:"Business Developer Jobs,Business Developer Jobs in Kochi,Business Developer Vacancy in Kochi,Business Developer jobs in India,Sales/Marketing jobs in Kochi";i:3;s:230:"Apply for Business Developer Jobs in Kochi India - Business Developer Vacancy  in Sales/Marketing field with 0 to 2 years Work Experience, Key Skills are Sales, Marketing, Business Development, Sales/Marketing jobs in Kochi  India";i:4;s:1829:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Business Developer",
		  "baseSalary": " 49 Thousand  9  Hundered  90 9 To  1  Lac  75 Thousand ",
		  "description": "contribute to the Development and Refinement of Company’s Vision and Strategy
 Generating New Business and Efficiently Keeping in Regular Contact with Existing Prospects
 Closing the Deals Financially in the Defined Time and According to the Contracts Made.
 Give Business Presentation to Clients (brand Owners and other Advertising Agencies)
 Understanding and Keeping Up-to-date with Constant Developments in the Communications Industry and Advertising Market
 Identifying Areas for Expansion and Development
 Maintain and Develop Organizational Culture, Values and Reputation in Its Markets and with all Staff, Clients and Partners & Associates.
 Developing a Targeted Long-term New Business Strategy to also Encompass Regional and International Agencies / Brands and Foster Growth in These Key Areas for the Future
 Create Weekly/monthly Forecasts On Revenue/target Management and End of Month Reports On Revenue and Market Performance
 Delivering Against These Targets to Ensure Revenue Expectations are Met
 Inputting Into Sales and Marketing Collateral – How the Business Positions Itself for Various Audiences.",
		  "educationRequirements": "Other Bachelor Degree",
		  "experienceRequirements": "0 - 2 Years",
		  "industry": "Sales/Marketing",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Kerala",
		      "addressRegion": "Kochi"
		    }
		  },
		 "qualifications": "Other Bachelor Degree",
		     "skills": "Sales, Marketing, Business Development"
		  }
		</script>
		";i:5;N;}