a:6:{i:0;s:8588:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for account executive in surat</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.jenishfood.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.jenishfood.com/current-openings.htm" title="Current Openings">Current Openings</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for account executive in surat</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-->
				
								<div class="pt10px">
				<div class="xxxlarge fw6 dif">Account Executive - Kim Office</div>
									<p class="mt7px fw6">Surat</p>
									
				<br>
				<p class="aj mt7px">Job Description <br />
<br />
- Verify, allocate, post and reconcile accounts payable and receivable<br />
- Produce error-free accounting reports and present their results<br />
- Analyze financial information and summarize financial status<br />
- Spot errors and suggest ways to improve efficiency and spending<br />
- Provide technical support and advice on Management accountant<br />
- Follow Terms of the employment, should be known about Taxation, Reporting, Collection Follow up <br />
   From sales team or others<br />
- Review and recommend modifications to accounting systems and procedures<br />
- Manage accounting assistants and book keepers<br />
- Prepare financial statements and produce budget according to schedule<br />
- Assist with tax audits and tax returns<br />
- Direct internal and external audits to ensure compliance<br />
- Plan, assign and review staff’s work<br />
- Support month-end and year-end close process<br />
- Develop and document business processes and accounting policies to maintain and strengthen internal <br />
   Controls<br />
- Liaise with our financial manager and Accounting manager to improve financial procedures<br />
- Prepare, examine, or analyses accounting records, financial statements, or other financial reports to   <br />
   Assess accuracy, completeness, and conformance to reporting and procedural standards<br />
- Report to management regarding the finances of establishment<br />
- Establish tables of accounts and assign entries to proper accounts<br />
- Develop, implement, modify, and document recordkeeping and accounting systems, making use of <br />
   Current technology<br />
- Compute taxes owed and prepare tax returns, ensuring compliance with payment, reporting or other tax <br />
   Requirements<br />
- To manage all Rules Of employment without any mistake<br />
- Follow Dress code, Badge or ID proof while working hours<br />
- Develop, implement, modify, and document recordkeeping and accounting systems, making use of <br />
   Current technology<br />
- Compute taxes owed and prepare tax returns, ensuring compliance with payment, reporting or other tax <br />
   Requirements</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">1 - 5 Years</td>
				</tr>			
									<tr>
					<td class="alpha75 p5px">Salary</td>
					<td class="p5px">Not Disclosed</td>
					</tr>
									
					<tr>
					<td class="alpha75 p5px">Industry</td>
					<td class="p5px">Accounting / Auditing / Taxation</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">Professional Degree, Other Bachelor Degree, B.Com, MD/Medicinae Doctor, Post Graduate Diploma, M.Com</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">Tally</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Accounting</span>
												<span class="bdr dib p2px10px mr5px mt2px">  Account Management</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Finance</span>
											</td>
					</tr>
									
				</table>
				</div>
				<br>
				<div class="pt20px">
				<p class="large fw6">About Company</p>
				<div class="mt10px">
				
				Jenish Incorporation is a reliable manufacturer, supplier, and exporter of food products. The company was founded in Surat (Gujarat) back in the year 1994. We are known as a manufacturer, supplier, and exporter of jaljira powder, taste plus powder, pachak amla and many more. The company’s core values are the provision of excellent quality food items by satisfying all customers. Moreover, we also believe in upholding the commitment and improve the production method. We are visionary and aim at the various things 20 years from now and it includes annual growth by 50%. Furthermore, we also see ourselves as a global instigator in this industry with 50 branch offices in 7 Asian countries, manufacturing/supplying/exporting 150+ products, teams of 3000 deft professionals, annual turnover of 1,414 crores, and one toll-free number in every country.				
				<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="889733">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="898854"><input type="hidden" name="subject" value="Applied for Account Executive - Kim office">
					</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-surat.htm" title="Jobs in Surat">Surat</a> <b class="alpha50 bn small">(8)</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">(5)</span><a href="jobs-in-sales-marketing-business-development-telecaller-fid.htm" title="Sales & Marketing / Business Development/telecaller Jobs">Sales & Marketing / Business D...</a></p>
										<p class="mb5px "><span class="fr">(1)</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">(1)</span><a href="jobs-in-front-office-reception-computer-operator-assistant-fid.htm" title="Front Office / Reception/Computer Operator/Assistant Jobs">Front Office / Reception/Compu...</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: 'LzdPS3kzQSt2UmlmMWR3TkxEUlhhQT09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:66:"Job openings for account executive in surat | Jenish Incorporation";i:2;s:220:"Account Executive - Kim office Jobs,Account Executive - Kim office Jobs in Surat,Account Executive - Kim office Vacancy in Surat,Account Executive - Kim office jobs in India,Accounting / Auditing / Taxation jobs in Surat";i:3;s:297:"Apply for Account Executive - Kim office Jobs in Surat India - Account Executive - Kim office Vacancy  in Accounting / Auditing / Taxation field with 1 to 5 years Work Experience, Key Skills are Tally, Accounting,  Account Management, Finance, Accounting / Auditing / Taxation jobs in Surat  India";i:4;s:2829:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Account Executive - Kim office",
		  "baseSalary": "",
		  "description": "Job Description 

- Verify, allocate, post and reconcile accounts payable and receivable
- Produce error-free accounting reports and present their results
- Analyze financial information and summarize financial status
- Spot errors and suggest ways to improve efficiency and spending
- Provide technical support and advice on Management accountant
- Follow Terms of the employment, should be known about Taxation, Reporting, Collection Follow up 
   From sales team or others
- Review and recommend modifications to accounting systems and procedures
- Manage accounting assistants and book keepers
- Prepare financial statements and produce budget according to schedule
- Assist with tax audits and tax returns
- Direct internal and external audits to ensure compliance
- Plan, assign and review staff’s work
- Support month-end and year-end close process
- Develop and document business processes and accounting policies to maintain and strengthen internal 
   Controls
- Liaise with our financial manager and Accounting manager to improve financial procedures
- Prepare, examine, or analyses accounting records, financial statements, or other financial reports to   
   Assess accuracy, completeness, and conformance to reporting and procedural standards
- Report to management regarding the finances of establishment
- Establish tables of accounts and assign entries to proper accounts
- Develop, implement, modify, and document recordkeeping and accounting systems, making use of 
   Current technology
- Compute taxes owed and prepare tax returns, ensuring compliance with payment, reporting or other tax 
   Requirements
- To manage all Rules Of employment without any mistake
- Follow Dress code, Badge or ID proof while working hours
- Develop, implement, modify, and document recordkeeping and accounting systems, making use of 
   Current technology
- Compute taxes owed and prepare tax returns, ensuring compliance with payment, reporting or other tax 
   Requirements",
		  "educationRequirements": "Professional Degree, Other Bachelor Degree, B.Com, MD/Medicinae Doctor, Post Graduate Diploma, M.Com",
		  "experienceRequirements": "1 - 5 Years",
		  "industry": "Accounting / Auditing / Taxation",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Gujarat",
		      "addressRegion": "Surat"
		    }
		  },
		 "qualifications": "Professional Degree, Other Bachelor Degree, B.Com, MD/Medicinae Doctor, Post Graduate Diploma, M.Com",
		     "skills": "Tally, Accounting,  Account Management, Finance"
		  }
		</script>
		";i:5;N;}