a:6:{i:0;s:8534:"					<section class="headBg theme2 ">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for accountant in usa</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.exelonconsulting.com/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.exelonconsulting.com/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for accountant in usa</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">External Audit</div>
									<p class="mt7px fw6">Pune</p>
									
				<br>
				<p class="aj mt7px">Statutory audit JD<br />
<br />
As an Audit Senior, you will play a critical role in execution of audits and will collaborate with a diverse group of talented audit professionals. This would require you to be involved in all stages of audit (planning, execution and reporting). You’ll use our cutting-edge audit tools and technology to:<br />
<br />
 <br />
<br />
·       plan, execute and monitor audit engagements<br />
<br />
·       ensure you and the team perform audit procedures as planned<br />
<br />
·       perform various test of controls<br />
<br />
·       assist in identifying audit and accounting issues and resolving them<br />
<br />
·       coach, guide and develop staff on the engagements<br />
<br />
·       develop a good understanding of the sources of accounting and auditing literature<br />
<br />
·       identify best practices on engagements and efficiently implement those<br />
<br />
 <br />
<br />
The Team<br />
<br />
Our team culture is collaborative and encourages team members to take initiative and seek on-the-job learning opportunities. Our audit professionals are committed to excellence and to enhancing the trust of the investing public and capital markets. Quality is our top priority, and by focusing on innovation, we continue to raise the bar on quality and deliver greater value to our clients. <br />
<br />
 <br />
<br />
How you’ll grow<br />
<br />
At Deloitte, we’ve invested a great deal to create a rich environment in which our professionals can grow. We want all our people to develop in their own way, playing to their own strengths as they hone their leadership skills. And, as a part of our efforts, we provide our professionals with a variety of learning and networking opportunities—including exposure to leaders, sponsors, coaches, and challenging assignments—to help accelerate their careers along the way. No two people learn in exactly the same way. So, we provide a range of resources including live classrooms, team-based learning, and eLearning. DU: The Leadership Center in India, our state-of-the-art, world-class learning Center in the Hyderabad offices is an extension of the Deloitte University (DU) in Westlake, Texas, and represents a tangible symbol of our commitment to our people’s growth and development. Explore DU: The Leadership Center in India<br />
<br />
 Required<br />
<br />
·       2+ years of auditing or equivalent experience<br />
<br />
·       Charted Accountant/Certified Public Accountant (CPA) certification<br />
<br />
·       Effective interpersonal and communication skills<br />
<br />
·       Leadership skills demonstrating sound judgment, problem-solving, and decision-making abilities<br />
<br />
·       Experience with  working independently on multiple assignments or engagements<br />
<br />
 <br />
<br />
Preferred<br />
<br />
Experience with a regional or Big 4 accounting organization <br />
 <br />
<br />
Work Timing<br />
<br />
9:00AM – 6:00 PM</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">2 Years</td>
				</tr>			
											<tr>
							<td class="alpha75 p5px">Salary</td>
							<td class="p5px"> 3  Lac  To  6  Lac  P.A.</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">CA</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">
				
									<table class="w100 formTable bdr0 mt5px">
											<tr>
						<td class="w195 alpha75 p5px vat">Company Name</td>
						<td class="p5px vat"><p class="dif b">Deloitte University</p></td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px vat">About Company</td>
						<td class="p5px vat">Deloitte University</td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:mahesh@exelonconsulting.com"> mahesh@exelonconsulting.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="314585">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="811315"><input type="hidden" name="subject" value="Applied for External Audit">
					</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">(2)</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">(1)</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">(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: 'MmovQWhkdXNiU29TdCt5dHpXY25pZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:54:"Job openings for accountant in usa | Exelon Consulting";i:2;s:153:"External Audit Jobs,External Audit Jobs in Pune,External Audit Vacancy in Pune,External Audit jobs in India,Accounting / Auditing / Taxation jobs in Pune";i:3;s:258:"Apply for External Audit Jobs in Pune India - External Audit Vacancy  in Accounting / Auditing / Taxation field with 2 years Work Experience, Key Skills are Tally, Accounting,  Account Management, Finance, Accounting / Auditing / Taxation jobs in Pune  India";i:4;s:3851:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "External Audit",
		  "identifier": {
	        "@type": "PropertyValue",
	        "name": "Deloitte University",
	        "value":  "811315"
	      },
		  "hiringOrganization": {
	      "@type" : "Organization",
	      "name" : "Deloitte University",
	      "description": "Deloitte University",
	      "telephone" : "",
	      "email" : "mahesh@exelonconsulting.com"  
	       },
		  "url": "https://www.exelonconsulting.com/job-openings-for-accountant-usa-811315.htm",
          "datePosted": "2021-06-16",
          
		  "baseSalary": " 3  Lac  To  6  Lac ",
		  "description": "Statutory audit JD

As an Audit Senior, you will play a critical role in execution of audits and will collaborate with a diverse group of talented audit professionals. This would require you to be involved in all stages of audit (planning, execution and reporting). You’ll use our cutting-edge audit tools and technology to:

 

·       plan, execute and monitor audit engagements

·       ensure you and the team perform audit procedures as planned

·       perform various test of controls

·       assist in identifying audit and accounting issues and resolving them

·       coach, guide and develop staff on the engagements

·       develop a good understanding of the sources of accounting and auditing literature

·       identify best practices on engagements and efficiently implement those

 

The Team

Our team culture is collaborative and encourages team members to take initiative and seek on-the-job learning opportunities. Our audit professionals are committed to excellence and to enhancing the trust of the investing public and capital markets. Quality is our top priority, and by focusing on innovation, we continue to raise the bar on quality and deliver greater value to our clients. 

 

How you’ll grow

At Deloitte, we’ve invested a great deal to create a rich environment in which our professionals can grow. We want all our people to develop in their own way, playing to their own strengths as they hone their leadership skills. And, as a part of our efforts, we provide our professionals with a variety of learning and networking opportunities—including exposure to leaders, sponsors, coaches, and challenging assignments—to help accelerate their careers along the way. No two people learn in exactly the same way. So, we provide a range of resources including live classrooms, team-based learning, and eLearning. DU: The Leadership Center in India, our state-of-the-art, world-class learning Center in the Hyderabad offices is an extension of the Deloitte University (DU) in Westlake, Texas, and represents a tangible symbol of our commitment to our people’s growth and development. Explore DU: The Leadership Center in India

 Required

·       2+ years of auditing or equivalent experience

·       Charted Accountant/Certified Public Accountant (CPA) certification

·       Effective interpersonal and communication skills

·       Leadership skills demonstrating sound judgment, problem-solving, and decision-making abilities

·       Experience with  working independently on multiple assignments or engagements

 

Preferred

Experience with a regional or Big 4 accounting organization 
 

Work Timing

9:00AM – 6:00 PM",
		  "educationRequirements": "CA",
		  "experienceRequirements": "2 Years",
		  "industry": "Accounting / Auditing / Taxation",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Maharashtra",
		      "addressRegion": "Pune"
		    }
		  },
		 "qualifications": "CA",
		     "skills": "Tally, Accounting,  Account Management, Finance"
		  }
		</script>
		";i:5;N;}