# CV & application materials — to update Audit date: 2026-07-27. Scope: `linkme/cv/`, `linkme/motivation*.md`, `rafapolo/` portfolio + `rafapolo/job/`. ## Why ~270 applications over 18 months (≈15/month, mostly LinkedIn Easy Apply) with no offers. Volume was never the problem. Three causes found: 1. **The CV omits the entire target stack.** Keyword audit of `Rafael_Polo_CV_EN_2026.pdf`: | Keyword | Count | |---|---| | TypeScript | 0 | | React | 0 | | Rails | 0 | | PostgreSQL | 0 | | LLM / RAG / LangChain | 0 | | Rodado | 0 | | Staff / Principal | 0 | | `98%` (best metric) | 0 | Skills line says "Javascript Frameworks" instead of `React` / `TypeScript` — no ATS or recruiter searches that string. Space is spent on `Slack`, `UX`, `UML`, `MVC`. 2. **The CV pitches a security-ops job.** Profile paragraph leads with *"operating production infrastructure … security patching, vulnerability remediation, and system hardening under strict SLAs"* — likely written for `job/applications/helvetia/` (Cyber Hire). Every Staff/Principal software, AI and platform application since has carried that framing. Tell: the HCLTech *Application Support Engineer* posting is a good match for this CV. 3. **Two different CVs are in circulation, with conflicting employment dates.** | Source | Swisscom start | Date | |---|---|---| | `rafapolo/rafael-polo-cv.pdf` (served at extrapolo.com) | 02/2024 | May 13 | | `rafapolo/job/cv/Rafael_Polo_CV_EN_2026.pdf` (what gets sent) | 03/2024 | Jul 24 | | `linkme/cv/polo.md` | 2024, no month | — | Secondary: LinkedIn Easy Apply is the lowest-conversion channel for Staff/Principal roles (300–1000 applicants/posting; recruiters review the first ~20–30). Swiss senior roles fill via company portals, recruiters and referrals. --- ## Priority 1 — the CV - [ ] **new** `rafapolo/job/cv/cv-source.md` — single canonical source; both PDF and HTML generated from it. No source of truth today, which is how three versions drifted. - [ ] `rafapolo/job/cv/Rafael_Polo_CV_EN_2026.pdf` — rebuild: - [ ] New profile line: platform / data / AI engineering. Drop the security-ops framing. - [ ] Skills as literal searchable strings: `Python · TypeScript · React · Node.js · Ruby on Rails · PostgreSQL · Docker · Kubernetes · AWS · Terraform · CI/CD · LLM · RAG · LangChain` - [ ] Remove `Slack`, `UX`, `Modeling with UML`, `MVC system architecture`, `Javascript Frameworks` - [ ] Restore metrics: 98% processing reduction, CI/CD 14 → 4 min - [ ] Add **Rodado** (~730 datasets, 1TB Parquet, DuckDB, NL-to-SQL over MCP) — currently absent. Keep HelvetiScan (already appears 3×). - [ ] `Swiss B-Visa` → `Swiss B permit` (correct term: *Aufenthaltsbewilligung B*) - [ ] Compress ExtraPolo `01/2008–01/2023` — a 15-yr freelance block overlapping two employed roles reads as unverifiable to Swiss HR. One line: "Independent consulting (40+ projects)". - [ ] Keep single-column layout so ATS text extraction stays clean (verify with `pdftotext file.pdf -` — name and contact block currently land mid-document). - [ ] `rafapolo/rafael-polo-cv.pdf` — replace with a copy of the rebuilt PDF. Currently a stale May 13 file with a different Swisscom start date. - [ ] `rafapolo/curriculum.html` — same profile/skills/keyword fixes so the web CV matches the PDF. Header/`