rules.yaml defines what you accept and what gets rejected — automatically. Any AI agent that evaluates an opportunity against your card must check this file before proceeding. Rules are not suggestions; compliant agents treat them as hard constraints.
Engagement types you are open to. Valid values: permanent, contract, fractional, advisory, internship. Agents must reject any opportunity whose type is not in this list.
Industries you will not work in. Any opportunity from a company in a blocked industry is automatically rejected — for example "gambling", "weapons", "tobacco".
When an agent evaluates an opportunity against your card, it runs the following checks in order:
Engagement type check — if the opportunity’s type is not in engagement.allowed_types, the agent returns REJECT.
Remote policy check — if the role requires on-site work and your policy is remote_only, the agent returns REJECT.
Compensation check — if the offered compensation is below engagement.compensation.minimum_base_eur, the agent returns REJECT.
Industry filter — if the company’s industry appears in filters.blocked_industries, the agent returns REJECT.
Stack keyword check — if matched keywords fall below filters.soft_reject.weak_stack_overlap_below, the agent returns SOFT_REJECT for manual review.
If all checks pass, the agent returns ACCEPT and may proceed to the interview handoff step.
Agents that bypass your rules.yaml constraints and initiate contact without a valid ACCEPT verdict are violating the Scoutica Protocol. If you encounter this, report it to the agent’s operator. Compliant agents never skip the rules check.
Use scoutica validate ./my-card/ to confirm your rules.yaml is well-formed and passes schema validation before publishing.