a:6:{i:0;s:8455:"				<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 direct 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 direct marketing executive in pune</p>
									<div class="pt10px">
				<div class="xxxlarge fw6 dif">Direct Marketing Executive</div>
									<p class="mt7px fw6">Pune</p>
									
				<br>
				<p class="aj mt7px">Hi,<br />
greetings from Aditya Technology,<br />
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 />
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 A</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"> 1  Lac  To  2  Lac  75 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, Diploma, 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">Direct Marketing</span>
												<span class="bdr dib p2px10px mr5px mt2px">Sales </span>
												<span class="bdr dib p2px10px mr5px mt2px"> Marketing Officer</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="897690"><input type="hidden" name="subject" value="Applied for Direct 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-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>
										<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>
									
				</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: 'c1F3ZFhIVWVwTmE2R3hPMVlHVThvUT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:85:"Job openings for direct marketing executive in pune | Suggest Job Consulting Services";i:2;s:214:"Direct Marketing Executive Jobs,Direct Marketing Executive Jobs in Pune,Direct Marketing Executive Vacancy in Pune,Direct Marketing Executive jobs in India,Marketing / Advertising / PR / Media Planning jobs in Pune";i:3;s:314:"Apply for Direct Marketing Executive Jobs in Pune India - Direct Marketing Executive Vacancy  in Marketing / Advertising / PR / Media Planning field with 0 to 1 years Work Experience, Key Skills are sales,Direct Marketing,Sales , Marketing Officer, Marketing / Advertising / PR / Media Planning jobs in Pune  India";i:4;s:2777:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Direct Marketing Executive",
		  "baseSalary": " 1  Lac  To  2  Lac  75 Thousand ",
		  "description": "Hi,
greetings from Aditya Technology,
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 A",
		  "educationRequirements": "Higher Secondary, Secondary School, Vocational Course, Diploma, 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, Diploma, Other Bachelor Degree, MD/Medicinae Doctor",
		     "skills": "sales,Direct Marketing,Sales , Marketing Officer"
		  }
		</script>
		";i:5;N;}