a:6:{i:0;s:8359:"				<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 field 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 field executive in pune</p>
									<div class="pt10px">
				<div class="xxxlarge fw6 dif">Field Executive</div>
									<p class="mt7px fw6">Pune</p>
									
				<br>
				<p class="aj mt7px">Hi,<br />
greetings from Aditya Technology.<br />
<br />
here We are Announcing to Everyone About Our Project Quickarrange International Llp.<br />
<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 .<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"> 1  Lac  25 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, Diploma, Other Bachelor Degree</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Field Marketing</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Field Coordination</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="898132"><input type="hidden" name="subject" value="Applied for Field 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-human-resources-fid.htm" title="HR / Recruitment / Administration / IR Jobs">HR / Recruitment / Administrat...</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">(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: 'TGxVY3ovWVB0aVhuaGt3bm1mUEdEUT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:74:"Job openings for field executive in pune | Suggest Job Consulting Services";i:2;s:170:"Field Executive Jobs,Field Executive Jobs in Pune,Field Executive Vacancy in Pune,Field Executive jobs in India,Marketing / Advertising / PR / Media Planning jobs in Pune";i:3;s:279:"Apply for Field Executive Jobs in Pune India - Field Executive Vacancy  in Marketing / Advertising / PR / Media Planning field with 0 to 1 years Work Experience, Key Skills are Field Marketing, Field Coordination, Marketing / Advertising / PR / Media Planning jobs in Pune  India";i:4;s:2852:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Field Executive",
		  "baseSalary": " 1  Lac  25 Thousand  To  2  Lac  50 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 .
•	source and Secure Sponsorship
•	new Franchise Lead Generation. 
•	branding.
•	promotions.
•	strategy.
•	advertising.
•	field Marketing",
		  "educationRequirements": "Higher Secondary, Secondary School, Vocational Course, Diploma, Other Bachelor Degree",
		  "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",
		     "skills": "Field Marketing, Field Coordination"
		  }
		</script>
		";i:5;N;}