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
| Variable | Default | Panel | Effect |
|---|---|---|---|
COMPANY_ALLOW_BLOCKS | false | no | Show the block editor on member profiles. |
MEMBER_OVERVIEW_PAGE | unset | yes | Page that carries the members block; /{locale}/company/members redirects there. |
TEAM_OVERVIEW_PAGE | unset | yes | Page that carries the team block. |
JOBS_OVERVIEW_PAGE | unset | yes | Page that carries the jobs block; /{locale}/company/jobs redirects there. |
COMPANY_JOBS_ADDRESS_STREET, _POSTAL_CODE, _CITY, _REGION, _COUNTRY | country CH | no | Job location used in the JobPosting data when a job has no address of its own. |
COMPANY_JOBS_ORGANIZATION_LOGO | unset | no | Logo URL for the hiring organisation in the JobPosting data. |
COMPANY_JOBS_DEFAULT_EMPLOYMENT_TYPE | FULL_TIME | no | schema.org employment type when a job sets none. |
COMPANY_JOBS_DEFAULT_SALARY_CURRENCY | CHF | no | Currency 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
| Block | Component | Fields |
|---|---|---|
| Alle Mitarbeiter | company.members | title |
| Team | company.team | title, a team to show |
| Jobs | company.jobs | title |
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
| Tag | Publishes |
|---|---|
company.config | config/company.php |
company.components | block definitions, Livewire components and views |
company.blueprints | Jobs.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.