mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 08:36:25 +00:00
* feat(08): add application-form fields as a third /apply artifact /apply produces a CV and a cover letter. Many applications need a third thing: free-text typed into a portal. Graduate programs, large-employer ATS systems and startup forms ask for self-introductions, structured project entries, motivation questions and pitches under a hard character limit - none of which either document covers, and all of which the interviewer reads alongside the CV. Governing rule: a form field selects from what is already true and arranges it for the question asked. It never introduces a new claim. All accuracy rules from 03 and 05 apply unchanged. Covers three field types (self-introduction, structured project entries, hard character limits), the output format (a plain .txt the candidate pastes from, with counts stated and internal NOTE TO SELF blocks marked as not-for-pasting), and a verification checklist. Two places where form fields are stricter than a CV, because both are easy to get wrong: - Project entries carry a name and a role, so they read as ownership of the whole project in a way a terse CV bullet does not. Contributory work has to be scoped inside the description. - Project dates are the dates of the project, not of the employment. Narrowing them is more accurate where the candidate can say when the project started - but never invent a boundary to improve the ratio. Registers the file in SKILL.md (framework_version 1.0.1 -> 1.1.0) and in the FRAMEWORK_FILES list in tools/check_upstream_updates.py, so it is covered by the update check like every other framework file. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fixup(08,apply): wire as optional /apply offer; align grounding to three-source union - apply.md Step 6: offer the third artifact after CV/cover letter are produced, mirroring the /outcome house pattern for optional capabilities (offer, act only on yes, default output unchanged). - 08-application-forms.md: ground claims against the framework's 01-candidate-profile.md + master CV + CLAUDE.md union (per #185) instead of only 01, in both the governing rule and the checklist. Per MadsLorentzen review on PR #212. Rebase onto merged #210 (the tenure-check reference this file cites) still pending — #210 hasn't landed on upstream/master yet. --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
88 lines
6.0 KiB
Markdown
88 lines
6.0 KiB
Markdown
---
|
||
framework_version: 1.0.0
|
||
---
|
||
|
||
# Application Form Fields
|
||
|
||
`/apply` produces two artifacts: a CV and a cover letter. Many applications need a **third** — free-text fields typed directly into an application portal. Graduate programs, large-employer ATS systems and startup forms routinely ask for things neither document covers, under a character or word limit, in a box with no formatting.
|
||
|
||
This file governs that third artifact. It is not a document you compile; it is text the candidate pastes.
|
||
|
||
## When this applies
|
||
|
||
Trigger it whenever a posting or portal asks for any of:
|
||
|
||
- A self-introduction / personal statement / "tell us about yourself" paragraph
|
||
- Structured project entries (project name, role, start and end date, description)
|
||
- A short pitch under a hard character limit ("stand out in 140 characters", "why you, in one sentence")
|
||
- Motivation questions ("why this company", "why this program")
|
||
- Competency questions with a word cap ("describe a time you…", 200 words)
|
||
|
||
## The rule that governs everything here
|
||
|
||
**Every claim in a form field must already be defensible from the same sources the CV and cover letter are grounded against** — the union of `01-candidate-profile.md`, the master CV (`cv/main_example.tex`), and `CLAUDE.md`'s Candidate Profile section, with a claim grounded if ANY of the three supports it. The interviewer reads the form alongside the CV. A form field is not a place to introduce new claims, inflate scope, or fill space — it is a place to *select* from what is already true and arrange it for the question asked.
|
||
|
||
All accuracy rules from `05-cv-templates.md` and `03-writing-style.md` apply unchanged.
|
||
|
||
## Field type: self-introduction paragraph
|
||
|
||
Usually 100–200 words, one paragraph, no formatting.
|
||
|
||
**Structure that works:**
|
||
1. Current status — what they are doing or completing now
|
||
2. The single strongest piece of evidence, with its number and scale
|
||
3. One line of trajectory: how they got here, if a pivot or specialisation is genuinely interesting
|
||
4. What they want next, connected to this employer's actual work
|
||
|
||
**Rules:**
|
||
- **Lead with the strongest evidence, not chronology.** A career history told in order buries the best material when the strongest work is recent.
|
||
- **Write one version per role type, not one for all applications.** The same history framed for a backend role and a data role are different paragraphs. Produce both, label them, and say which goes where.
|
||
- **Tie it to this employer in the final sentence.** Generic self-introductions are the default and read as such.
|
||
- **Count the words and state the count.** Portals truncate silently. Supply a trimmed variant and name which sentence to cut first.
|
||
|
||
## Field type: structured project entries
|
||
|
||
Typically **project name, role, start date, end date, description.**
|
||
|
||
**Project name.** Give the project a descriptive name, not the employer's name — "Warehouse Inventory Forecasting Platform" is a project, "Acme Corp" is an employer. Where a client is more recognisable than the employer, name the client only if the relationship is truthful (placed on-site with, delivered to).
|
||
|
||
**Role.** The candidate's role *on that project*, which may be narrower than their job title. Do not upgrade it.
|
||
|
||
**Dates.** The dates they worked on **that project**, which are not automatically the employment dates. If a role spanned two years but the named project occupied the later part, saying so is both more accurate and avoids the low-output reading described in `05-cv-templates.md` ("Check tenure against visible output"). Only narrow the dates when the candidate can say when the project actually started — never invent a boundary to improve the ratio.
|
||
|
||
**Description.** 100–150 words: what the system did and who used it, then the hardest technical problem and how it was solved, then the outcome with its number. Supply a **~60-word short version** as well; portals vary and the candidate should not have to improvise a cut.
|
||
|
||
**Scope discipline is stricter here than on a CV.** A CV bullet can be terse enough to be ambiguous about ownership. A project entry with the candidate's name and role attached reads as ownership of the whole thing. Where they contributed rather than owned, say so inside the description.
|
||
|
||
## Field type: hard character limits
|
||
|
||
These reward **a specific situation over an adjective**. Most applicants submit adjectives — "passionate", "fast learner", "team player" — so a concrete situation stands out by contrast.
|
||
|
||
**Method:**
|
||
1. Pick the single most distinctive true thing: usually a number, an unusual combination of backgrounds, or a problem shape that maps onto the employer's own work.
|
||
2. Draft 4–6 candidates at different angles.
|
||
3. **Count characters programmatically. Do not estimate.** Over-limit text is truncated mid-word.
|
||
4. Present all candidates with counts, recommend one, and say why.
|
||
|
||
Prefer the version that **maps the candidate's problem onto the employer's problem**, where a truthful mapping exists. That is what "stand out" is actually asking for.
|
||
|
||
## Output format
|
||
|
||
Save to a plain `.txt` file the candidate can copy from, alongside their other application material for that employer. One file per employer, containing every field that employer asked for.
|
||
|
||
Include:
|
||
- A header naming the employer and the roles it covers
|
||
- Each field, labelled, with word or character counts stated
|
||
- Short variants where limits may be tighter than expected
|
||
- **`NOTE TO SELF` blocks** for scope reminders and prepared answers to questions the content invites — clearly marked as *not for pasting into the form*
|
||
- A dates quick-reference, so date fields stay consistent without re-deriving them
|
||
|
||
## Verification before handing it over
|
||
|
||
- [ ] Every factual claim traces to the union of `01-candidate-profile.md`, the master CV (`cv/main_example.tex`), and `CLAUDE.md`'s Candidate Profile section
|
||
- [ ] No claim contradicts the CV or cover letter submitted for the same role
|
||
- [ ] Ownership scoped correctly on contributory work
|
||
- [ ] Word and character counts measured, not estimated
|
||
- [ ] In-progress qualifications described as in progress
|
||
- [ ] `NOTE TO SELF` blocks clearly marked as internal
|