Skip to content

Company ​

Members (people), teams and jobs. Members and teams feed "about us" pages, jobs feed a careers page with schema.org JobPosting structured data so that Google for Jobs can index them.

  • Module key company
  • Default on
  • Switch EVOLVE_MODULE_COMPANY, see Modules
  • Role access evolve.roles.modules.company
  • Panel /evolve/company/member, /evolve/company/team, /evolve/company/job

Configuration ​

VariableDefaultPanelEffect
COMPANY_ALLOW_BLOCKSfalsenoShow the block editor on member profiles.
MEMBER_OVERVIEW_PAGEunsetyesPage that carries the members block; /{locale}/company/members redirects there.
TEAM_OVERVIEW_PAGEunsetyesPage that carries the team block.
JOBS_OVERVIEW_PAGEunsetyesPage that carries the jobs block; /{locale}/company/jobs redirects there.
COMPANY_JOBS_ADDRESS_STREET, _POSTAL_CODE, _CITY, _REGION, _COUNTRYcountry CHnoJob location used in the JobPosting data when a job has no address of its own.
COMPANY_JOBS_ORGANIZATION_LOGOunsetnoLogo URL for the hiring organisation in the JobPosting data.
COMPANY_JOBS_DEFAULT_EMPLOYMENT_TYPEFULL_TIMEnoschema.org employment type when a job sets none.
COMPANY_JOBS_DEFAULT_SALARY_CURRENCYCHFnoCurrency for salary fields.

config/company.php also holds jobs.employment_type_map, which maps free-text employment types ("Teilzeit", "Praktikum", "Freelance") to the schema.org enum. It has no .env key; publish the config to extend it. Member detail pages are off (allow-routeable is false in the config and has no variable).

In the panel ​

  • Members at /evolve/company/member: name, role, contact details, portrait, team, and the block editor when allowed.
  • Teams at /evolve/company/team.
  • Jobs at /evolve/company/job: title, description, employment type, location and salary fields. Jobs carry the JobPosting fields that the structured data needs.
  • Cmd-K: "Members" (also "team"), "Teams", "Jobs" (also "careers"), "New member", "New job". Members and jobs are in the global search.

On the site ​

BlockComponentFields
Alle Mitarbeitercompany.memberstitle
Teamcompany.teamtitle, a team to show
Jobscompany.jobstitle

Built-in list routes /{locale}/company/members and /{locale}/company/jobs render the module's own lists, or redirect to the overview pages when those are set. Every job page emits JobPosting JSON-LD built from the job's fields and the defaults above.

Publishing ​

TagPublishes
company.configconfig/company.php
company.componentsblock definitions, Livewire components and views
company.blueprintsJobs.php, Members.php, Team.php to app/Blueprints

Verifying ​

Add a job and open its page; paste the URL into Google's Rich Results Test, it should recognise a JobPosting. If the address is missing from the result, set the COMPANY_JOBS_ADDRESS_* defaults.