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
Settings18.202MBMemory Usage241msRequest Duration
Theme
Open Button Position
Hide Empty Tabs
Autoshow
Reset to defaults
Joomla! Version5.3.0
PHP Version8.3.23
Identityguest
Response200
Templategoodwill-cassiopeia
Database
Server
mysql
Version
10.5.27-MariaDB
Collation
utf8_general_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:63 [ "USER" => "yourgood" "HOME" => "/var/www/vhosts/yourgoodwill.org" "SCRIPT_NAME" => ...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1752013380 "last" => 1752013380...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (3.51MB) (31.28ms)
  • afterInitialise (6.97MB) (70ms)
  • afterRoute (637.23KB) (1.87ms)
  • beforeRenderComponent com_content (498.55KB) (5.45ms)
  • Before Access::preloadComponents (all components) (999.5KB) (12.41ms)
  • After Access::preloadComponents (all components) (121.74KB) (1.61ms)
  • Before Access::preloadPermissions (com_content) (1.63KB) (27μs)
  • After Access::preloadPermissions (com_content) (437.13KB) (2.18ms)
  • Before Access::getAssetRules (id:69 name:com_content.article.10) (18.65KB) (42μs)
  • After Access::getAssetRules (id:69 name:com_content.article.10) (26.93KB) (477μs)
  • afterRenderComponent com_content (2.87MB) (59.45ms)
  • afterDispatch (4.19KB) (267μs)
  • beforeRenderRawModule mod_menu (Main Menu) (865.39KB) (13.89ms)
  • afterRenderRawModule mod_menu (Main Menu) (367.13KB) (18.35ms)
  • beforeRenderModule mod_menu (Main Menu) (22.91KB) (2.13ms)
  • afterRenderModule mod_menu (Main Menu) (30.24KB) (768μs)
  • afterRender (595.13KB) (19.48ms)
  • 1 x afterInitialise (6.97MB) (29.1%)
    70.00ms
    1 x afterRenderComponent com_content (2.87MB) (24.72%)
    59.45ms
    1 x afterLoad (3.51MB) (13%)
    31.28ms
    1 x afterRender (595.13KB) (8.1%)
    19.48ms
    1 x afterRenderRawModule mod_menu (Main Menu) (367.13KB) (7.63%)
    18.35ms
    1 x beforeRenderRawModule mod_menu (Main Menu) (865.39KB) (5.78%)
    13.89ms
    1 x Before Access::preloadComponents (all components) (999.5KB) (5.16%)
    12.41ms
    1 x beforeRenderComponent com_content (498.55KB) (2.27%)
    5.45ms
    1 x After Access::preloadPermissions (com_content) (437.13KB) (0.91%)
    2.18ms
    1 x beforeRenderModule mod_menu (Main Menu) (22.91KB) (0.88%)
    2.13ms
    1 x afterRoute (637.23KB) (0.78%)
    1.87ms
    1 x After Access::preloadComponents (all components) (121.74KB) (0.67%)
    1.61ms
    1 x afterRenderModule mod_menu (Main Menu) (30.24KB) (0.32%)
    768μs
    1 x After Access::getAssetRules (id:69 name:com_content.article.10) (26.93KB) (0.2%)
    477μs
    1 x afterDispatch (4.19KB) (0.11%)
    267μs
    1 x Before Access::getAssetRules (id:69 name:com_content.article.10) (18.65KB) (0.02%)
    42μs
    1 x Before Access::preloadPermissions (com_content) (1.63KB) (0.01%)
    27μs
22 statements were executed, 5 of which were duplicates, 17 unique12.44ms152.75KB
  • SELECT @@SESSION.sql_mode;113μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:259Copy
  • SELECT `data` FROM `jmla_session` WHERE `session_id` = ?212μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
  • SELECT `session_id` FROM `jmla_session` WHERE `session_id` = :session_id LIMIT 1169μs1.3KBParams/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)698μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `jmla_viewlevels`213μs976B/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` = :guest199μs1.33KBParams/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,:preparedArray41)862μs7.44KBParams/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` = 01.22ms93.48KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `jmla_content`687μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:539Copy
  • UPDATE `jmla_content` SET `hits` = (`hits` + 1) WHERE `id` = '10'724μs48B/libraries/src/Table/Table.php:1348Copy
  • 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)586μs6.12KBParams/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`667μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • 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)472μs3.97KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • 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`686μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • 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.31ms4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • 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`1.1ms2.13KBParams/libraries/src/Cache/Controller/CallbackController.php:120Copy
  • SELECT * FROM `jmla_schemaorg` WHERE `itemId` = :itemId AND `context` = :context206μs2.8KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:406Copy
  • 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)570μs6.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • 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)555μs6.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `jmla_scheduler_tasks` AS `a` WHERE `a`.`state` = 1311μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
  • SELECT `session_id` FROM `jmla_session` WHERE `session_id` = ?188μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
  • UPDATE `jmla_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?689μs592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy