You could greatly improve the readability of your query by using a Common Table Expression instead of a sub-query. Then just refer to the CTE like you would a table. Like so:
WITH tblVisor AS (
SELECT cp_supervisor_properties.supervisor_id,
persons.last_name,
persons.first_names,
cp_supervisor_properties.employee_job_profile_id
FROM cp_supervisor_properties
INNER JOIN persons
ON persons.person_id = cp_supervisor_properties.supervisor_id
)
SELECT tblVisor.supervisor_id,
tblVisor.last_name,
tblVisor.first_names,
tblVisor.employee_job_profile_id,
org_employees.last_name,
org_employees.first_name,
org_employees.job_code
FROM tblVisor
INNER JOIN org_employees
ON org_employees.employee_number = tblVisor.employee_job_profile_id
LIMIT 100
This likely will not change performance much or at all, but it is easier to maintain. If this query is called often, perhaps consider writing a SQL function to store the execution plan with it, such as:
CREATE OR REPLACE FUNCTION my_function_name()
LANGUAGE plpgsql AS $$
BEGIN
WITH tblVisor AS (
SELECT cp_supervisor_properties.supervisor_id,
persons.last_name,
persons.first_names,
cp_supervisor_properties.employee_job_profile_id
FROM cp_supervisor_properties
INNER JOIN persons
ON persons.person_id = cp_supervisor_properties.supervisor_id
)
SELECT tblVisor.supervisor_id,
tblVisor.last_name,
tblVisor.first_names,
tblVisor.employee_job_profile_id,
org_employees.last_name,
org_employees.first_name,
org_employees.job_code
FROM tblVisor
INNER JOIN org_employees
ON org_employees.employee_number = tblVisor.employee_job_profile_id
LIMIT 100;
END; $$
Then whenever you need to run it:
SELECT my_function_name();
That should speed it up after you run it once, since it will store the execution plan with it instead of having to calculate it each time.