a:6:{i:0;s:8232:"				<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="h1"><h1>Engineer Assistant- Techno Commercial Sales-pressure Vessel Division</h1></div>
					<p class="breadcrumb ar uu small"> <a href="http://www.talentleads.in/">Home</a>
					
										
					<b class="ffv p2px">&rsaquo;</b> Engineer Assistant- Techno Commercial Sales-pressure Vessel Division</p>
									<p class="mb5px"><i class="fa fa-briefcase mr7px fl w15px alpha50"></i> 1 Years</p>
				
									<p class="mb10px"><i class="fa fa-map-marker mr7px fl pl1px w15px alpha50"></i>Yamunanagar</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="333396">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="855733"><input type="hidden" name="subject" value="Applied for Engineer Assistant- Techno Commercial Sales-pressure Vessel Division">
					</form>
					</div>
			
						
				
				<br>
				<div class="bdrT pt20px">
				<p class="xlarge b">Job Description</p>
				<p class="aj mt10px">Requirement Details<br />
job Title/designation:<br />
engg Asst- techno Commercial Sales-pressure Vessel Division,Yamuna Nagar<br />
job Description:<br />
to Strengthen the Marketing Activities in Pvd Division. <br />
knowledge of Sales Marketing or Estimation of Offer Price, Knowledge of Materials, Knowledge of Standards & Reference of Good Customer<br />
a. Generation of Inquiries<br />
b. Design the Equipment Required for Preparation of Offer.<br />
c. Cost Estimation.<br />
d. Making of Proposal.<br />
e. to Discuss Techno Commercial Terms with Client.<br />
f. to Win the Order.<br />
g. Should have Sales Temperament/ Visit to Yamuna Nagar Along with Client as and When Required.<br />
<br />
<br />
<br />
 <br />
<br />
candidate Profile:<br />
<br />
must Be Graduate Chemical Engineer ( May Be Mechanical Engineer )<br />
should have About 1-3yrs Experience.<br />
should have Working Experience in Similar Line.<br />
<br />
must Be Working in Un Organised/ Un Professional Company.<br />
<br />
 <br />
<br />
experience: 1 to 6 Years<br />
<br />
annual Ctc: Rupees 4,00,000</p>
				
				<table class="w100 formTable bdr0 mt10px">				
											<tr>
							<td class="w22 alpha75 p5px">Salary</td>
							<td class="p5px"> 4  Lac  To  4  Lac  25 Thousand  P.A.</td>
							</tr>				
											
					<tr>
					<td class="w22 alpha75 p5px">Industry</td>
					<td class="p5px">Engineering / Technical / R&D</td>
					</tr>
									<tr>
				<td class="w22 alpha75 p5px">Work Experience</td>
				<td class="p5px">1 Years</td>
				</tr>
									<tr>
					<td class="w22 alpha75 p5px">Qualification</td>
					<td class="p5px">B.Tech/B.E</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">chemical engineering</span>
												<span class="bn dib p5px10px c2px headVr mr7px mb7px"> Generation</span>
												<span class="bn dib p5px10px c2px headVr mr7px mb7px"> Cost estimation.</span>
											</div>
									</div>
				
				
				<br>
				<div class="bdrT pt20px">
				<p class="xlarge b">Company Profile</p>
				<div class="mt10px">
				
									<table class="w100 formTable bdr0 mt5px">
											<tr>
						<td class="w22 alpha75 p5px vat">Company Name</td>
						<td class="p5px vat"><p class="dif b">Client of Talent Leads HR Solutions Pvt Ltd</p></td>
						</tr>
												<tr>
						<td class="w22 alpha75 p5px vat">About Company</td>
						<td class="p5px vat">Recruitment &amp; Executive Search specialist</td>
						</tr>
												<tr>
						<td class="w22 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:shailendra.saini@talentleads.co.in"> shailendra.saini@talentleads.co.in </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="333396">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="855733"><input type="hidden" name="subject" value="Applied for Engineer Assistant- Techno Commercial Sales-pressure Vessel Division">
					</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-bhopal.htm" title="Jobs in Bhopal">Bhopal</a> <b class="alpha50 bn small">(2)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-yamunanagar.htm" title="Jobs in Yamunanagar">Yamunanagar</a> <b class="alpha50 bn small">(3)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-noida.htm" title="Jobs in Noida">Noida</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">(1)</b></span>
										<span class="dib p5px10px c2px headVr mr7px mb7px "><a class="dif" href="jobs-in-engineering-technical-rd-fid.htm" title="Engineering / Technical / R&D Jobs">Engineering / Technical / R&D</a> <b class="alpha50 bn small">(2)</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: 'WitpdUFHMlhFdlNmUnkrTWJoS3RKUT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:131:"Engineer Assistant- Techno Commercial Sales-pressure Vessel Division Jobs in Yamunanagar - Vacancy in Engineering / Technical / R&D";i:2;s:387:"Engineer Assistant- Techno Commercial Sales-pressure Vessel Division Jobs,Engineer Assistant- Techno Commercial Sales-pressure Vessel Division Jobs in Yamunanagar,Engineer Assistant- Techno Commercial Sales-pressure Vessel Division Vacancy in Yamunanagar,Engineer Assistant- Techno Commercial Sales-pressure Vessel Division jobs in India,Engineering / Technical / R&D jobs in Yamunanagar";i:3;s:377:"Apply for Engineer Assistant- Techno Commercial Sales-pressure Vessel Division Jobs in Yamunanagar India - Engineer Assistant- Techno Commercial Sales-pressure Vessel Division Vacancy  in Engineering / Technical / R&D field with 1 years Work Experience, Key Skills are chemical engineering, Generation, Cost estimation., Engineering / Technical / R&D jobs in Yamunanagar  India";i:4;s:1656:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Engineer Assistant- Techno Commercial Sales-pressure Vessel Division",
		  "baseSalary": " 4  Lac  To  4  Lac  25 Thousand ",
		  "description": "Requirement Details
job Title/designation:
engg Asst- techno Commercial Sales-pressure Vessel Division,Yamuna Nagar
job Description:
to Strengthen the Marketing Activities in Pvd Division. 
knowledge of Sales Marketing or Estimation of Offer Price, Knowledge of Materials, Knowledge of Standards & Reference of Good Customer
a. Generation of Inquiries
b. Design the Equipment Required for Preparation of Offer.
c. Cost Estimation.
d. Making of Proposal.
e. to Discuss Techno Commercial Terms with Client.
f. to Win the Order.
g. Should have Sales Temperament/ Visit to Yamuna Nagar Along with Client as and When Required.



 

candidate Profile:

must Be Graduate Chemical Engineer ( May Be Mechanical Engineer )
should have About 1-3yrs Experience.
should have Working Experience in Similar Line.

must Be Working in Un Organised/ Un Professional Company.

 

experience: 1 to 6 Years

annual Ctc: Rupees 4,00,000",
		  "educationRequirements": "B.Tech/B.E",
		  "experienceRequirements": "1 Years",
		  "industry": "Engineering / Technical / R&D",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Haryana",
		      "addressRegion": "Yamunanagar"
		    }
		  },
		 "qualifications": "B.Tech/B.E",
		     "skills": "chemical engineering, Generation, Cost estimation."
		  }
		</script>
		";i:5;N;}