a:6:{i:0;s:8550:"				<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>Job openings for marketing executive in pune</h1></div>
					<p class="breadcrumb ar uu small"> <a href="http://www.suggestjobconsultingservices.com/">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="http://www.suggestjobconsultingservices.com/jobs-gallery.htm" title="Jobs Gallery">Jobs Gallery</a>  			
											
					<b class="ffv p2px">&rsaquo;</b> Job openings for marketing executive in pune</p>
									<div class="pt10px">
				<div class="xxxlarge fw6 dif">Marketing Executive</div>
									<p class="mt7px fw6">Pune</p>
									
				<br>
				<p class="aj mt7px">Here We are Announcing to Everyone About Our Project Quickarrange International Llp.<br />
quick Arrange is a Web Based Portal Bringing Together Private Individuals & Small Entrepreneurs to Buy & Sell Their Products and Services. the Portal Can Be Used By Both, Users & Consumers Creating Demand & Supply of Products & Services.<br />
users Can Sell or Purchase Their Products Through a Wide Range of Categories, also Creating Categories of Their Own. Users Will have Provision of Receiving Sms & E-mails Related to Consumers Requesting for Their Products. One of the Key Features of Our Portal is that We also Send Sms& Emails to the Consumer Database We Have, Creating An Awareness of Your Product or Service. City, Area & Region Specific Search Will Facilitate to Buy & Sell Products for Specific Locations. User Will have His Own Account Which Can Help Him View How Quick Arrange Has Profited Their Business Showing a Graph Structure. <br />
this Portal Will Ease One Click Business System to Save Time, Money & Human Efforts.                                     <br />
we are a One Step Portal that Can Help You Promote all Kinds of Products & Services.<br />
<br />
<br />
job Profile:<br />
•	create Awareness of and Develop the Brand You're Marketing<br />
•	communicate with Target Audiences and Build and Develop Customer Relationships<br />
•	help with Marketing Plans, Advertising, Direct Marketing and Campaigns<br />
•	support the Marketing Manager in Delivering Agreed Activities<br />
•	source Advertising Opportunities and Place Adverts in the Press or On the Radio<br />
•	work Closely with In-house or External Creative Agencies to Design Marketing Materials such as Brochures and Adverts<br />
•	write and Proofread Marketing Copy for Both Online and Print Campaigns<br />
•	produce Creative Content, Including Videos and Blog Posts<br />
•	run Social Media Channels (e.g. Twitter, Face Book and Linkedin) to Enhance Audience Engagement<br />
•	source and Secure Sponsorship<br />
•	new Franchise Lead Generation. <br />
•	branding.<br />
•	promotions.<br />
•	strategy.<br />
•	advertising.<br />
•	field Marketing</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">0 - 1 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 80 Thousand  To  2  Lac  50 Thousand  P.A.</td>
							</tr>				
											
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Marketing / Advertising / PR / Media Planning</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">Higher Secondary, Secondary School, Vocational Course, Other Bachelor Degree, MD/Medicinae Doctor</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Sales</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Marketing</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Business Development</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">Email ID</td>
						<td class="p5px"><a href="mailto:sjcrecruitment19@yahoo.com"> sjcrecruitment19@yahoo.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="677365">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="899058"><input type="hidden" name="subject" value="Applied for Marketing Executive">
					</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-pune.htm" title="Jobs in Pune">Pune</a> <b class="alpha50 bn small">(218)</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">(156)</span><a href="jobs-in-application-programming-fid.htm" title="IT Software - Application Programming / Maintenance Jobs">IT Software - Application Prog...</a></p>
										<p class="mb5px "><span class="fr">(52)</span><a href="jobs-in-advertisement-marketing-fid.htm" title="Marketing / Advertising / PR / Media Planning Jobs">Marketing / Advertising / PR /...</a></p>
										<p class="mb5px "><span class="fr">(3)</span><a href="jobs-in-system-programming-fid.htm" title="IT Software - System Programming Jobs">IT Software - System Programmi...</a></p>
										<p class="mb5px "><span class="fr">(2)</span><a href="jobs-in-web-designing-programming-fid.htm" title="IT Software - Others Jobs">IT Software - Others</a></p>
										<p class="mb5px "><span class="fr">(2)</span><a href="jobs-in-hr-recruitment-administration-ir-training-development-operations-fid.htm" title="HR / Recruitment / Administration / IR / Training & Development / Operations Jobs">HR / Recruitment / Administrat...</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-accounting-tax-fid.htm" title="Accounting / Auditing / Taxation Jobs">Accounting / Auditing / Taxati...</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-fresh-graduate-fid.htm" title="Fresher / Trainee Jobs">Fresher / Trainee</a></p>
										<p class="mb5px "><span class="fr">(1)</span><a href="jobs-in-dba-database-management-fid.htm" title="IT Software - DataBase / Datawarehousing Jobs">IT Software - DataBase / Dataw...</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: 'UDBWTkFMS2VsZklsMzAwVDcxdHNQZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:78:"Job openings for marketing executive in pune | Suggest Job Consulting Services";i:2;s:186:"Marketing Executive Jobs,Marketing Executive Jobs in Pune,Marketing Executive Vacancy in Pune,Marketing Executive jobs in India,Marketing / Advertising / PR / Media Planning jobs in Pune";i:3;s:290:"Apply for Marketing Executive Jobs in Pune India - Marketing Executive Vacancy  in Marketing / Advertising / PR / Media Planning field with 0 to 1 years Work Experience, Key Skills are Sales, Marketing, Business Development, Marketing / Advertising / PR / Media Planning jobs in Pune  India";i:4;s:3386:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Marketing Executive",
		  "identifier": {
	        "@type": "PropertyValue",
	        "name": "",
	        "value":  "899058"
	      },
		  "hiringOrganization": {
	      "@type" : "Organization",
	      "name" : "",
	      "description": "",
	      "telephone" : "0",
	      "email" : "sjcrecruitment19@yahoo.com"  
	       },
		  "url": "http://www.suggestjobconsultingservices.com/job-openings-for-marketing-executive-pune-899058.htm",
          "datePosted": "2020-02-13",
          
		  "baseSalary": " 80 Thousand  To  2  Lac  50 Thousand ",
		  "description": "Here We are Announcing to Everyone About Our Project Quickarrange International Llp.
quick Arrange is a Web Based Portal Bringing Together Private Individuals & Small Entrepreneurs to Buy & Sell Their Products and Services. the Portal Can Be Used By Both, Users & Consumers Creating Demand & Supply of Products & Services.
users Can Sell or Purchase Their Products Through a Wide Range of Categories, also Creating Categories of Their Own. Users Will have Provision of Receiving Sms & E-mails Related to Consumers Requesting for Their Products. One of the Key Features of Our Portal is that We also Send Sms& Emails to the Consumer Database We Have, Creating An Awareness of Your Product or Service. City, Area & Region Specific Search Will Facilitate to Buy & Sell Products for Specific Locations. User Will have His Own Account Which Can Help Him View How Quick Arrange Has Profited Their Business Showing a Graph Structure. 
this Portal Will Ease One Click Business System to Save Time, Money & Human Efforts.                                     
we are a One Step Portal that Can Help You Promote all Kinds of Products & Services.


job Profile:
•	create Awareness of and Develop the Brand You're Marketing
•	communicate with Target Audiences and Build and Develop Customer Relationships
•	help with Marketing Plans, Advertising, Direct Marketing and Campaigns
•	support the Marketing Manager in Delivering Agreed Activities
•	source Advertising Opportunities and Place Adverts in the Press or On the Radio
•	work Closely with In-house or External Creative Agencies to Design Marketing Materials such as Brochures and Adverts
•	write and Proofread Marketing Copy for Both Online and Print Campaigns
•	produce Creative Content, Including Videos and Blog Posts
•	run Social Media Channels (e.g. Twitter, Face Book and Linkedin) to Enhance Audience Engagement
•	source and Secure Sponsorship
•	new Franchise Lead Generation. 
•	branding.
•	promotions.
•	strategy.
•	advertising.
•	field Marketing",
		  "educationRequirements": "Higher Secondary, Secondary School, Vocational Course, Other Bachelor Degree, MD/Medicinae Doctor",
		  "experienceRequirements": "0 - 1 Years",
		  "industry": "Marketing / Advertising / PR / Media Planning",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Maharashtra",
		      "addressRegion": "Pune"
		    }
		  },
		 "qualifications": "Higher Secondary, Secondary School, Vocational Course, Other Bachelor Degree, MD/Medicinae Doctor",
		     "skills": "Sales, Marketing, Business Development"
		  }
		</script>
		";i:5;N;}