---
name: job-application-outreach
description: "Use when the user is applying for jobs, writing cover letters, intro emails, or reaching out to recruiters/hiring managers. Covers reading job postings, matching CV details, writing casual but compelling outreach, and avoiding common factual errors."
category: "software-development"
---

# Job Application Outreach

## Trigger
User asks for help with:
- Writing a cover letter or intro email for a job application
- Reaching out to a recruiter or hiring manager
- Tailoring their CV or experience to a specific job posting
- Preparing for a job application or interview outreach

## Workflow

0. **Assess fit honestly before investing time**
   - If the job requires a fundamentally different discipline (e.g., geospatial ML/AI vs. web backend), tell the user frankly and advise against applying.
   - If the stack is adjacent (e.g., PHP/Laravel → .NET backend), flag the gap but treat it as bridgeable with the right framing.
   - Watch for contradictory postings: some platforms (e.g., VDAB) label a role as "no experience required" while the employer's detailed profile demands senior skills. Acknowledge this tension explicitly.
   - For Belgian postings, note the user's SyntraPXL Full Stack diploma is HBO5 (professional higher education), which sits below a university/hogeschool bachelor. Some employers filter on this; others accept "gelijkwaardig door ervaring."

1. **Read the job posting carefully**
   - Note the company name, contact person, location, contract type, and required tech stack
   - Identify hard requirements (years of experience, specific languages/frameworks, language skills, on-site requirements)
   - Note any "preferred" or "plus" skills that the user might have

2. **Read the user's CV or profile before drafting**
   - If the user provides a CV via file transfer, read it fully
   - Extract: current/most recent role, tech stack, education, languages, location/commute setup, portfolio links
   - **PITFALL**: Do not assume an institution on the CV is an employer. Verify whether each entry under "Education" vs "Work Experience". Ask if unclear.
   - **PITFALL**: Do not inflate the user's experience. If they lack a required qualification (e.g., 2 years experience), address it honestly but reframe positively.

3. **Match and highlight**
   - Map the user's actual skills to the job requirements using the same keywords (e.g., "Laravel", "Angular", "MySQL")
   - If they have adjacent or self-taught skills (homelab, personal projects, GitHub), mention those to close gaps
   - Reference any specific constraints they can meet (commute, language requirements, on-site availability)

4. **Draft the email**
   - Subject line: clear and concise, e.g., "Fullstack Engineer Application - [Name]"
   - Opening: mention where they found the posting and why it caught their attention
   - **PITFALL**: Avoid generic openings like "Met enthousiasme solliciteer ik naar..." unless the user explicitly asks for them. Many hiring managers and the user find these formulaic and weak. Prefer a direct, specific hook that shows genuine interest in the company or product.
   - Body: 2-3 short paragraphs covering:
     - Relevant experience and tech stack (use posting keywords)
     - Honest framing of any gaps (e.g., "I don't have the 2 years listed, but...")
     - Logistics (location, commute, languages, availability)
     - **If referencing a project:** be specific about what it does and the stack used. Tie it directly to a job requirement. Do not use vague "check my GitHub" lines.
   - Closing: attach CV, offer to meet, include contact details
   - Tone: casual, direct, slightly nerdy. No corporate fluff. The user prefers approachable over formal.

5. **Portfolio / GitHub Integration**
   - When the user mentions a GitHub project they want referenced in application materials, check if the repo is public first (API or browser). If it returns 404, it is likely private.
   - If private, ask the user for a GitHub personal access token with `repo` (classic) or `Contents: Read` + `Metadata: Read` (fine-grained) scope. Do not proceed with detailed project claims until you have verified the repo contents.
   - If the user cannot or will not provide a token, ask them to paste key details (tech stack, architecture, outcomes) so you can reference it accurately.
   - When referencing a project in an email, be specific about what it does and the stack used — vague "check my GitHub" lines are weak. Tie the project directly to a job requirement.

6. **Moonshot / Discipline-Switch Applications**
   - If the user wants to apply to a role that is a completely different discipline (e.g., web dev → HPC datacenter engineering, web dev → geospatial ML), deliver an honest fit assessment BEFORE writing any application material.
   - Do not write a polished cover letter before confirming they understand the mismatch. The user may just be excited by the brand (SpaceX) and not realize the role is infrastructure engineering, not web development.
   - If they still want to send something, pivot the pitch toward transferable adjacent skills (homelab infrastructure, AI integrations, systems thinking) rather than pretending the web-dev stack is directly relevant.
   - Flag the "excitement trap" — applying to a famous company for the brand rather than the role fit.

7. **Follow-up on existing applications**
   - If the user applied previously with no response, assess whether enough time has passed (typically 2-4 weeks).
   - Draft a short, polite follow-up email that:
     - References the original application date
     - Reaffirms interest in the specific role and company mission
     - Adds any new accomplishments since the original application (new projects, skills, portfolio updates)
     - Proposes a concrete next step (meeting, call, visit)
     - Keeps the tone casual and direct, not desperate or pushy
   - If the company is local (e.g., Corda Campus in Hasselt), strongly encourage an **in-person drop-in visit** as the follow-up nuclear option.
   - **In-person visit script:** "Hi, I'm [Name]. I applied for [Role] [X weeks ago] and wanted to introduce myself in person. Is [Contact Person] available for a quick chat?"
   - **What to bring:** Printed CV (1 page), phone with portfolio loaded, business card or contact sheet with email/phone/LinkedIn/portfolio.
   - **If nobody is available:** Leave CV with reception, ask them to pass it to the right person.
   - In Belgian startup culture, showing up in person signals hustle and initiative — startups respect this far more than passive waiting.

8. **Company-specific career page browsing**
   - For local tech campuses (e.g., Corda Campus, Brightlands), browse individual company career pages directly.
   - Use the browser tool to navigate the company's careers site.
   - Be prepared for Cloudflare bot protection on some sites (e.g., DEME). When blocked, fall back to:
     - web_search for the company name + "junior developer" + "vacature"
     - LinkedIn Jobs filtered by company
     - Job board aggregators (Indeed, StepStone)
   - For companies on a tech campus, also check the campus job board (e.g., cordacampus.com/jobs, limburgstartup.be/jobs).

9. **LinkedIn as a discovery and outreach channel**
   - Search LinkedIn Jobs for company-specific listings that may not appear on traditional job boards.
   - Send connection requests to hiring managers, tech leads, or founders with a brief, personalized message referencing the role.
   - After connection accepted, send a short follow-up mentioning the application and proposing a chat.

10. **Compile and email job search results**
    - When the user asks for a job search summary, compile findings into a clean list with company, role, location, stack, fit rating, and action items.
    - Save the report to a markdown file in the user's home directory (e.g., `/home/thesage/corda_campus_job_hunt.md`).
    - Email the summary via the configured SMTP provider (e.g., Apple iCloud SMTP to ProtonMail).
    - Include in the email: top targets, watch list, direct outreach targets, and a week's action plan.
    - **Before sending, get explicit user confirmation if the session is interactive.** Use a lightweight prompt like: "Want me to send this to your email? Just reply 'send it'." Do not send without confirmation — the user may want to review or edit first.
    - After confirmation, send and report success.

11. **Browser-based job board browsing and bot protection**
    - For company career pages, use browser tools to navigate and extract listings.
    - Many Belgian company sites (e.g., DEME, Cegeka) use Cloudflare or similar bot detection.
    - If blocked by a "security verification" or "please verify you are not a bot" page, **do not get stuck retrying**. Immediately pivot to:
      - web_search with company name + job keywords + "vacature"
      - LinkedIn Jobs filtered by company
      - Indeed / StepStone / VDAB aggregators
    - Document the fallback path in the job search report so the user knows which sources were used.

12. **Job search report email delivery pattern**
    - When the user says "send an email for [topic] to me", they are asking for an email delivery of compiled results.
    - Draft the email body with the compiled findings.
    - Use the configured SMTP script (e.g., `/home/thesage/.hermes/scripts/send_apple_email.py`) or a direct Python SMTP call.
    - **Require explicit user confirmation before triggering the send**, especially when using `terminal` or `execute_code` to run the send script. The user must say "send", "yes", or "send it" before execution.
    - After sending, confirm delivery and provide the file path as backup.

## Reference Files
- `references/cv-facts.md` - Sage Stockmans CV quick reference with education, tech stack, projects, and application notes
- `references/job-fit-assessment-patterns.md` - Framework for honestly assessing job fit before investing time in application materials. Covers contradictory postings, diploma-level expectations, domain vs. stack mismatch, and Flemish labor market signals.
- `references/github-access-patterns.md` - How to authenticate and cite GitHub projects (including private repos) in application materials, plus the moonshot application pattern for roles outside the user's discipline.
- `references/vdab-vacancy-extraction.md` - Concrete VDAB URLs for developer roles in Hasselt/Limburg, URL extraction techniques from VDAB listing pages, and platform-specific reliability notes for Belgian job boards (Accent, Konvert, Jobat, Indeed, LinkedIn, WeAreDevelopers).
- `references/apple-smtp-delivery.md` - Apple iCloud SMTP setup for emailing job search results, cover letters, and application materials directly from the agent. Uses smtp.mail.me.com:587 with STARTTLS.

## Pitfalls
- Misidentifying education as employment (e.g., SyntraPXL is a diploma, not a current job)
- Overlooking language skills or commute logistics that are strong selling points
- Using a formal/corporate tone when the user prefers casual and nerdy
- Forgetting to address gaps head-on; recruiters appreciate honesty over surprise
- Missing portfolio links or GitHub handles the user wants to showcase

## Tone Guidance
The user explicitly prefers a **casual, nerdy, and approachable** tone for professional outreach. A contact advised this style fits their age and experience level. Avoid stiff language, buzzwords, or overly formal sign-offs. Write like a competent developer talking to another developer.
