Factory catalogus
Modules en eigenaarschap
Totaal
83 modules
71 uit Miro/PDF, 12 Hostinger-foundation.
Geimplementeerd
7
Werkend of zichtbaar in de huidige Control Room.
Regel
Owner eerst
Elke Codex-run zoekt eerst module, code-owner en niet-eigenaar voordat er gebouwd wordt.
| Module | Status | AI/rule | Eigenaar | Code-owner | Next build step |
|---|---|---|---|---|---|
| 03-import 2 modules | |||||
| 03-import/google-sheet-source Google Sheet Source | implemented-visible | rule-heavy | Keep source identity, tab mapping and no-write staging visible. Niet: Profile meaning, vacancy parsing, matching, scoring. | _private/sheet_import_* plus _private/pages/import.php |
Keep as foundation; do not turn old derived fields into canonical truth. |
| 03-import/vacancy-discovery-profiles Vacancy Discovery Profiles | implemented-visible | Rule-heavy with optional AI-assisted query expansion after review | Define which real vacancies should be searched for and when, before any source capture or extraction. Niet: Fetch LinkedIn pages Scrape websites Parse vacancy text Normalize requirements Match profile | src/modules/03-import/vacancy-discovery-profiles |
Use the live Discovery page for manual/email/export/API-approved source capture; persist saved profiles only after the MVP proves useful. |
| 04-profile 8 modules | |||||
| 04-profile 04 Profile | planned | Rule-heavy with AI-assisted evidence cleanup | Build and maintain the user's profile-side truth. Niet: Vacancy parsing Vacancy matching Scoring UI editing screens | src/modules/04-profile |
Decide which existing profile fields are canonical. |
| 04-profile/profile-data-model Profile Data Model | planned | Rule-heavy | Define the canonical profile data shape. Niet: Vacancy data model Evidence matching UI form design | src/modules/04-profile/profile-data-model |
Select keep/rewrite/archive profile fields. |
| 04-profile/profile-evidence Profile Evidence | planned | Rule-heavy with AI-assisted cleanup | Represent proof that the profile can satisfy requirements. Niet: Vacancy requirements Match verdicts Scoring | src/modules/04-profile/profile-evidence |
Define evidence levels and source requirements. |
| 04-profile/profile-taxonomy Profile Taxonomy | planned | Rule-heavy | Define profile concepts and aliases. Niet: Vacancy taxonomy mapping Match scoring Extraction | src/modules/04-profile/profile-taxonomy |
List canonical profile taxonomy fields. |
| 04-profile/profile-capabilities Profile Capabilities | planned | Rule-heavy with optional AI-assisted grouping | Group evidence into reusable capability bundles. Niet: Vacancy requirements Offer preferences Recommendation scoring | src/modules/04-profile/profile-capabilities |
Define capability bundle contract. |
| 04-profile/profile-import Profile Import | implemented-visible | rule-heavy | Show profile rows and preserve source references before canonical copy. Niet: Vacancy import, matching, scoring, irreversible profile meaning changes. | _private/profile_review_* plus _private/pages/profile.php |
Keep profile visible/editable; later map selected records to canonical profile objects. |
| 04-profile/profile-editor Profile Editor | implemented-basic | rule-heavy | Let Stefan correct profile staging facts safely. Niet: Vacancy extraction, matching, scoring. | _private/profile_review_staging.php plus _private/pages/profile.php |
Expand only when a specific profile correction workflow needs it. |
| 04-profile/profile-preferences Profile Preferences | planned | Rule-heavy | Represent what the user wants or cannot accept. Niet: Vacancy offer extraction Capability evidence Final scoring | src/modules/04-profile/profile-preferences |
Separate hard boundaries from soft preferences. |
| 05-vacancy 10 modules | |||||
| 05-vacancy 05 Vacancy | planned | Rule-heavy with AI-assisted cleanup | Store and structure vacancy-side truth before extraction and matching. Niet: Profile evidence AI prompt design Matching verdicts Scoring | src/modules/05-vacancy |
Define canonical vacancy input object. |
| 05-vacancy/vacancy-source Vacancy Source | implemented-tested | Rule-heavy | Capture the original vacancy source without interpretation. Niet: Extract sections Normalize content Match profile | src/modules/05-vacancy/vacancy-source/VacancySource.php |
Use this as the intake boundary for staged sheet vacancies and future compliance-safe discovery/import records before raw-vacancy-parsing. |
| 05-vacancy/vacancy-identity Vacancy Identity | planned | AI-assisted with rule validation | Represent who/what the vacancy is for. Niet: Requirements Offer details Matching verdicts | src/modules/05-vacancy/vacancy-identity |
Define identity fields and confidence rules. |
| 05-vacancy/vacancy-structure Vacancy Structure | planned | AI-assisted | Store the structural map of the vacancy. Niet: Extract individual requirements Normalize salary Match profile evidence | src/modules/05-vacancy/vacancy-structure |
Define section names and fallback behavior. |
| 05-vacancy/vacancy-offer Vacancy Offer | planned | Mixed: AI-assisted extraction, rule-heavy normalization | Represent what the vacancy offers. Niet: Profile preferences Preference fit verdict Capability match | src/modules/05-vacancy/vacancy-offer |
Define offer fact schema. |
| 05-vacancy/vacancy-signals Vacancy Signals | planned | AI-assisted | Represent derived vacancy signals used later in matching/review. Niet: Final scoring Human review decision Requirement extraction | src/modules/05-vacancy/vacancy-signals |
Define first signal list and source quote requirements. |
| 05-vacancy/vacancy-import Vacancy Import | implemented-visible | rule-heavy | Show source vacancy data and legacy analysis fields as reference-only material. Niet: External source discovery, section extraction, requirement extraction, matching, scoring. | _private/vacancy_review_view.php plus _private/pages/vacancies.php |
Copy only raw/source identity fields into canonical vacancy source when the intake contract is approved. |
| 05-vacancy/vacancy-editor Vacancy Editor | planned | rule-heavy | Let Stefan maintain vacancy source records before parsing. Niet: AI parsing, normalization, scoring, application output. | _private/pages/vacancies.php plus vacancy source adapter |
Design guarded add/edit/archive after intake contract is stable. |
| 05-vacancy/requirement-records Requirement Records | planned | Rule-heavy with AI-assisted candidate generation | Store and govern vacancy requirements as matchable records. Niet: Profile evidence Match verdicts Scoring | src/modules/05-vacancy/requirement-records |
Define requirement candidate versus final requirement contract. |
| 05-vacancy/requirement-governance Requirement Governance | planned | Rule-heavy | Track whether requirement records are safe to use. Niet: Requirement extraction Profile matching Scoring | src/modules/05-vacancy/requirement-governance |
Define allowed requirement statuses. |
| 06-extraction 9 modules | |||||
| 06-extraction 06 Extraction | implemented-tested-content-pending | AI-heavy with rule validation | Turn raw vacancy text into structured candidate facts. Niet: Normalize extracted values Map to taxonomy Match against profile Score recommendation | src/modules/06-extraction |
Run final 10-15 vacancy content-acceptance sample; do not expand into discovery, normalization, taxonomy, matching or scoring. |
| 06-extraction/raw-vacancy-parsing Raw Vacancy Parsing | implemented-tested-content-pending | Rule-heavy | Prepare raw text for downstream extraction without interpretation. Niet: Section classification Requirement extraction Normalization | src/modules/06-extraction/raw-vacancy-parsing |
Keep behavior stable while the 89-vacancy extraction scope awaits content acceptance. |
| 06-extraction/section-extraction Section Extraction | implemented-tested-content-pending | AI-assisted | Split vacancy text into meaningful sections. Niet: Extract individual requirements Normalize text Match profile | src/modules/06-extraction/section-extraction |
Keep section contract stable for the final acceptance sample and future normalization handoff. |
| 06-extraction/requirement-extraction Requirement Extraction | implemented-tested-content-pending | AI-assisted | Find candidate requirements in vacancy text. Niet: Salary/benefits Requirement normalization Profile matching Scoring | src/modules/06-extraction/requirement-extraction |
Keep requirement candidates stable for the final acceptance sample; normalization and strictness remain downstream. |
| 06-extraction/offer-extraction Offer Extraction | implemented-tested-content-pending | AI-assisted + rule extraction for obvious patterns | Find what the vacancy offers. Niet: Normalize salary Preference matching Scoring | src/modules/06-extraction/offer-extraction |
Keep offer output stable for the final acceptance sample; salary/work-mode normalization remains downstream. |
| 06-extraction/role-signal-extraction Role Signal Extraction | implemented-tested-content-pending | AI-assisted | Find role-related signals in vacancy text. Niet: Taxonomy mapping Capability matching Scoring | src/modules/06-extraction/role-signal-extraction |
Keep task/role-signal output stable for the final acceptance sample; taxonomy and matching remain downstream. |
| 06-extraction/risk-signal-extraction Risk Signal Extraction | planned | AI-assisted with strict rule validation | Find risk signals that may block or weaken fit. Niet: Final hard disqualifier decision Profile identity/legal evidence Scoring | src/modules/06-extraction/risk-signal-extraction |
Keep planned as a distinct module until legal/work-authorization and language-risk source examples are explicitly scoped. |
| 06-extraction/source-quote-capture Source Quote Capture | planned | Rule-heavy | Ensure every extracted claim can be traced to vacancy text. Niet: Decide match fit Normalize facts Create new facts without source | src/modules/06-extraction/source-quote-capture |
Promote only if the current embedded quote preservation needs a standalone contract; do not duplicate extraction logic. |
| 06-extraction/extraction-validation Extraction Validation | implemented-tested-content-pending | Rule-heavy with optional AI-assisted review | Check whether extracted facts are supported and correctly categorized. Niet: Normalize accepted facts Match profile Score vacancy | src/modules/06-extraction/extraction-validation |
Keep validation stable during final acceptance; only concrete mismatches should create repair tasks. |
| 07-normalization 8 modules | |||||
| 07-normalization 07 Normalization | planned | Mostly rule-heavy, AI-assisted where language is ambiguous | Convert extracted facts into consistent comparable values. Niet: Find facts in raw text Map concepts to taxonomy Make match verdicts Score vacancy | src/modules/07-normalization |
Start with salary-normalization and strictness-normalization contracts. |
| 07-normalization/job-title-normalization Job Title Normalization | planned | Rule-heavy with AI-assisted ambiguous cases | Normalize title text into comparable role identity. Niet: Extract title from raw text Match capabilities Score role fit | src/modules/07-normalization/job-title-normalization |
Define title cleanup examples. |
| 07-normalization/requirement-text-normalization Requirement Text Normalization | planned | AI-assisted | Clean requirement wording without changing meaning. Niet: Find new requirements Classify strictness Match evidence | src/modules/07-normalization/requirement-text-normalization |
Define preserve-meaning rules. |
| 07-normalization/work-mode-normalization Work Mode Normalization | planned | Rule-heavy | Normalize how and where the work is performed. Niet: Preference match decision Location normalization Scoring | src/modules/07-normalization/work-mode-normalization |
Define work mode enum. |
| 07-normalization/salary-normalization Salary Normalization | planned | Rule-heavy | Convert salary mentions into comparable salary facts. Niet: Extract benefits Preference fit Recommendation tier | src/modules/07-normalization/salary-normalization |
Define salary contract and edge cases. |
| 07-normalization/location-normalization Location Normalization | planned | Rule-heavy with optional external lookup later | Normalize place and mobility requirements. Niet: Work mode classification Preference fit Scoring | src/modules/07-normalization/location-normalization |
Define location fields. |
| 07-normalization/requirement-type-normalization Requirement Type Normalization | planned | Mixed | Classify what kind of requirement each record is. Niet: Determine strictness Match profile evidence Score fit | src/modules/07-normalization/requirement-type-normalization |
Define first requirement type list. |
| 07-normalization/strictness-normalization Strictness Normalization | planned | AI-assisted with rule guardrails | Determine how strict a requirement appears to be. Niet: Profile evidence match Final disqualification Scoring | src/modules/07-normalization/strictness-normalization |
Define strictness labels and examples. |
| 08-taxonomy 8 modules | |||||
| 08-taxonomy 08 Taxonomy | planned | Rule-heavy with controlled AI-assisted alias mapping | Map normalized facts to shared meaning and categories. Niet: Extract raw facts Judge profile fit Calculate score UI display | src/modules/08-taxonomy |
Define core concept and alias model. |
| 08-taxonomy/concepts Concepts | planned | Rule-heavy | Represent normalized meaning units. Niet: Extract text Match profile Score fit | src/modules/08-taxonomy/concepts |
Define initial concept schema. |
| 08-taxonomy/aliases Aliases | planned | AI-assisted with review for ambiguity | Map alternative names to canonical concepts. Niet: Invent new match evidence Override source quotes Score confidence alone | src/modules/08-taxonomy/aliases |
Define alias confidence rules. |
| 08-taxonomy/entity-types Entity Types | planned | Rule-heavy | Classify concepts as skill/tool/domain/language/education/etc. Niet: Requirement strictness Profile evidence match Scoring | src/modules/08-taxonomy/entity-types |
Define entity type enum. |
| 08-taxonomy/requirement-dimensions Requirement Dimensions | planned | Rule-heavy | Describe what dimension each requirement belongs to. Niet: Extract requirement text Match profile evidence Scoring | src/modules/08-taxonomy/requirement-dimensions |
Define dimension list. |
| 08-taxonomy/skill-tool-domain-mapping Skill Tool Domain Mapping | planned | AI-assisted with rule validation | Connect vacancy terms to comparable profile taxonomy. Niet: Decide evidence level Calculate score Extract new requirements | src/modules/08-taxonomy/skill-tool-domain-mapping |
Define mapping output format. |
| 08-taxonomy/or-groups Or Groups | planned | AI-assisted with rule validation | Represent alternative ways to satisfy a requirement. Niet: Profile evidence matching Score alternatives Extract requirements | src/modules/08-taxonomy/or-groups |
Define OR/component model. |
| 08-taxonomy/confidence-rules Confidence Rules | planned | Rule-heavy | Set confidence for taxonomy decisions. Niet: Extraction validation Match verdict confidence Scoring | src/modules/08-taxonomy/confidence-rules |
Define confidence scale. |
| 09-matching 7 modules | |||||
| 09-matching 09 Matching | planned | Mixed: rule-heavy for hard gates, AI-assisted for explanation | Compare vacancy requirements and offer against profile evidence and preferences. Niet: Extract vacancy text Normalize salary/location Calculate final recommendation score Human review decision | src/modules/09-matching |
Define evidence-first matching contract. |
| 09-matching/evidence-vs-requirements Evidence Vs Requirements | planned | Rule-heavy with AI-assisted explanation | Determine whether profile evidence supports vacancy requirements. Niet: Create profile evidence Change requirements Score recommendation | src/modules/09-matching/evidence-vs-requirements |
Define no-positive-match-without-proof test cases. |
| 09-matching/preferences-vs-offer Preferences Vs Offer | planned | Rule-heavy | Compare vacancy offer against user preferences and boundaries. Niet: Capability evidence Salary extraction Final score | src/modules/09-matching/preferences-vs-offer |
Define hard versus soft preference behavior. |
| 09-matching/match-verdicts Match Verdicts | planned | Rule-heavy | Convert comparison results into explicit verdicts. Niet: Compute final score Human review decision Generate source evidence | src/modules/09-matching/match-verdicts |
Define verdict labels. |
| 09-matching/evidence-levels Evidence Levels | planned | Rule-heavy | Classify strength of proof. Niet: Requirement extraction Taxonomy alias mapping Recommendation score | src/modules/09-matching/evidence-levels |
Define evidence level scale. |
| 09-matching/confidence Confidence | planned | Rule-heavy | Estimate reliability of match results. Niet: Taxonomy confidence rules Final scoring weights Human decision | src/modules/09-matching/confidence |
Define confidence inputs and thresholds. |
| 09-matching/gaps-and-mismatches Gaps And Mismatches | planned | AI-assisted explanation with rule guardrails | Explain what does not fit or is missing. Niet: Calculate score Create review decision Change evidence | src/modules/09-matching/gaps-and-mismatches |
Define gap categories. |
| 10-scoring 7 modules | |||||
| 10-scoring 10 Scoring | planned/future-gated | Rule-heavy | Turn match results into explainable ranking and recommendation. Niet: Create evidence Override hard disqualifiers Human decision Review feedback learning | src/modules/10-scoring |
Do not build until matching contract is tested. |
| 10-scoring/capability-score Capability Score | planned/future-gated | Rule-heavy | Score how well capabilities satisfy requirements. Niet: Preference score Risk penalties Evidence creation | src/modules/10-scoring/capability-score |
Wait until evidence matching is tested. |
| 10-scoring/preference-score Preference Score | planned/future-gated | Rule-heavy | Score how well the vacancy fits user preferences. Niet: Capability score Offer extraction Hard disqualification | src/modules/10-scoring/preference-score |
Wait until preference matching is tested. |
| 10-scoring/practical-fit Practical Fit | planned/future-gated | Rule-heavy | Score practical feasibility. Niet: Capability evidence Salary normalization Recommendation tier | src/modules/10-scoring/practical-fit |
Define practical fit dimensions later. |
| 10-scoring/risk-penalties Risk Penalties | planned/future-gated | Rule-heavy | Apply penalties for known risks. Niet: Create risk signals Hard disqualification Human decision | src/modules/10-scoring/risk-penalties |
Define after risk-signal extraction exists. |
| 10-scoring/hard-disqualifiers Hard Disqualifiers | planned/future-gated | Rule-heavy | Apply non-negotiable rejection conditions. Niet: Infer legal profile evidence from skills Override human decision Extract risk signals | src/modules/10-scoring/hard-disqualifiers |
Define after legal/work authorization module is clear. |
| 10-scoring/recommendation-tier Recommendation Tier | planned/future-gated | Rule-heavy | Turn scoring components into final recommendation category. Niet: Individual score calculation Human approval/rejection UI rendering | src/modules/10-scoring/recommendation-tier |
Build only after all scoring components exist. |
| 11-review 7 modules | |||||
| 11-review 11 Review | planned | AI-assisted explanation + rule-heavy flags | Support human validation and decision-making. Niet: Generate raw match evidence Change scoring rules Import vacancy data Profile editing | src/modules/11-review |
Define review flag taxonomy. |
| 11-review/review-flags Review Flags | planned | Rule-heavy | Mark what needs human attention. Niet: Change match result Calculate score Render UI | src/modules/11-review/review-flags |
Define review flag categories. |
| 11-review/review-reasons Review Reasons | planned | AI-assisted explanation | Explain why review is needed. Niet: Make final decision Create new evidence Change scoring | src/modules/11-review/review-reasons |
Define reason format. |
| 11-review/human-validation Human Validation | planned | Rule-heavy | Capture human validation outcomes. Niet: Automated match logic Scoring formula Profile editing | src/modules/11-review/human-validation |
Define validation states. |
| 11-review/decision-notes Decision Notes | planned | AI-assisted drafting, human-owned final text | Store rationale for decisions. Niet: Make automated decisions Change evidence Calculate scores | src/modules/11-review/decision-notes |
Define decision note schema. |
| 11-review/approval-rejection Approval Rejection | planned | Rule-heavy | Represent final human decision state. Niet: Scoring Matching Vacancy extraction | src/modules/11-review/approval-rejection |
Define final decision states. |
| 11-review/learning-feedback Learning Feedback | planned | AI-assisted analysis, human-approved changes | Capture learnings for future rule/prompt updates. Niet: Automatically rewrite rules Silently change prompts Override module contracts | src/modules/11-review/learning-feedback |
Define feedback record format. |
| 12-output 4 modules | |||||
| 12-output 12 Output | planned | Rule-heavy | Prepare engine output for UI/API display. Niet: Frontend layout Business logic Database writes AI prompts | src/modules/12-output |
Define review view model after matching/review contracts. |
| 12-output/review-view-models Review View Models | planned | Rule-heavy | Shape engine output for review screens. Niet: Frontend layout Business logic Database writes | src/modules/12-output/review-view-models |
Wait until review package contract exists. |
| 12-output/decision-output Decision Output | planned | Rule-heavy | Prepare decision data for UI/API/export. Niet: Make final decision Render UI Change scoring | src/modules/12-output/decision-output |
Define after decision states exist. |
| 12-output/dashboard-status Dashboard Status | planned | Rule-heavy | Summarize where each vacancy is in the system. Niet: Run pipeline steps Make match decisions Render dashboard UI | src/modules/12-output/dashboard-status |
Define status labels. |
| 13-public-site 5 modules | |||||
| 13-public-site 13 Public Site | concept-preview | Rule-heavy UI with future AI-assisted profile upload | Expose stable vacancies to job seekers and employers without changing pipeline truth. Niet: Extraction logic Matching verdicts Scoring Workbook writes | public-site/ plus jobs.php redirect |
Replace concept read-model with explicit publication queue and auth modules. |
| 13-public-site/public-job-board Public Job Board | concept-preview | Rule-heavy | Render search, filters, vacancy cards and detail tabs. Niet: Decide whether a vacancy is public-ready | public-site/index.php, public-site/modules/vacancy_repository.php and public-site/assets/ |
Add URL routing for individual vacancy detail pages. |
| 13-public-site/publication-queue Publication Queue | planned | Rule-heavy | Gate which stable vacancies are visible on the public job board. Niet: Run extraction audits or alter source vacancy text | _private/public_site_view.php |
Design database table and Control Room publish/unpublish actions. |
| 13-public-site/candidate-account Candidate Account | concept-session | Future AI-assisted | Own public candidate account workflows. Niet: Convert uploaded CV into profile evidence without approval gates | public-site/modules/accounts.php and public-site/index.php |
Harden activation mail, password or magic-link policy, and profile evidence gates before production user data. |
| 13-public-site/employer-intake Employer Intake | planned | Rule-heavy with optional AI cleanup | Let employers submit vacancies with separated intro, tasks, requirements and offer fields. Niet: Automatically publish unreviewed employer vacancies | public-site/modules/accounts.php and public-site/index.php |
Add moderation queue and publish gate before employer vacancies become public. |
| platform 3 modules | |||||
| src/app App | planned | Rule-heavy | Expose the system to users and APIs. Niet: Domain logic Extraction Matching Scoring Prompt design | src/app |
Wait until core pipeline contracts exist. |
| src/pipeline Pipeline | planned | Rule-heavy orchestration | Call modules in the correct order. Niet: Implement module business logic Call OpenAI directly Write UI logic | src/pipeline |
Define pipeline step contract. |
| src/shared Shared | planned | Rule-heavy | Provide tiny stable utilities and shared types. Niet: Domain rules Prompt logic Database access Matching logic | src/shared |
Keep empty until a real repeated generic need appears. |
| adapters 5 modules | |||||
| adapters/database Database | planned | Rule-heavy | Talk to the database. Niet: Domain decisions Extraction logic Matching logic | src/adapters/database |
Define storage model after data contracts. |
| adapters/openai Openai | planned | AI service layer | Perform AI calls and enforce prompt/schema/logging discipline. Niet: Own prompt content Make domain decisions without module validation Store final business records | src/adapters/openai |
Define AI call wrapper contract. |
| adapters/google-sheets-import Google Sheets Import | planned | Rule-heavy | Import legacy/current sheet data safely. Niet: Treat every old field as canonical Rewrite profile/vacancy meaning Run matching | src/adapters/google-sheets-import |
Define keep/rewrite/archive import categories. |
| adapters/job-source-capture Job Source Capture | implemented-visible | Rule-heavy | Access allowed job-source channels and hand raw captured vacancy text to the vacancy source boundary. Niet: Bypass source terms Scrape LinkedIn automatically Extract requirements Normalize facts Match or score | src/adapters/job-source-capture |
Keep manual paste/export and email-alert ingestion live; require explicit approval before any LinkedIn API or browser-assisted route. |
| adapters/export-backup Export Backup | planned | Rule-heavy | Export and backup system data. Niet: Data interpretation UI display Matching/scoring | src/adapters/export-backup |
Define later after database model. |