← ClaudeAtlas

apply-to-offerlisted

Turn a job offer Renaud found himself into a CV and a logged candidature, in one step. Give it a LinkedIn URL or a job id: it reads the job description via read-job-offer, checks the offer is not already in the vault, and spawns the cv-log-worker agent, which runs the comp gate and the qualitative role gate, generates the 1-page PDF CV and logs the candidature as "📝 À postuler". This is the daytime counterpart of the morning-briefing fan-out — same worker, same output, manual trigger. Use when Renaud says "postule à cette annonce", "génère le CV pour", "je veux postuler", "prépare ma candidature", or simply pastes a `linkedin.com/jobs/view/` URL and asks for a CV. It never submits an application and never writes a cover letter.
BluegReeno/renaud-marketplace · ★ 0 · AI & Automation · score 63
Install: claude install-skill BluegReeno/renaud-marketplace
# Apply To Offer — Skill Instructions ## What this skill does One offer in, one CV and one logged candidature out — for an offer Renaud found during the day rather than in the morning digest. It is deliberately **thin**. It owns no judgement: `read-job-offer` reads, `cv-log-worker` decides and produces, `log-application` records. Its value is being a trigger and a dedup gate. Anything else it starts doing is duplication of the morning path, which is the exact drift this skill exists to prevent. ## Step 1 — Resolve what Renaud pasted Accept any of: a `linkedin.com/jobs/view/<id>` URL, a search URL carrying `currentJobId=<id>`, a bare numeric `job_id`, or a URL on another job board. - **LinkedIn** → extract the `job_id` and build `JOB_URL` as `https://www.linkedin.com/jobs/view/<job_id>`. - **Another board** → keep the URL as `JOB_URL`. `read-job-offer` only covers LinkedIn, so say plainly that the JD cannot be auto-read, and ask Renaud to paste the offer text. Do **not** invent a JD from the page title. - **Nothing resolvable** → ask for the link. Never guess an id. ## Step 2 — Read the offer Invoke `Skill(read-job-offer)` with the resolved `job_id` or URL. Keep `title`, `company`, `jd_text`, `freshness` and `applicant_count`. If it returns `status: unavailable`, stop and say so, naming the reason it gave. Offer the fallback: Renaud pastes the offer text, and this skill passes it through as `JD_TEXT`. Never continue with a partial read. ## Step 3 — Dedup agains