Skip to main content

History

Goodwill Then & Now

Goodwill Keystone Area

For 75 years, Goodwill Keystone Area has forged a strong legacy of creating inclusive communities and providing people with barriers to employment opportunities to achieve economic independence. Today, our efforts to collect donations, sell affordable items and help individuals through the power of work are happening every day across 22 central and southeastern Pennsylvania counties where we operate.

As workforce needs continue to evolve, so does our outlook and focus to address these needs.

We are committed to be on the leading edge of workforce opportunities and help those we serve thrive and flourish long-term. This commitment to training and development for the jobs of tomorrow is also extended to our employees. We encourage team members to pursue growth opportunities and support them on their career paths.

Goodwill’s North Star is advancing sustainability in our communities and internally with our employees, and our focus includes:

Human Sustainability: Offering employees resources to grow their skills and capacity, and supporting their well-being.

Social Sustainability: Creating pathways to generational wealth through training for jobs of tomorrow and services that promote diversity, equity, inclusion and belonging.

Economic Sustainability: Growing revenue and proceeds needed to sustain and build our retail operations, mission and business services.

Environmental Sustainability: Expanding efforts to enhance environmental impacts in our communities.

Our outlook builds on the foundation created over the past 75 years and guides our work that will sustain us for the next 75 years and more.

History

Rev. Edgar J. HelmsGoodwill was founded in 1902 in Boston by Rev. Edgar J. Helms, a Methodist minister and early social innovator. Helms collected used household goods and clothing in wealthier areas of the city, then trained and hired those who were poor to mend and repair the used goods. The goods were then resold or were given to the people who repaired them. The system worked, and the Goodwill philosophy of “a hand up, not a hand out” was born.

Dr. Helms’ vision set an early course for what today has become a $4 billion nonprofit organization. Helms described Goodwill Industries as an “industrial program as well as a social service enterprise…a provider of employment, training and rehabilitation for people of limited employability, and a source of temporary assistance for individuals whose resources were depleted.”

Times have changed, but Helms’ vision remains constant: “We have courage and are unafraid. With the prayerful cooperation of millions of our bag contributors and of our workers, we will press on till the curse of poverty and exploitation is banished from mankind.”

truetrue
7MBMemory Usage135msRequest Duration
Joomla! Version4.2.5
PHP Version8.1.32
Identityguest
Response200
Templategoodwill-cassiopeia
Database
Server
mysql
Version
10.5.26-MariaDB
Collation
utf8_general_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
[]
$_COOKIE
[]
$_SERVER
array:58 [ "USER" => "yourgoodwill" "HOME" => "/var/www/vhosts/yourgoodwill.org" "SCRIPT_NAME"...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1744830526 "last" => 1744830526...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
PHPDEBUGBAR_STACK_DATA
[]
  • afterLoad (539.61KB) (6.76ms)
  • afterInitialise (815.96KB) (27.05ms)
  • afterRoute (548.28KB) (2.05ms)
  • beforeRenderComponent com_content (45.44KB) (5.56ms)
  • Before Access::preloadComponents (all components) (711.15KB) (10.52ms)
  • After Access::preloadComponents (all components) (110.98KB) (1.51ms)
  • Before Access::preloadPermissions (com_content) (3.85KB) (49μs)
  • After Access::preloadPermissions (com_content) (458.71KB) (2.07ms)
  • Before Access::getAssetRules (id:69 name:com_content.article.10) (34.8KB) (64μs)
  • After Access::getAssetRules (id:69 name:com_content.article.10) (27.61KB) (682μs)
  • afterRenderComponent com_content (1.91MB) (34.56ms)
  • afterDispatch (2.28KB) (194μs)
  • beforeRenderRawModule mod_menu (Main Menu) (296.11KB) (6.54ms)
  • afterRenderRawModule mod_menu (Main Menu) (464.68KB) (15.57ms)
  • beforeRenderModule mod_menu (Main Menu) (8.93KB) (1.4ms)
  • afterRenderModule mod_menu (Main Menu) (11.41KB) (337μs)
  • afterRender (342.38KB) (11.57ms)
  • 1 x afterRenderComponent com_content (1.91MB) (25.58%)
    34.56ms
    1 x afterInitialise (815.96KB) (20.02%)
    27.05ms
    1 x afterRenderRawModule mod_menu (Main Menu) (464.68KB) (11.52%)
    15.57ms
    1 x afterRender (342.38KB) (8.57%)
    11.57ms
    1 x Before Access::preloadComponents (all components) (711.15KB) (7.79%)
    10.52ms
    1 x afterLoad (539.61KB) (5%)
    6.76ms
    1 x beforeRenderRawModule mod_menu (Main Menu) (296.11KB) (4.84%)
    6.54ms
    1 x beforeRenderComponent com_content (45.44KB) (4.12%)
    5.56ms
    1 x After Access::preloadPermissions (com_content) (458.71KB) (1.53%)
    2.07ms
    1 x afterRoute (548.28KB) (1.52%)
    2.05ms
    1 x After Access::preloadComponents (all components) (110.98KB) (1.11%)
    1.51ms
    1 x beforeRenderModule mod_menu (Main Menu) (8.93KB) (1.04%)
    1.40ms
    1 x After Access::getAssetRules (id:69 name:com_content.article.10) (27.61KB) (0.5%)
    682μs
    1 x afterRenderModule mod_menu (Main Menu) (11.41KB) (0.25%)
    337μs
    1 x afterDispatch (2.28KB) (0.14%)
    194μs
    1 x Before Access::getAssetRules (id:69 name:com_content.article.10) (34.8KB) (0.05%)
    64μs
    1 x Before Access::preloadPermissions (com_content) (3.85KB) (0.04%)
    49μs
18 statements were executed, 2 of which were duplicates, 16 unique10.02ms158.23KB
  • SELECT @@SESSION.sql_mode;184μs1.57KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:293Copy
  • SELECT `data` FROM `jmla_session` WHERE `session_id` = ?505μs1.61KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `jmla_session` WHERE `session_id` = :session_id LIMIT 1239μs1.61KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `jmla_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)826μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `jmla_viewlevels`188μs1.58KB/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `jmla_usergroups` AS `a` LEFT JOIN `jmla_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest234μs1.64KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `jmla_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40)719μs7.75KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `jmla_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 0840μs93.8KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `jmla_content`622μs3.64KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:584Copy
  • UPDATE jmla_content SET `hits` = (`hits` + 1) WHERE `id` = '10'862μs48B/libraries/src/Table/Table.php:1319Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `jmla_content` AS `a` INNER JOIN `jmla_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `jmla_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `jmla_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `jmla_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `jmla_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)721μs8.63KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `jmla_categories` AS `s` INNER JOIN `jmla_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`721μs5.17KBParams/libraries/src/Categories/Categories.php:360Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `jmla_contentitem_tag_map` AS `m` INNER JOIN `jmla_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)299μs5.22KBParams/libraries/src/Helper/TagsHelper.php:364Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `jmla_categories` AS `s` INNER JOIN `jmla_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`475μs5.17KBParams/libraries/src/Categories/Categories.php:360Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM jmla_fields AS a LEFT JOIN `jmla_languages` AS l ON l.lang_code = a.language LEFT JOIN jmla_users AS uc ON uc.id=a.checked_out LEFT JOIN jmla_viewlevels AS ag ON ag.id = a.access LEFT JOIN jmla_users AS ua ON ua.id = a.created_user_id LEFT JOIN jmla_fields_groups AS g ON g.id = a.group_id LEFT JOIN `jmla_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC1.04ms6.06KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:165Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `jmla_modules` AS `m` LEFT JOIN `jmla_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `jmla_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`823μs2.44KBParams/libraries/src/Cache/Controller/CallbackController.php:132Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`type`,`a`.`execution_rules`,`a`.`state`,`a`.`last_exit_code`,`a`.`locked`,`a`.`last_execution`,`a`.`next_execution`,`a`.`times_executed`,`a`.`times_failed`,`a`.`priority`,`a`.`ordering`,`a`.`note`,`a`.`checked_out`,`a`.`checked_out_time`,`uc`.`name` AS `editor` FROM `jmla_scheduler_tasks` AS `a` LEFT JOIN `jmla_users` AS `uc` ON `uc`.`id` = `a`.`checked_out` WHERE `a`.`state` = :state AND `a`.`next_execution` <= :now ORDER BY `a`.`title` asc403μs6.95KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:391Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`type`,`a`.`execution_rules`,`a`.`state`,`a`.`last_exit_code`,`a`.`locked`,`a`.`last_execution`,`a`.`next_execution`,`a`.`times_executed`,`a`.`times_failed`,`a`.`priority`,`a`.`ordering`,`a`.`note`,`a`.`checked_out`,`a`.`checked_out_time`,`uc`.`name` AS `editor` FROM `jmla_scheduler_tasks` AS `a` LEFT JOIN `jmla_users` AS `uc` ON `uc`.`id` = `a`.`checked_out` WHERE `a`.`state` = :state AND `a`.`locked` IS NOT NULL ORDER BY `a`.`title` asc313μs4.43KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:391Copy