update owliver skill

This commit is contained in:
2026-08-14 17:33:16 +05:30
parent cccada9bd2
commit 4fdfb90326
58 changed files with 8015 additions and 1339 deletions

View File

@@ -8,6 +8,7 @@ import {
PositionCustomRequirements, PositionOverview, PositionRequirements,
} from '@/components/krow/PositionDetails';
import { workforceStatusFor } from '@/lib/workforce';
import { SkillSurface } from '@/components/skills/SkillSurface';
import { MatchedCandidates } from '@/components/krow/MatchedCandidates';
import { base44 } from '@/api/base44Client';
import CandidateCard from '@/components/krow/CandidateCard';
@@ -284,6 +285,8 @@ export default function PositionDetail() {
‹ Back to Positions
</button>
<SkillSurface page="positions" placement="after-header" context={{ position: job }} />
{/* Header Card */}
<div className="bg-white border border-[#E5E7EB] rounded-2xl p-6">
<div className="flex items-start justify-between gap-4 flex-wrap">
@@ -410,6 +413,13 @@ export default function PositionDetail() {
)}
</div>
{/* Extension points. A skill definition naming `positions` and one of
these placements renders here; with none registered they render
nothing at all. No page code changes when a skill is added. Every
placement the vocabulary offers for this surface is mounted, so a
valid definition can never point at a slot that does not exist. */}
<SkillSurface page="positions" placement="after-position-summary" context={{ position: job }} />
<WorkforceStatus workforce={workforce} job={job} />
{/* Which people can actually do this work, scored against the position's
@@ -459,6 +469,8 @@ export default function PositionDetail() {
</div>
)}
<SkillSurface page="positions" placement="before-candidates" context={{ position: job }} />
{/* Applicants */}
<div className="bg-white border border-[#E5E7EB] rounded-2xl p-6">
<div className="flex items-center justify-between mb-4">
@@ -497,6 +509,9 @@ export default function PositionDetail() {
)}
</div>
<SkillSurface page="positions" placement="after-candidates" context={{ position: job }} />
<SkillSurface page="positions" placement="before-footer" context={{ position: job }} />
{/* Modals */}
{interviewApp && <AIInterviewModal open={true} onClose={() => setInterviewApp(null)} application={interviewApp} job={job} />}
{scheduleApp && <ScheduleInterviewModal open={true} onClose={() => setScheduleApp(null)} application={scheduleApp} />}