Welcome to the Workforce Development Board

The City of Los Angeles Workforce Development Board annually manages more than $50 million in public funds to build the LA economy and improve the quality of life for every community member.

Local Workforce Plan 2025-2028
Draft Local Workforce Plan
The WDB has posted a draft version of the 2025-2028 Local Workforce Plan for a thirty-day Public Comment period to solicit community input. The Local Plan guides workforce development through objectives addressing poverty, promoting equity, and fostering income mobility.

learn more

ProcureLA
ProcureLA
The Procure LA Program provides free services and resources to equip small businesses with the knowledge and tools needed to acquire City contracts. This is a unique opportunity to seize opportunities in anticipation of the many major upcoming sporting events.

learn more

LApreneur
Entrepreneur Training Program
The LApreneur program provides aspiring and existing business owners access to free resources and tools that build a foundation to start, grow, and succeed. Fill out the 2024-25 Interest Form and participate in future cohorts.

learn more

Legacy Business
Legacy Business Program
The initiative is designed to support the visibility, patronage, and sustainability of deep-rooted small businesses by fostering economic empowerment through tangible benefits such as digital marketing, modern B2C, and access to capital and grants.

learn more

LA Optimized 2.0
LA Optimized 2.0
LA Optimized 2.0 is an innovative program dedicated to boosting the visibility and impact of businesses within the City of Los Angeles through digital marketing resources. The team helps businesses to build and strengthen their digital presence at no cost!

learn more

JEDI Zones
JEDI Zones
The Jobs and Economic Development Incentive (JEDI) Zones program provides economic development in underserved LA communities by promoting and expanding local businesses, resulting in greater employment opportunities, and more financially secure communities.

learn more

All
Our Services
Our Work
About Us

Employers & Business

BusinessSource Centers help local businesses, entrepreneurs and developers through a variety of services
Our Services

Job Seekers

WorkSource centers are located across LA City specifically designed to help our community members find and stay employed
Our Services

Youth

YouthSource Centers help our young people with education, skills training and career guidance at every stage of their path
Our Services
8.665MBMemory Usage390msRequest Duration
Joomla! Version5.2.5
PHP Version8.1.32
Identityguest
Response200
Templateg5_anacron
Database
Server
mysql
Version
10.5.26-MariaDB
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:47 [ "CONTEXT_DOCUMENT_ROOT" => "/home/wiblac5/public_html" "CONTEXT_PREFIX" => "" "DOCU...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1743004136 "last" => 1743004136...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (354.18KB) (40.94ms)
  • afterInitialise (3.14MB) (124ms)
  • afterRoute (1.14MB) (54.05ms)
  • beforeRenderComponent com_content (46.4KB) (1.08ms)
  • Before Access::preloadComponents (all components) (187.73KB) (13.16ms)
  • After Access::preloadComponents (all components) (125.3KB) (793μs)
  • Before Access::getAssetRules (id:8 name:com_content) (2.45KB) (19μs)
  • After Access::getAssetRules (id:8 name:com_content) (8.93KB) (685μs)
  • afterRenderComponent com_content (196.59KB) (18.47ms)
  • afterDispatch (406.98KB) (16.46ms)
  • beforeRenderRawModule mod_widgetkit (FP Highlight promo spot) (1.47MB) (63.29ms)
  • afterRenderRawModule mod_widgetkit (FP Highlight promo spot) (173.11KB) (12.31ms)
  • beforeRenderModule mod_widgetkit (FP Highlight promo spot) (736B) (9μs)
  • afterRenderModule mod_widgetkit (FP Highlight promo spot) (80.55KB) (2.02ms)
  • afterRender (679.57KB) (42.55ms)
  • 1 x afterInitialise (3.14MB) (31.65%)
    124ms
    1 x beforeRenderRawModule mod_widgetkit (FP Highlight promo spot) (1.47MB) (16.21%)
    63.29ms
    1 x afterRoute (1.14MB) (13.84%)
    54.05ms
    1 x afterRender (679.57KB) (10.9%)
    42.55ms
    1 x afterLoad (354.18KB) (10.49%)
    40.94ms
    1 x afterRenderComponent com_content (196.59KB) (4.73%)
    18.47ms
    1 x afterDispatch (406.98KB) (4.22%)
    16.46ms
    1 x Before Access::preloadComponents (all components) (187.73KB) (3.37%)
    13.16ms
    1 x afterRenderRawModule mod_widgetkit (FP Highlight promo spot) (173.11KB) (3.15%)
    12.31ms
    1 x afterRenderModule mod_widgetkit (FP Highlight promo spot) (80.55KB) (0.52%)
    2.02ms
    1 x beforeRenderComponent com_content (46.4KB) (0.28%)
    1.08ms
    1 x After Access::preloadComponents (all components) (125.3KB) (0.2%)
    793μs
    1 x After Access::getAssetRules (id:8 name:com_content) (8.93KB) (0.18%)
    685μs
    1 x Before Access::getAssetRules (id:8 name:com_content) (2.45KB) (0%)
    19μs
    1 x beforeRenderModule mod_widgetkit (FP Highlight promo spot) (736B) (0%)
    9μs
24 statements were executed, 2 of which were duplicates, 22 unique16.03ms112.84KB
  • SELECT @@SESSION.sql_mode;589μs1.57KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:308Copy
  • SELECT `data` FROM `k406l_session` WHERE `session_id` = ?2.37ms1.61KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
  • SELECT `session_id` FROM `k406l_session` WHERE `session_id` = :session_id LIMIT 1199μs1.61KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `k406l_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)5.35ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `k406l_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 168μs2.23KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `k406l_viewlevels`58μs976B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `k406l_usergroups` AS `a` LEFT JOIN `k406l_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest84μs1.64KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `k406l_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`74μs4.3KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT id,template FROM k406l_template_styles WHERE client_id=0 AND home=165μs2.14KB/administrator/components/com_widgetkit/widgetkit.php:28Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `k406l_menu` AS `m` LEFT JOIN `k406l_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`677μs53.55KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `k406l_template_styles` AS `s` LEFT JOIN `k406l_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 156μs1.19KB/administrator/components/com_templates/src/Model/StyleModel.php:775Copy
  • SELECT s.id, s.template, s.home, s.title AS long_title, s.params FROM k406l_template_styles AS s WHERE s.client_id = 0 AND s.template = 'g5_anacron' ORDER BY s.id62μs1.11KB/libraries/gantry5/src/classes/Gantry/Joomla/StyleHelper.php:69Copy
  • SELECT * FROM `k406l_languages` WHERE `published` = 1 ORDER BY `ordering` ASC70μs2.22KB/libraries/src/Language/LanguageHelper.php:177Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `k406l_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)283μs7.75KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END AS `publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`metadata`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`featured`,`a`.`language`,LENGTH(`a`.`fulltext`) AS `readmore`,`a`.`ordering`,`fp`.`featured_up`,`fp`.`featured_down`,CASE WHEN `c`.`published` = 2 AND `a`.`state` > 0 THEN 2 WHEN `c`.`published` != 1 THEN 0 ELSE `a`.`state` END AS `state`,`c`.`title` AS `category_title`,`c`.`path` AS `category_route`,`c`.`access` AS `category_access`,`c`.`alias` AS `category_alias`,`c`.`language` AS `category_language`,`c`.`published`,`c`.`published` AS `parents_published`,`c`.`lft`,CASE WHEN `a`.`created_by_alias` > ' ' THEN `a`.`created_by_alias` ELSE `ua`.`name` END AS `author`,`ua`.`email` AS `author_email`,`uam`.`name` AS `modified_by_name`,`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` FROM `k406l_content` AS `a` LEFT JOIN `k406l_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `k406l_users` AS `ua` ON `ua`.`id` = `a`.`created_by` LEFT JOIN `k406l_users` AS `uam` ON `uam`.`id` = `a`.`modified_by` LEFT JOIN `k406l_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `k406l_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` WHERE `a`.`featured` = 1 AND (`fp`.`featured_up` IS NULL OR `fp`.`featured_up` <= :frontpageUp) AND (`fp`.`featured_down` IS NULL OR `fp`.`featured_down` >= :frontpageDown) AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`access` IN (:preparedArray3,:preparedArray4) AND `c`.`published` = 1 AND `a`.`state` = :condition AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) ORDER BY c.lft, CASE WHEN a.publish_up IS NULL THEN a.created ELSE a.publish_up END DESC , a.created DESC LIMIT 9982μs9.44KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT COUNT(*) FROM `k406l_content` AS `a` LEFT JOIN `k406l_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `k406l_users` AS `ua` ON `ua`.`id` = `a`.`created_by` LEFT JOIN `k406l_users` AS `uam` ON `uam`.`id` = `a`.`modified_by` LEFT JOIN `k406l_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `k406l_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` WHERE `a`.`featured` = 1 AND (`fp`.`featured_up` IS NULL OR `fp`.`featured_up` <= :frontpageUp) AND (`fp`.`featured_down` IS NULL OR `fp`.`featured_down` >= :frontpageDown) AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`access` IN (:preparedArray3,:preparedArray4) AND `c`.`published` = 1 AND `a`.`state` = :condition AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown)320μs5.91KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:197Copy
  • SELECT `a`.`menutype`,`a`.`title` FROM `k406l_menu_types` AS `a` WHERE `a`.`client_id` = 0359μs3.41KB/libraries/gantry5/src/classes/Gantry/Framework/Menu.php:138Copy
  • SELECT m.id, m.alias, m.path AS route, m.level, m.parent_id FROM k406l_menu AS m WHERE m.menutype = 'mainmenu' AND m.parent_id > 0 AND m.client_id = 0 AND m.published >= 0 ORDER BY m.lft40μs1.36KB/libraries/gantry5/src/classes/Gantry/Framework/Menu.php:791Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `k406l_modules` AS `m` LEFT JOIN `k406l_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `k406l_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`641μs2.38KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT * FROM k406l_widgetkit WHERE id = 5357μs1KB/administrator/components/com_widgetkit/vendor/yootheme/framework/plugins/joomla/src/Database.php:35Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `k406l_modules` AS `m` LEFT JOIN `k406l_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `k406l_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`216μs2.38KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • 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 `k406l_scheduler_tasks` AS `a` WHERE `a`.`state` = 1361μs1.68KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
  • SELECT `session_id` FROM `k406l_session` WHERE `session_id` = ?189μs1.63KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
  • UPDATE `k406l_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?2.56ms912BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy