a:6:{i:0;s:14046:"					<section class="headBg theme2 bread-right">
					<div class="wrap">
					<div class="page-title-inner fo"> 
					<div class="h1"><h1>Job openings for program manager in kolhapur</h1></div>
					<p class="breadcrumb ar uu small"><a href="https://www.pacificconsultancy.in/" title="Home">Home</a>
					
											<b class="ffv p2px">&rsaquo;</b><a href="https://www.pacificconsultancy.in/current-jobs.htm" title="Current Jobs">Current Jobs</a>
																
					<b class="ffv p2px">&rsaquo;</b> Job openings for program manager in kolhapur</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="dt w100">
				<div class="dtc">
				<div class="xxxlarge fw6 dif">Program Manager</div>
									<p class="mt7px fw6">Kolhapur</p>
								
				</div>
				<div class="dtc w125px"><div class="mt7px">
									
					<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="434170">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="990459"><input type="hidden" name="subject" value="Applied for Program Manager">
					</form>
			
									</div></div>
				</div>
								<br />
				<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-53d0b0627cb3c661"></script>
				<div class="fo">
				<div class="addthis_sharing_toolbox dib vam mr10px"></div>
				<a href="https://www.pacificconsultancy.in/vacancy_990459.rss" target="_blank" class="p5px15px dib c3px" style="background:#f8991b;color:#ffffff;"><i class="fa fa-feed"></i> RSS Feed </a>
				</div>
				<br>
				<p class="aj mt7px">Job Position - Program Manager<br />
<br />
Location - Kolhapur<br />
<br />
Job Description - A program manager acts as a coordinator between multiple projects at a business or organization to be sure their benefiting each other and aligning with overall business goals. They are different from project managers because they do not directly oversee individual projects.<br />
<br />
Responsibilities and Duties<br />
•	Organizing programs and activities in accordance with the mission and goals of the organization.<br />
•	Developing new programs to support the strategic direction of the organization.<br />
•	Creating and managing long-term goals.<br />
•	Developing a budget and operating plan for the program.<br />
•	Developing an evaluation method to assess program strengths and identify areas for improvement.<br />
•	Writing program funding proposals to guarantee uninterrupted delivery of services.<br />
•	Managing a team with a diverse array of talents and responsibilities.<br />
•	Ensuring goals are met in areas including customer satisfaction, safety, quality, and team member performance.<br />
•	Implementing and managing changes and interventions to ensure project goals are achieved.<br />
•	Meeting with stakeholders to make communication easy and transparent regarding project issues and decisions on services.<br />
•	Producing accurate and timely reporting of program status throughout its life cycle.<br />
•	Analyzing program risks.<br />
•	Working on strategy with the marketing team.<br />
Qualifications and Skills<br />
Skills -<br />
•	Proven experience in program management.<br />
•	Proven stakeholder management skills.<br />
•	Proven experience managing a team.<br />
•	Experience using computers for a variety of tasks.<br />
•	Competency in Microsoft applications including Word, Excel, and Outlook.<br />
•	Understanding of project management.<br />
Experience:<br />
•	1 year Experience (Preferred)<br />
•	Freshers can apply also.<br />
Education:<br />
•	Bachelor's degree or master's degree in business or related field.<br />
•	Masters (MBA) (Any)<br />
Job Type: Full-time</p>
				
				<table class="w100 formTable bdr0 mt20px">	
				<tr>
				<td class="w195 alpha75 p5px">Experience</td>
				<td class="p5px">0 - 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">Media / Entertainment /  TV / Films / Production / Broadcasting</td>
					</tr>
									
									<tr>
					<td class="alpha75 p5px">Qualification</td>
					<td class="p5px">B.B.A, M.B.A/PGDM</td>
					</tr>					
										<tr>
					<td class="alpha75 p5px">Key Skills</td>
					<td class="p5px">
											<span class="bdr dib p2px10px mr5px mt2px">IT Strategy</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Program Management</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Practice Management</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Engagement Management</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Business Transformation</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Service Delivery Management</span>
												<span class="bdr dib p2px10px mr5px mt2px"> Project Management</span>
												<span class="bdr dib p2px10px mr5px mt2px"></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">Contact Person</td>
						<td class="p5px">Aishwarya</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Address</td>
						<td class="p5px">1785 E Ward, Ghugare Complex, G Enterprises Building, Shahupuri 4th Lane, Kolhapur Maharashtra Pin-416008</td>
						</tr>					
												<tr>
						<td class="w195 alpha75 p5px">Mobile </td>
						<td class="p5px">7030633999 </td>
						</tr>
												<tr>
						<td class="w195 alpha75 p5px">Email ID</td>
						<td class="p5px"><a href="mailto:info@pacificconsultancy.in"> info@pacificconsultancy.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="434170">
					<input type="hidden" name="enq_type" value="2"><input type="hidden" name="vacancy_id" value="990459"><input type="hidden" name="subject" value="Applied for Program Manager">
					</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-kolhapur.htm" title="Jobs in Kolhapur">Kolhapur</a> <b class="alpha50 bn small">(121)</b></span>
										<span class="dib p5px10px c2px bdr mr7px mb7px "><a class="dif" href="jobs-in-belgaum.htm" title="Jobs in Belgaum">Belgaum</a> <b class="alpha50 bn small">(2)</b></span>
										<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">(21)</span><a href="jobs-in-accounting-tax-fid.htm" title="Accounting / Auditing / Taxation Jobs">Accounting / Auditing / Taxati...</a></p>
										<p class="mb5px "><span class="fr">(14)</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">(13)</span><a href="jobs-in-financial-services-banking-investments-insurance-stock-market-loan-fid.htm" title="Financial Services / Banking, Investments / Insurance / stock market / Loan Jobs">Financial Services / Banking, ...</a></p>
										<p class="mb5px "><span class="fr">(12)</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">(11)</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">(10)</span><a href="jobs-in-manufacturing-production-fid.htm" title="Manufacturing / Production / Quality Jobs">Manufacturing / Production / Q...</a></p>
										<p class="mb5px "><span class="fr">(7)</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">(6)</span><a href="jobs-in-corporate-planning-fid.htm" title="Corporate Planning & Strategy / Management Consulting Jobs">Corporate Planning & Strategy ...</a></p>
										<p class="mb5px "><span class="fr">(4)</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">(4)</span><a href="jobs-in-engineering-design-rd-quality-fid.htm" title="Engineering/ Engineering Design / R&D / Quality Jobs">Engineering/ Engineering Desig...</a></p>
										<p class="mb5px "><span class="fr">(3)</span><a href="jobs-in-health-care-pharmaceuticals-medical-fid.htm" title="Health Care / Pharmaceuticals / Medical Jobs">Health Care / Pharmaceuticals ...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(3)</span><a href="jobs-in-ites-bpo-kpo-lpo-customer-service-fid.htm" title="ITES / BPO / KPO / LPO / Customer Service Jobs">ITES / BPO / KPO / LPO / Custo...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(3)</span><a href="jobs-in-property-construction-fid.htm" title="Real Estate / Construction Jobs">Real Estate / Construction</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(2)</span><a href="jobs-in-analytic-business-intelligence-fid.htm" title="Analytic and Business Intelligence Jobs">Analytic and Business Intellig...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(2)</span><a href="jobs-in-education-teaching-training-counselling-fid.htm" title="Education / Teaching / Training / Counselling / Academic Jobs">Education / Teaching / Trainin...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(2)</span><a href="jobs-in-client-server-fid.htm" title="IT Software - Client Server Jobs">IT Software - Client Server</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(2)</span><a href="jobs-in-supply-chain-purchase-procurement-fid.htm" title="Supply Chain / Purchase / Procurement Jobs">Supply Chain / Purchase / Proc...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-media-entertainment-tv-films-production-broadcasting-fid.htm" title="Media / Entertainment /  TV / Films / Production / Broadcasting Jobs">Media / Entertainment /  TV / ...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-it-analyst-software-testing-fid.htm" title="IT Software - QA / Testing / Documentation Jobs">IT Software - QA / Testing / D...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-defence-forces-security-forces-fid.htm" title="Defence Forces / Security Forces Jobs">Defence Forces / Security Forc...</a></p>
										<p class="mb5px spanlist dn"><span class="fr">(1)</span><a href="jobs-in-network-administration-security-fid.htm" title="IT Software - Network Administration, Security Jobs">IT Software - Network Administ...</a></p>
										<span class="uu db ar"><a class="showallspan" data-target="show" href="javascript:void(0)" >View More</a></span>
									
				</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: 'N0ZWWWVuZUJibjFQTFBSbldGRU4vZz09',data_type: 'RExzRmw1cmRsdlh6YkJlVUZBNnA4UT09'},
	  cache : false,
	  async: true
	  
	}).done(function(resp) {
	  //alert(resp)
	});
	</script>
	";i:1;s:100:"Job openings for program manager in kolhapur | Pacific Placements and Business Consultancy Pvt. Ltd.";i:2;s:200:"Program Manager Jobs,Program Manager Jobs in Kolhapur,Program Manager Vacancy in Kolhapur,Program Manager jobs in India,Media / Entertainment /  TV / Films / Production / Broadcasting jobs in Kolhapur";i:3;s:438:"Apply for Program Manager Jobs in Kolhapur India - Program Manager Vacancy  in Media / Entertainment /  TV / Films / Production / Broadcasting field with 0 to 5 years Work Experience, Key Skills are IT Strategy, Program Management, Practice Management, Engagement Management, Business Transformation, Service Delivery Management, Project Management,, Media / Entertainment /  TV / Films / Production / Broadcasting jobs in Kolhapur  India";i:4;s:3248:"
		<script type="application/ld+json">
		{
		  "@context": "http://schema.org",
		  "@type": "JobPosting",
		  "title": "Program Manager",
		  "identifier": {
	        "@type": "PropertyValue",
	        "name": "",
	        "value":  "990459"
	      },
		  "hiringOrganization": {
	      "@type" : "Organization",
	      "name" : "",
	      "description": "",
	      "telephone" : "7030633999",
	      "email" : "info@pacificconsultancy.in"  
	       },
		  "url": "https://www.pacificconsultancy.in/job-openings-for-program-manager-kolhapur-990459.htm",
          "datePosted": "2021-08-17",
          
		  "baseSalary": "",
		  "description": "Job Position - Program Manager

Location - Kolhapur

Job Description - A program manager acts as a coordinator between multiple projects at a business or organization to be sure their benefiting each other and aligning with overall business goals. They are different from project managers because they do not directly oversee individual projects.

Responsibilities and Duties
•	Organizing programs and activities in accordance with the mission and goals of the organization.
•	Developing new programs to support the strategic direction of the organization.
•	Creating and managing long-term goals.
•	Developing a budget and operating plan for the program.
•	Developing an evaluation method to assess program strengths and identify areas for improvement.
•	Writing program funding proposals to guarantee uninterrupted delivery of services.
•	Managing a team with a diverse array of talents and responsibilities.
•	Ensuring goals are met in areas including customer satisfaction, safety, quality, and team member performance.
•	Implementing and managing changes and interventions to ensure project goals are achieved.
•	Meeting with stakeholders to make communication easy and transparent regarding project issues and decisions on services.
•	Producing accurate and timely reporting of program status throughout its life cycle.
•	Analyzing program risks.
•	Working on strategy with the marketing team.
Qualifications and Skills
Skills -
•	Proven experience in program management.
•	Proven stakeholder management skills.
•	Proven experience managing a team.
•	Experience using computers for a variety of tasks.
•	Competency in Microsoft applications including Word, Excel, and Outlook.
•	Understanding of project management.
Experience:
•	1 year Experience (Preferred)
•	Freshers can apply also.
Education:
•	Bachelor's degree or master's degree in business or related field.
•	Masters (MBA) (Any)
Job Type: Full-time",
		  "educationRequirements": "B.B.A, M.B.A/PGDM",
		  "experienceRequirements": "0 - 5 Years",
		  "industry": "Media / Entertainment /  TV / Films / Production / Broadcasting",
		  "jobLocation": {
		    "@type": "Place",
		    "address": {
		      "@type": "PostalAddress",
		      "addressLocality": "Maharashtra",
		      "addressRegion": "Kolhapur"
		    }
		  },
		 "qualifications": "B.B.A, M.B.A/PGDM",
		     "skills": "IT Strategy, Program Management, Practice Management, Engagement Management, Business Transformation, Service Delivery Management, Project Management,"
		  }
		</script>
		";i:5;N;}