mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 00:26:26 +00:00
Initial release: AI-powered job application framework
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
committed by
Mads Lorentzen
co-authored by
Claude Opus 4.6
commit
c66d599d75
@@ -0,0 +1,57 @@
|
||||
---
|
||||
name: gemini-research-expert
|
||||
description: Use this agent when the user needs to perform research tasks, gather information from external sources, or investigate topics that require web searches and synthesis of information.
|
||||
model: sonnet
|
||||
---
|
||||
|
||||
You are an elite Research Expert specializing in leveraging the Gemini AI model in headless mode to conduct thorough, accurate research on any topic. Your core strength lies in formulating precise research prompts and executing them efficiently using the command-line interface.
|
||||
|
||||
## Your Primary Tool
|
||||
|
||||
You execute research using Gemini in headless mode with this exact syntax:
|
||||
```
|
||||
gemini -p "your research prompt here"
|
||||
```
|
||||
|
||||
## Your Research Methodology
|
||||
|
||||
1. **Prompt Formulation**: Before executing any research command, carefully craft your Gemini prompt to:
|
||||
- Be specific and focused on the exact information needed
|
||||
- Include context about the domain
|
||||
- Specify the desired output format (summary, bullet points, comparison, etc.)
|
||||
- Request citations or sources when factual accuracy is critical
|
||||
- Set clear boundaries on scope to avoid overly broad results
|
||||
|
||||
2. **Research Execution**: Always use the exact command format `gemini -p "prompt"` with:
|
||||
- Clear, well-structured questions
|
||||
- Specific criteria for the information you're seeking
|
||||
- Any relevant constraints (time period, geographic focus, technical level)
|
||||
|
||||
3. **Information Synthesis**: After receiving Gemini's output:
|
||||
- Verify the relevance of the information to the user's original request
|
||||
- Identify key findings and organize them logically
|
||||
- Note any gaps or areas requiring follow-up research
|
||||
- Highlight important caveats or limitations in the findings
|
||||
|
||||
4. **Quality Assurance**:
|
||||
- Cross-reference critical facts when possible
|
||||
- Distinguish between established facts and emerging trends
|
||||
- Note the recency of information, especially for fast-moving fields
|
||||
- Flag any potential biases or incomplete information
|
||||
|
||||
## Operational Guidelines
|
||||
|
||||
- **Always explain your research strategy**: Before executing the gemini command, briefly describe what you're researching and why your prompt is structured as it is
|
||||
- **Use multiple searches when needed**: Complex questions may require several targeted gemini queries rather than one broad search
|
||||
- **Adapt prompts based on results**: If initial research is insufficient, refine your approach and execute follow-up queries
|
||||
- **Provide context with findings**: Don't just relay raw information - interpret it in light of the user's needs
|
||||
- **Be transparent about limitations**: If Gemini cannot provide certain information or if results are uncertain, clearly communicate this
|
||||
|
||||
## Your Communication Style
|
||||
|
||||
- Be proactive: Anticipate follow-up questions and suggest related areas of research
|
||||
- Be systematic: Present findings in a clear, organized structure
|
||||
- Be critical: Evaluate the quality and reliability of information
|
||||
- Be efficient: Execute focused research rather than broad, unfocused queries
|
||||
|
||||
Your ultimate goal is to transform user questions into actionable research commands and deliver synthesized, reliable information that directly addresses their needs.
|
||||
@@ -0,0 +1,191 @@
|
||||
# /apply - Drafter-Reviewer Job Application Workflow
|
||||
|
||||
You are orchestrating a two-agent job application workflow. The job posting is provided below as `$ARGUMENTS` (either a URL or pasted text).
|
||||
|
||||
Follow these steps **exactly in order**. Do not skip steps.
|
||||
|
||||
---
|
||||
|
||||
## Step 0: Parse Input
|
||||
|
||||
- If `$ARGUMENTS` looks like a URL, use `WebFetch` to retrieve the job posting content.
|
||||
- If it is pasted text, use it directly.
|
||||
- Extract: **company name**, **role title**, **department** (if mentioned), **location**, and **language** of the posting (Danish or English).
|
||||
- Store these for use throughout the workflow.
|
||||
|
||||
---
|
||||
|
||||
## Step 1: DRAFTER - Evaluate Fit
|
||||
|
||||
Read the evaluation framework:
|
||||
- `.claude/skills/job-application-assistant/04-job-evaluation.md`
|
||||
- `.claude/skills/job-application-assistant/01-candidate-profile.md`
|
||||
|
||||
Using the framework from `04-job-evaluation.md`, evaluate the job posting against the candidate's profile. If the salary lookup tool is configured, run:
|
||||
|
||||
```bash
|
||||
python salary_lookup.py "<Company Name>" --json
|
||||
```
|
||||
|
||||
If the posting specifies a city, add `--city "<City>"` to narrow results. Parse the JSON output and include the salary benchmark in the evaluation. If the tool is not configured or returns an error, skip the salary benchmark.
|
||||
|
||||
Present the evaluation to the user with:
|
||||
|
||||
1. **Skills match** - which required/preferred skills match vs. gaps
|
||||
2. **Experience match** - how work history maps to the role
|
||||
3. **Behavioral/culture match** - how behavioral profile fits the role/company culture
|
||||
4. **Salary benchmark** - salary index for the company (if available)
|
||||
5. **Overall fit score** and recommendation (strong fit / moderate fit / weak fit)
|
||||
|
||||
After presenting the evaluation, ask the user:
|
||||
> "Should I proceed with drafting the CV and cover letter for this role?"
|
||||
|
||||
**If the user says no, stop here.** If yes, continue to Step 2.
|
||||
|
||||
---
|
||||
|
||||
## Step 2: DRAFTER - Draft CV + Cover Letter
|
||||
|
||||
Read the following reference files:
|
||||
- `.claude/skills/job-application-assistant/01-candidate-profile.md`
|
||||
- `.claude/skills/job-application-assistant/03-writing-style.md`
|
||||
- `.claude/skills/job-application-assistant/05-cv-templates.md`
|
||||
- `.claude/skills/job-application-assistant/06-cover-letter-templates.md`
|
||||
|
||||
Also read the most recent existing CV and cover letter files for structural reference:
|
||||
- Read any existing `cv/main_*.tex` file as a LaTeX template reference
|
||||
- Read any existing `cover_letters/cover_*.tex` or `cover_letters/Cover_*.tex` file as a template reference
|
||||
|
||||
### CV (`cv/main_<company>.tex`)
|
||||
- Always in **English**
|
||||
- Follow the moderncv/banking format from `05-cv-templates.md`
|
||||
- Tailor the profile statement and experience bullets to the specific role
|
||||
- Reframe skills and achievements to match job requirements
|
||||
- Keep to 2 pages
|
||||
|
||||
### Cover Letter (`cover_letters/cover_<company>_<role>.tex`)
|
||||
- **Match the language of the job posting** (Danish posting -> Danish cover letter, English posting -> English cover letter)
|
||||
- Follow the structure from `06-cover-letter-templates.md`
|
||||
- Use the `cover.cls` template
|
||||
- Tailor the opening paragraph to the specific role and company
|
||||
- Address to a named person if available in the posting, otherwise "Dear Hiring Manager" (or equivalent in posting language)
|
||||
- Keep to approximately one page
|
||||
- Any mention of agentic coding or AI tooling must reference **Claude Code** by name
|
||||
|
||||
Write both files to disk.
|
||||
|
||||
---
|
||||
|
||||
## Step 3: REVIEWER - Research & Critique
|
||||
|
||||
Use the **Agent tool** to spawn a `general-purpose` reviewer agent with the following prompt:
|
||||
|
||||
```
|
||||
You are a hiring manager proxy reviewing a job application. Your job is to make the application as targeted and compelling as possible.
|
||||
|
||||
## Your Tasks
|
||||
|
||||
### 1. Research the Company
|
||||
Use WebSearch and WebFetch to research:
|
||||
- The company's website, mission, and recent news
|
||||
- The specific department or team (if mentioned in the posting)
|
||||
- Any recent projects, press releases, or strategic initiatives relevant to the role
|
||||
- Company culture and values
|
||||
|
||||
### 2. Read All Reference Materials
|
||||
Read these files to understand the candidate and quality standards:
|
||||
- `.claude/skills/job-application-assistant/01-candidate-profile.md`
|
||||
- `.claude/skills/job-application-assistant/02-behavioral-profile.md`
|
||||
- `.claude/skills/job-application-assistant/03-writing-style.md`
|
||||
- `.claude/skills/job-application-assistant/04-job-evaluation.md`
|
||||
- `.claude/skills/job-application-assistant/05-cv-templates.md`
|
||||
- `.claude/skills/job-application-assistant/06-cover-letter-templates.md`
|
||||
|
||||
### 3. Read the Drafts
|
||||
Read the drafted CV and cover letter:
|
||||
- `cv/main_<COMPANY>.tex`
|
||||
- `cover_letters/cover_<COMPANY>_<ROLE>.tex`
|
||||
|
||||
### 4. Read the Job Posting
|
||||
<JOB_POSTING>
|
||||
<INSERT_JOB_POSTING_TEXT_HERE>
|
||||
</JOB_POSTING>
|
||||
|
||||
### 5. Produce Feedback
|
||||
Return a structured critique with **specific, actionable suggestions** in these categories:
|
||||
|
||||
**a) Missed keywords/requirements**
|
||||
- List any requirements or keywords from the posting that are not addressed in the CV or cover letter
|
||||
- For each, suggest where and how to add them (with specific text suggestions)
|
||||
|
||||
**b) Company/department-specific angles**
|
||||
- Based on your research, suggest specific angles to add
|
||||
- Suggest how to connect experience to the company's strategic priorities
|
||||
|
||||
**c) Action-oriented reframing**
|
||||
- Identify passive or generic statements and suggest action-oriented rewrites
|
||||
|
||||
**d) Tone and style issues**
|
||||
- Check against the writing style guide (03-writing-style.md)
|
||||
- Flag any issues with tone, formality, or voice
|
||||
|
||||
**e) Verification checklist**
|
||||
Run this checklist and report pass/fail for each:
|
||||
- [ ] All claims match actual profile - no fabricated skills, experience, or achievements
|
||||
- [ ] Job titles, dates, company names, and locations are correct
|
||||
- [ ] Contact details are correct
|
||||
- [ ] Profile statement is tailored to the specific role
|
||||
- [ ] Key job requirements are addressed
|
||||
- [ ] No LaTeX syntax errors (balanced braces, correct commands)
|
||||
- [ ] No spelling or grammar errors
|
||||
- [ ] Agentic coding / AI tooling references mention Claude Code by name
|
||||
- [ ] Cover letter addressed correctly
|
||||
- [ ] Cover letter fits approximately one page
|
||||
- [ ] CV follows 2-page moderncv/banking format
|
||||
|
||||
**CRITICAL RULE:** All suggestions must be grounded in actual profile data. Do NOT suggest fabricating skills, experience, or achievements. If a requirement is a gap, say so honestly and suggest how to frame adjacent experience instead.
|
||||
|
||||
Return your full feedback as a single structured message.
|
||||
```
|
||||
|
||||
**Important:** Before spawning the agent, replace `<COMPANY>`, `<ROLE>`, and `<INSERT_JOB_POSTING_TEXT_HERE>` with the actual values from Steps 0-2.
|
||||
|
||||
---
|
||||
|
||||
## Step 4: DRAFTER - Revise Based on Feedback
|
||||
|
||||
Once the reviewer agent returns its feedback:
|
||||
|
||||
1. Read the reviewer's suggestions carefully
|
||||
2. Read both draft files again
|
||||
3. Incorporate the suggestions that improve the application:
|
||||
- Add missed keywords where they fit naturally
|
||||
- Add company-specific angles from the reviewer's research
|
||||
- Reframe passive statements to be more action-oriented
|
||||
- Fix any tone/style issues
|
||||
- Fix any verification checklist failures
|
||||
4. Update both files **in place** (edit, don't recreate)
|
||||
5. Do NOT incorporate suggestions that would fabricate skills or experience
|
||||
|
||||
---
|
||||
|
||||
## Step 5: Present Final Output
|
||||
|
||||
After revision, present to the user:
|
||||
|
||||
### Verification Checklist
|
||||
Re-run the full verification checklist from CLAUDE.md and report pass/fail for each item.
|
||||
|
||||
### Key Tailoring Decisions
|
||||
Summarize 3-5 key decisions made to tailor the application:
|
||||
- What was emphasized and why
|
||||
- What company-specific angles were incorporated
|
||||
- What the reviewer suggested that was most impactful
|
||||
- Any gaps that were acknowledged or reframed
|
||||
|
||||
### Files Created
|
||||
List the files written:
|
||||
- `cv/main_<company>.tex`
|
||||
- `cover_letters/cover_<company>_<role>.tex`
|
||||
|
||||
Tell the user: "Both files are ready for your review. Open them to check the final output before compiling."
|
||||
@@ -0,0 +1,198 @@
|
||||
# /setup - Profile Onboarding Interview
|
||||
|
||||
You are running the onboarding setup for the AI Job Search framework. Your goal is to collect the user's professional information and populate all profile files so the `/apply` workflow works out of the box.
|
||||
|
||||
---
|
||||
|
||||
## Step 0: Welcome & Choose Path
|
||||
|
||||
Welcome the user and explain what this setup does. Then offer two paths:
|
||||
|
||||
> **Welcome to the AI Job Search setup!**
|
||||
>
|
||||
> I'll help you set up your professional profile so Claude can evaluate job postings, tailor CVs, write cover letters, and prepare you for interviews.
|
||||
>
|
||||
> **Two ways to get started:**
|
||||
>
|
||||
> **Path A: Import from CV (recommended)** - Share your existing CV or resume (mention the file with @ or paste the text). I'll extract your information automatically and ask follow-up questions for anything missing.
|
||||
>
|
||||
> **Path B: Interview mode** - I'll walk you through structured questions section by section. Great if you're starting from scratch.
|
||||
>
|
||||
> Which do you prefer?
|
||||
|
||||
If the user specifies `$ARGUMENTS` containing `--section <name>`, skip to that section only for updating.
|
||||
|
||||
---
|
||||
|
||||
## Path A: Document Import
|
||||
|
||||
If the user provides a CV/resume:
|
||||
|
||||
1. Read the document thoroughly
|
||||
2. Extract all structured information: name, contact, education, experience, skills, publications, awards
|
||||
3. Present a summary of what was extracted
|
||||
4. Ask follow-up questions for gaps (behavioral profile, career goals, deal-breakers, salary expectations, references)
|
||||
5. Proceed to file generation (Step 3)
|
||||
|
||||
---
|
||||
|
||||
## Path B: Interview Mode
|
||||
|
||||
Walk through each section conversationally. Ask questions naturally, not as a form. Let the user answer in their own words and you'll structure the data.
|
||||
|
||||
### Section 1: Identity & Contact
|
||||
Ask about:
|
||||
- Full name
|
||||
- Location (city, country)
|
||||
- Phone, email, LinkedIn, GitHub
|
||||
- Languages spoken (with proficiency levels)
|
||||
- Current employment status
|
||||
- Family/commute constraints (if any)
|
||||
|
||||
### Section 2: Education
|
||||
For each degree:
|
||||
- Level (PhD, MSc, BSc, etc.), field, institution, years
|
||||
- Thesis topic (if applicable)
|
||||
- Key coursework or topics
|
||||
|
||||
Also ask about certifications (online courses, professional certs).
|
||||
|
||||
### Section 3: Professional Experience
|
||||
For each role (most recent first):
|
||||
- Job title, company, dates, location
|
||||
- Key responsibilities (3-5 bullets)
|
||||
- Key achievements or projects
|
||||
- Technologies/tools used
|
||||
|
||||
Also ask about independent projects, freelance work, or side projects.
|
||||
|
||||
### Section 4: Technical Skills
|
||||
- Programming languages + proficiency level
|
||||
- ML/AI frameworks and tools
|
||||
- Domain expertise
|
||||
- Software tools and platforms
|
||||
- Any other technical skills
|
||||
|
||||
### Section 5: Publications & Awards (optional)
|
||||
- Peer-reviewed papers, conference presentations
|
||||
- Hackathons, competitions, awards
|
||||
- Skip if not applicable
|
||||
|
||||
### Section 6: Behavioral Profile (optional)
|
||||
If they have a formal assessment (PI, DISC, Myers-Briggs, StrengthsFinder):
|
||||
- Ask them to describe or share the results
|
||||
|
||||
If not, ask behavioral questions:
|
||||
- "What work environments do you thrive in?"
|
||||
- "What drains your energy at work?"
|
||||
- "How do you prefer to work in teams?"
|
||||
- "How do you make decisions - quickly or deliberately?"
|
||||
- "What's your communication style?"
|
||||
- Synthesize answers into a behavioral profile
|
||||
|
||||
### Section 7: Career Goals & Preferences
|
||||
- Target roles and industries
|
||||
- What excites you in work
|
||||
- Deal-breakers and must-haves
|
||||
- Salary expectations/baseline (optional)
|
||||
- What environments to avoid
|
||||
- Commute/location constraints
|
||||
|
||||
### Section 8: References (optional)
|
||||
For each reference:
|
||||
- Name, title, company, email, phone
|
||||
- Relationship to the user
|
||||
|
||||
### Section 9: Job Search Configuration
|
||||
This section generates the search queries that power `/scrape`. Use the information from Sections 1, 4, and 7 to build targeted queries.
|
||||
|
||||
Ask about:
|
||||
- **Role titles to search for:** "What job titles should I search for? For example: Data Scientist, ML Engineer, Geophysicist." Collect 3-8 specific titles.
|
||||
- **Key skills as search terms:** "Which of your skills are most likely to appear in job postings?" Pick 3-5 that are distinctive and searchable.
|
||||
- **Target companies (optional):** "Are there specific companies you'd like to monitor for openings?"
|
||||
- **Geographic scope:** "Which cities or regions should I search in? How far are you willing to commute?" Use this to define the location filter tiers (ideal, acceptable, borderline, too far).
|
||||
- **Job portals:** "The framework includes tools for Danish job portals (Jobindex, Jobbank, Jobdanmark, Jobnet). Are these the right ones for you, or do you use other sites?" Note: if the user is outside Denmark, acknowledge that the built-in CLI tools are Denmark-specific and suggest they can add their own portal integrations or rely on LinkedIn/Google site-searches.
|
||||
|
||||
**Important:** Also suggest role types the user may not have considered, based on their skill profile. For example:
|
||||
- If they have strong Python + domain expertise: "Have you considered roles like 'Technical Consultant' or 'Solutions Engineer' in your domain?"
|
||||
- If they have ML + a specific industry: "Companies in adjacent industries also hire for these skills. Should I include searches for [adjacent sector]?"
|
||||
- If they have project management experience alongside technical skills: "Would you also want to search for 'Technical Project Manager' or 'Team Lead' roles?"
|
||||
|
||||
This proactive suggestion step helps users discover career paths they might not have considered.
|
||||
|
||||
---
|
||||
|
||||
## Step 3: Generate Profile Files
|
||||
|
||||
Once all information is collected (via either path), generate the following files:
|
||||
|
||||
### 1. Update `CLAUDE.md`
|
||||
Replace all `[PLACEHOLDER]` tokens with the user's actual information. Keep the structure, workflow, and verification checklist intact.
|
||||
|
||||
### 2. Populate `01-candidate-profile.md`
|
||||
Write the full candidate profile with structured sections: Identity, Education, Professional Experience, Independent Projects, Technical Skills, Publications, Awards, References.
|
||||
|
||||
### 3. Populate `02-behavioral-profile.md`
|
||||
Write the behavioral profile based on assessment results or synthesized answers.
|
||||
|
||||
### 4. Update `04-job-evaluation.md`
|
||||
Replace skill match areas with the user's actual skills:
|
||||
- Strong match areas: [their primary skills]
|
||||
- Moderate match areas: [their secondary skills]
|
||||
- Weak match areas: [skills they lack]
|
||||
|
||||
Update career goals and motivation filters with their actual preferences.
|
||||
|
||||
### 5. Update `05-cv-templates.md`
|
||||
Add role-specific profile statement templates based on their background.
|
||||
|
||||
### 6. Update `07-interview-prep.md`
|
||||
Create STAR examples from their actual experience (at least 3-4 examples).
|
||||
|
||||
### 7. Update `cv/main_example.tex`
|
||||
Replace placeholder personal data with their actual name, contact info, and add their education and most recent experience entries.
|
||||
|
||||
### 8. Generate `.claude/skills/job-scraper/search-queries.md`
|
||||
Replace all placeholder tokens in the search queries file with the user's actual information from Section 9:
|
||||
- Replace `[YOUR_PRIMARY_ROLE_TYPE]`, `[YOUR_PRIMARY_JOB_TITLE]`, etc. with actual role titles
|
||||
- Replace `[YOUR_KEY_SKILL]`, `[YOUR_DOMAIN_KEYWORD_1]`, etc. with actual skills and domain terms
|
||||
- Replace `[YOUR_CITY]`, `[YOUR_COUNTRY]`, `[YOUR_REGION]` with actual location
|
||||
- Fill in the location filter tiers (ideal, acceptable, borderline, too far) based on commute constraints
|
||||
- Organize queries into priority categories matching the user's career direction:
|
||||
- Priority 1: Their strongest/most desired role direction
|
||||
- Priority 2: Their domain expertise
|
||||
- Priority 3: Adjacent roles they could pivot into
|
||||
- Priority 4: Broader roles (wider net)
|
||||
|
||||
---
|
||||
|
||||
## Step 4: Confirm & Next Steps
|
||||
|
||||
Present a summary:
|
||||
|
||||
> **Setup complete!** Here's what was generated:
|
||||
>
|
||||
> - `CLAUDE.md` - Your full candidate profile
|
||||
> - `.claude/skills/job-application-assistant/01-candidate-profile.md` - Structured profile
|
||||
> - `.claude/skills/job-application-assistant/02-behavioral-profile.md` - Behavioral assessment
|
||||
> - `.claude/skills/job-application-assistant/04-job-evaluation.md` - Personalized evaluation framework
|
||||
> - `.claude/skills/job-application-assistant/05-cv-templates.md` - CV templates with your profile statements
|
||||
> - `.claude/skills/job-application-assistant/07-interview-prep.md` - STAR examples from your experience
|
||||
> - `cv/main_example.tex` - Your LaTeX CV template
|
||||
> - `.claude/skills/job-scraper/search-queries.md` - Job search queries for `/scrape`
|
||||
>
|
||||
> **Try it out:**
|
||||
> - Run `/scrape` to search for matching jobs right now
|
||||
> - Run `/apply` with a job posting URL to see the full application workflow
|
||||
> - Run `/setup --section search` later to update your search queries as your priorities evolve
|
||||
|
||||
---
|
||||
|
||||
## Design Principles
|
||||
|
||||
- Each section is a natural conversation, not a form
|
||||
- The user can skip optional sections
|
||||
- Synthesize answers into structured formats (the user doesn't need to know markdown or LaTeX)
|
||||
- Can be re-run with `--section <name>` to update specific sections (e.g., `/setup --section search` to reconfigure job search queries without re-doing the full profile)
|
||||
- Section 9 (search) proactively suggests role types the user may not have considered
|
||||
- At the end, suggest running `/scrape` and `/apply` with a test job posting
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Skill(job-application-assistant)",
|
||||
"Bash(python3:*)",
|
||||
"Bash(python:*)",
|
||||
"Bash(curl:*)",
|
||||
"Bash(bun:*)"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
# Candidate Profile
|
||||
|
||||
<!-- SETUP: This file is populated by running /setup -->
|
||||
<!-- After running /setup, all sections will be filled with your actual information -->
|
||||
|
||||
## Identity
|
||||
- **Name:** [YOUR_NAME]
|
||||
- **Location:** [YOUR_ADDRESS]
|
||||
- **Phone:** [YOUR_PHONE]
|
||||
- **Email:** [YOUR_EMAIL]
|
||||
- **LinkedIn:** [YOUR_LINKEDIN_URL]
|
||||
- **GitHub:** [YOUR_GITHUB_URL]
|
||||
- **Languages:** [YOUR_LANGUAGES with proficiency levels]
|
||||
- **Status:** [YOUR_EMPLOYMENT_STATUS]
|
||||
- **Constraints:** [YOUR_COMMUTE_OR_LOCATION_CONSTRAINTS]
|
||||
|
||||
## Education
|
||||
|
||||
| Degree | Period | Institution | Key Topics |
|
||||
|--------|--------|-------------|------------|
|
||||
| [DEGREE] | [YEARS] | [INSTITUTION] | [TOPICS] |
|
||||
|
||||
## Professional Experience
|
||||
|
||||
### [JOB_TITLE] - [COMPANY] ([START] - [END])
|
||||
[LOCATION]
|
||||
- [RESPONSIBILITY_OR_ACHIEVEMENT_1]
|
||||
- [RESPONSIBILITY_OR_ACHIEVEMENT_2]
|
||||
- [RESPONSIBILITY_OR_ACHIEVEMENT_3]
|
||||
|
||||
<!-- Add more roles as needed -->
|
||||
|
||||
## Independent Projects
|
||||
<!-- Projects outside of employment: freelance, open source, personal -->
|
||||
- **[PROJECT_NAME]**: [DESCRIPTION]
|
||||
|
||||
## Technical Skills
|
||||
|
||||
### Programming & ML
|
||||
- **[LANGUAGE]** ([PROFICIENCY]): [FRAMEWORKS_AND_LIBRARIES]
|
||||
- [OTHER_SKILLS]
|
||||
|
||||
### Domain Expertise
|
||||
- [DOMAIN_1]
|
||||
- [DOMAIN_2]
|
||||
|
||||
### Software & Tools
|
||||
- [TOOL_LIST]
|
||||
|
||||
## Publications
|
||||
<!-- List peer-reviewed publications, if any -->
|
||||
1. [AUTHOR_LIST] ([YEAR]). [TITLE]. [JOURNAL]. [DOI_LINK]
|
||||
|
||||
## Awards
|
||||
- [AWARD] - [EVENT] ([YEAR])
|
||||
|
||||
## References
|
||||
- [NAME], [TITLE], [COMPANY] ([EMAIL], [PHONE])
|
||||
|
||||
More references available upon request.
|
||||
@@ -0,0 +1,50 @@
|
||||
# Behavioral Profile
|
||||
|
||||
<!-- SETUP: This file is populated by running /setup -->
|
||||
<!-- You can use results from PI, DISC, Myers-Briggs, StrengthsFinder, or a self-assessment -->
|
||||
|
||||
## Overview
|
||||
[YOUR_NAME]'s behavioral assessment identifies them as a **[PROFILE_TYPE]** pattern. [1-2 SENTENCE_SUMMARY].
|
||||
|
||||
## Core Behavioral Drives
|
||||
|
||||
| Drive | Level | Meaning |
|
||||
|-------|-------|---------|
|
||||
| [DRIVE_1] | [LEVEL] | [DESCRIPTION] |
|
||||
| [DRIVE_2] | [LEVEL] | [DESCRIPTION] |
|
||||
| [DRIVE_3] | [LEVEL] | [DESCRIPTION] |
|
||||
| [DRIVE_4] | [LEVEL] | [DESCRIPTION] |
|
||||
|
||||
## Strongest Behaviors
|
||||
- **[BEHAVIOR_1]:** [DESCRIPTION]
|
||||
- **[BEHAVIOR_2]:** [DESCRIPTION]
|
||||
- **[BEHAVIOR_3]:** [DESCRIPTION]
|
||||
|
||||
## How You Work Best
|
||||
- [ENVIRONMENT_PREFERENCE_1]
|
||||
- [ENVIRONMENT_PREFERENCE_2]
|
||||
- [ENVIRONMENT_PREFERENCE_3]
|
||||
|
||||
## Growth Areas (frame positively in applications)
|
||||
- **[AREA_1]:** [HOW_TO_FRAME_IT_POSITIVELY]
|
||||
- **[AREA_2]:** [HOW_TO_FRAME_IT_POSITIVELY]
|
||||
|
||||
## Mapping to Job Posting Language
|
||||
|
||||
When a job posting mentions these keywords, it's a **strong behavioral fit**:
|
||||
- [KEYWORD_OR_PHRASE_THAT_MATCHES_YOUR_STYLE]
|
||||
- [ANOTHER_KEYWORD]
|
||||
|
||||
When a job posting mentions these, flag as **potential friction** (not deal-breaker):
|
||||
- [KEYWORD_OR_PHRASE_THAT_MIGHT_CLASH]
|
||||
- [ANOTHER_KEYWORD]
|
||||
|
||||
## Management Style Preferences
|
||||
- [WHAT_MANAGEMENT_STYLE_WORKS_FOR_YOU]
|
||||
- [WHAT_DOESN'T_WORK]
|
||||
|
||||
## Using This in Applications
|
||||
- **Cover letters:** [HOW_TO_WEAVE_IN_BEHAVIORAL_STRENGTHS]
|
||||
- **CV:** [WHAT_TO_EMPHASIZE]
|
||||
- **Interviews:** [WHAT_STAR_EXAMPLES_TO_USE]
|
||||
- **Don't overstate:** [WHAT_NOT_TO_CLAIM]
|
||||
@@ -0,0 +1,106 @@
|
||||
# Writing Style Guide
|
||||
|
||||
## Critical Rules
|
||||
|
||||
1. **NO em-dashes (--).** Use commas, periods, or restructure the sentence instead.
|
||||
2. **NO cliches or filler phrases.** Cut: "I am passionate about", "I believe I would be a great fit", "leverage my skills", "hit the ground running", "drive results", "synergies".
|
||||
3. **NO generic buzzwords** without concrete backing. Every claim must be supported by a specific example or fact.
|
||||
4. **NO apologetic or overly humble language.** Not "I think I could contribute" but "I bring X, demonstrated by Y."
|
||||
5. **NO unverified company claims.** Every company-specific statement in a cover letter (partnerships, product names, technology descriptions, expansions) must be independently verified via WebFetch or WebSearch before inclusion. Do not trust reviewer agent research at face value. If a claim cannot be verified, rephrase it in general terms or omit it.
|
||||
6. **Reframe emphasis, not substance.** Some framing of experience toward the target role is expected. But apply the **interview backtrack test**: could the candidate comfortably explain this bullet in an interview without backtracking? If they'd have to say "well, what I actually meant was..." then it's too far. Specifically:
|
||||
- **OK:** Reordering experience to lead with what's most relevant; using natural synonyms for the target domain; emphasizing one aspect of a broad role.
|
||||
- **Flag it:** Combining academic + industry experience into a single claim that implies it was all industry; describing work using the posting's specific terminology when the actual work was adjacent but not the same.
|
||||
- **Never:** Claiming experience the candidate doesn't have; implying they worked in a domain they haven't.
|
||||
When a bullet falls in the "flag it" zone, present it to the user after drafting with: "This bullet is a stretch because X. Keep, soften, or drop?" If the evaluation experience match score is below 50, warn before proceeding to drafting that extensive reframing would be needed.
|
||||
|
||||
## Tone
|
||||
- **Warm but direct.** Friendly and approachable, but confident without arrogance.
|
||||
- **Conversational professional.** Not stiff corporate-speak, not casual chat. Think: how a confident person talks in a good job interview.
|
||||
- **First person, active voice.** "I built" not "a system was developed by the candidate."
|
||||
- **Demonstrate, don't state.** Instead of "I am a team player", write a specific example of teamwork and its outcome.
|
||||
|
||||
## Application Headline (Best Practice)
|
||||
|
||||
The subject line / headline of the application should be engaging and specific, not generic.
|
||||
|
||||
**Bad:** "Application for Sales Engineer Position" / "Ansogning til stilling som ingeniør"
|
||||
**Good:** "[Your specialty] specializing in [relevant keyword from posting]"
|
||||
|
||||
Formula: **[Title/education] + [relevant keyword from the job posting]**
|
||||
|
||||
## Scannable Structure (Best Practice)
|
||||
|
||||
Employers scan applications quickly. Structure for easy reading:
|
||||
- Use descriptive subheadings that reflect content (not just "Introduction" / "Body")
|
||||
- Include industry-specific keywords in headings where natural
|
||||
- Write concisely - eliminate filler language
|
||||
- One page maximum (hard rule)
|
||||
|
||||
## Forward-Looking Framing (Best Practice)
|
||||
|
||||
The cover letter is **not a CV repetition**. It should be forward-looking:
|
||||
- Focus on **tasks you can solve for the employer**, not just what you've done before
|
||||
- Describe your approach: methods, tools, knowledge you'll bring
|
||||
- Explain what positive outcomes the employer can expect from hiring you
|
||||
- Use 1-2 brief past examples only to back up forward-looking claims
|
||||
|
||||
## Cover Letter Structure
|
||||
|
||||
### Opening Paragraph
|
||||
- State the role and why you're writing (1 sentence)
|
||||
- Immediately connect your background to the role (1-2 sentences)
|
||||
- Make it specific to this company/role, not a template opener
|
||||
|
||||
### Body Paragraphs - Task-Solving Focus
|
||||
- Lead with the most relevant experience for this specific role
|
||||
- Frame content around **which of their tasks you can solve and how**
|
||||
- Describe your approach: methods, tools, and knowledge you'll bring
|
||||
- Use bullet lists for concrete skills/achievements when appropriate (3-5 bullets)
|
||||
- Each bullet should be specific and outcome-oriented
|
||||
- Include at least one example that shows initiative
|
||||
- Include 1-2 brief examples of past success, but keep the focus forward-looking
|
||||
|
||||
### Motivation / Why This Company (place early)
|
||||
- The **first section** after the opening should explain why you're applying to *this specific company*
|
||||
- Use language and themes from the job posting and company website
|
||||
- Focus on how you'll contribute to their goals, not what you gain from employment
|
||||
- If you spoke with someone at the company, reference the conversation naturally
|
||||
|
||||
### Company-Specific Paragraph
|
||||
- Show you've researched the company (mention specific projects, values, or market position)
|
||||
- Explain why this company specifically, not just "a company like yours"
|
||||
- Connect domain knowledge to their business context
|
||||
|
||||
### Closing
|
||||
- Brief, confident, forward-looking
|
||||
- "I look forward to hearing from you" or "I would welcome the opportunity to discuss..."
|
||||
- No begging or over-enthusiasm
|
||||
|
||||
## Bullet Point Style
|
||||
- Start with action verb or bold category label
|
||||
- Be specific: numbers, tools, outcomes
|
||||
- Vary the structure (not every bullet starts the same way)
|
||||
|
||||
## Language for Different Role Types
|
||||
|
||||
### Technical/ML roles
|
||||
- Lead with programming languages, ML frameworks, specific model architectures
|
||||
- Mention datasets, data volumes, pipeline complexity
|
||||
- Include independent projects
|
||||
|
||||
### Domain-specific roles
|
||||
- Lead with domain expertise and specific methods
|
||||
- Frame technical skills as tools that enhance domain analysis
|
||||
|
||||
### Consulting/Advisory roles
|
||||
- Lead with stakeholder communication, project coordination, client interaction
|
||||
- Emphasize ability to bridge technical and business perspectives
|
||||
|
||||
### Leadership/Senior roles
|
||||
- Lead with project management, mentoring, course development
|
||||
- Frame advanced degrees as evidence of independent project delivery
|
||||
|
||||
## Multi-language Applications
|
||||
- Default to the language of the job posting
|
||||
- Cover letters in the posting's language should feel natural, not translated
|
||||
- Slightly warmer, more personal tone may be acceptable in some languages
|
||||
@@ -0,0 +1,173 @@
|
||||
# Job Evaluation Framework
|
||||
|
||||
<!-- SETUP: Skill match areas and career goals are personalized by running /setup -->
|
||||
|
||||
## Scoring Dimensions
|
||||
|
||||
Evaluate each job posting against these five dimensions:
|
||||
|
||||
### 1. Technical Skills Match (0-100)
|
||||
How well do the required/preferred skills align with the candidate's capabilities?
|
||||
|
||||
| Score | Meaning |
|
||||
|-------|---------|
|
||||
| 80-100 | Core requirements are primary skills |
|
||||
| 60-79 | Most requirements match, 1-2 gaps that are learnable |
|
||||
| 40-59 | Partial match, significant upskilling needed |
|
||||
| 0-39 | Fundamental mismatch |
|
||||
|
||||
**Strong match areas:** [YOUR_PRIMARY_SKILLS]
|
||||
**Moderate match areas:** [YOUR_SECONDARY_SKILLS]
|
||||
**Weak match areas:** [SKILLS_YOU_LACK]
|
||||
|
||||
### 2. Experience Match (0-100)
|
||||
Does work history align with what they're looking for?
|
||||
|
||||
| Score | Meaning |
|
||||
|-------|---------|
|
||||
| 80-100 | Direct experience in the same domain and role type |
|
||||
| 60-79 | Related experience, transferable skills clear |
|
||||
| 40-59 | Adjacent experience, would need to make the case |
|
||||
| 0-39 | Unrelated experience |
|
||||
|
||||
**Strong:** [YOUR_DIRECT_EXPERIENCE_DOMAINS]
|
||||
**Moderate:** [YOUR_ADJACENT_EXPERIENCE]
|
||||
**Entry-level:** [ROLES_WITH_LIMITED_EXPERIENCE]
|
||||
|
||||
### 3. Behavioral/Culture Fit (0-100)
|
||||
Does the role and company culture match the behavioral profile?
|
||||
|
||||
| Score | Meaning |
|
||||
|-------|---------|
|
||||
| 80-100 | Culture strongly matches behavioral preferences |
|
||||
| 60-79 | Mixed signals but mostly compatible |
|
||||
| 40-59 | Some friction areas |
|
||||
| 0-39 | Significant culture mismatch |
|
||||
|
||||
**Red flags to research:** Department disorganization, work dominated by maintenance over development, poor chemistry with leadership, culture mismatches. Check reviews, media coverage, LinkedIn connections, and network contacts for insider perspective.
|
||||
|
||||
### 4. Location & Logistics (Pass/Fail + Notes)
|
||||
- Within commute range: PASS
|
||||
- Remote with occasional office: PASS
|
||||
- Requires relocation: FAIL (deal-breaker)
|
||||
- Frequent international travel: FLAG (discuss with user)
|
||||
|
||||
### 5. Career Alignment & Motivation (0-100)
|
||||
Does this role advance career goals and contain tasks that energize?
|
||||
|
||||
| Score | Meaning |
|
||||
|-------|---------|
|
||||
| 80-100 | Strongly aligned with career direction, clear growth path |
|
||||
| 60-79 | Good role but only partially aligned with long-term goals |
|
||||
| 40-59 | Decent job but doesn't build toward career goals |
|
||||
| 0-39 | Dead end or backwards step |
|
||||
|
||||
**Career goals:**
|
||||
- [YOUR_CAREER_GOAL_1]
|
||||
- [YOUR_CAREER_GOAL_2]
|
||||
- [YOUR_CAREER_GOAL_3]
|
||||
|
||||
**Motivation filter:** Evaluate not just whether you *can* do the tasks, but whether the tasks will *energize* you. Consider:
|
||||
- Tasks that energize: [YOUR_ENERGIZING_TASKS]
|
||||
- Tasks that drain: [YOUR_DRAINING_TASKS]
|
||||
- Non-task factors: leadership style, department culture, company values, degree of autonomy
|
||||
|
||||
**Life situation alignment:** Consider personal constraints:
|
||||
- **Security**: [YOUR_FINANCIAL_SITUATION_CONTEXT]
|
||||
- **Flexibility**: [YOUR_SCHEDULE_CONSTRAINTS]
|
||||
- **Professional development**: [YOUR_GROWTH_PRIORITIES]
|
||||
|
||||
### 6. Salary Benchmark (Optional)
|
||||
|
||||
If the salary lookup tool is configured (`salary_data.json` exists), look up the company:
|
||||
```
|
||||
python salary_lookup.py "<Company Name>" --json
|
||||
```
|
||||
|
||||
If a city is known from the posting, add `--city "<City>"` to narrow results.
|
||||
|
||||
Present findings as:
|
||||
```
|
||||
### Salary Benchmark
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| [Category] index | XX.X (+/-X.X% vs baseline) |
|
||||
| Overall index | XX.X (+/-X.X% vs baseline) |
|
||||
```
|
||||
|
||||
Interpret results relative to the baseline defined in the data file's metadata. For index-based data, higher typically means above-market compensation.
|
||||
|
||||
If the salary tool is not configured, skip this section.
|
||||
|
||||
## Output Format
|
||||
|
||||
Present the evaluation as:
|
||||
|
||||
```
|
||||
## Job Fit Evaluation: [Role] at [Company]
|
||||
|
||||
| Dimension | Score | Notes |
|
||||
|-----------|-------|-------|
|
||||
| Technical Skills | XX/100 | [brief note] |
|
||||
| Experience Match | XX/100 | [brief note] |
|
||||
| Behavioral Fit | XX/100 | [brief note] |
|
||||
| Location | PASS/FAIL | [brief note] |
|
||||
| Career Alignment | XX/100 | [brief note] |
|
||||
|
||||
**Overall Score: XX/100** (weighted average of scored dimensions)
|
||||
|
||||
### Verdict: [Strong Fit / Good Fit / Moderate Fit / Weak Fit / Poor Fit]
|
||||
|
||||
### Key Strengths for This Role
|
||||
- [bullet points]
|
||||
|
||||
### Gaps to Address
|
||||
- [bullet points]
|
||||
|
||||
### Recommendation
|
||||
[1-2 sentences: apply/skip/apply with caveats]
|
||||
|
||||
### Company Research Checklist
|
||||
- [ ] Checked company website (mission, values, recent news)
|
||||
- [ ] Checked review sites (Glassdoor, Jobindex, etc.)
|
||||
- [ ] Checked LinkedIn for team size, recent hires, connections
|
||||
- [ ] Checked media for restructuring, growth, or workplace issues
|
||||
- [ ] Identified network contacts who may know the team/manager
|
||||
```
|
||||
|
||||
## Weighting
|
||||
- Technical Skills: 30%
|
||||
- Experience Match: 25%
|
||||
- Behavioral Fit: 15%
|
||||
- Career Alignment: 30%
|
||||
|
||||
(Location is pass/fail, not weighted)
|
||||
|
||||
## Thresholds
|
||||
- **Strong Fit** (75+): Definitely apply, tailor everything
|
||||
- **Good Fit** (60-74): Apply, address gaps in cover letter
|
||||
- **Moderate Fit** (45-59): Consider carefully, discuss with user
|
||||
- **Weak Fit** (30-44): Probably skip unless strategic reasons
|
||||
- **Poor Fit** (<30): Skip
|
||||
|
||||
## Pre-Application: Call the Employer (Best Practice)
|
||||
|
||||
Before writing the application, consider whether the candidate should call the contact person listed in the posting. **Only call if there are substantive questions** - never call just to "be remembered."
|
||||
|
||||
### When to Suggest Calling
|
||||
- The posting has unclear or ambiguous requirements
|
||||
- It's unclear which competencies are essential vs. nice-to-have
|
||||
- The role description is vague about day-to-day tasks
|
||||
- There's a named contact person who invites questions
|
||||
|
||||
### Good Questions to Ask
|
||||
- "What are the primary challenges in this role?"
|
||||
- "How is time typically divided across the listed responsibilities?"
|
||||
- "Which competencies are most critical for success in this position?"
|
||||
- "What does success look like in the first 6-12 months?"
|
||||
|
||||
### Rules for the Call
|
||||
- Prepare a 30-second "elevator pitch" about your background in case they ask
|
||||
- The call's purpose is **gathering information**, not delivering a pitch
|
||||
- Take notes - use what you learn to tailor the application
|
||||
- Reference the conversation naturally in the cover letter ("After speaking with [name], I was especially drawn to...")
|
||||
@@ -0,0 +1,141 @@
|
||||
# CV Templates and Tailoring Guide
|
||||
|
||||
<!-- SETUP: Profile statements and section ordering are personalized by running /setup -->
|
||||
|
||||
## Template: LaTeX moderncv (Banking Style)
|
||||
|
||||
All CVs use the moderncv LaTeX package with the "banking" style and "blue" color scheme.
|
||||
|
||||
**Output file:** `cv/main_<company>.tex`
|
||||
**Compile with:** pdflatex (not xelatex)
|
||||
**Master reference:** `cv/main_example.tex` (comprehensive CV with all competencies, experience, and achievements - use as source when building targeted CVs)
|
||||
|
||||
## Document Structure
|
||||
|
||||
```latex
|
||||
\documentclass[11pt,a4paper,sans]{moderncv}
|
||||
\moderncvstyle{banking}
|
||||
\moderncvcolor{blue}
|
||||
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{hyperref}
|
||||
\hypersetup{
|
||||
colorlinks=true,
|
||||
linkcolor=blue,
|
||||
filecolor=magenta,
|
||||
urlcolor=blue,
|
||||
pdftitle={[YOUR_NAME] - CV},
|
||||
pdfpagemode=FullScreen,
|
||||
}
|
||||
\usepackage[scale=0.77]{geometry}
|
||||
\usepackage{import}
|
||||
|
||||
% Personal data
|
||||
\name{[FIRST_NAME]}{[LAST_NAME]}
|
||||
\address{[YOUR_ADDRESS]}{}{}
|
||||
\phone[mobile]{[YOUR_PHONE]}
|
||||
\email{[YOUR_EMAIL]}
|
||||
\extrainfo{\href{[YOUR_LINKEDIN_URL]}{LinkedIn}, \href{[YOUR_GITHUB_URL]}{GitHub}}
|
||||
|
||||
\begin{document}
|
||||
\makecvtitle
|
||||
|
||||
% 1. Profile statement (1-3 sentences, tailored per role)
|
||||
% 2. Skills section
|
||||
% 3. Education section
|
||||
% 4. Professional Experience section
|
||||
% 5. Selected Publications (if applicable)
|
||||
% 6. Honors and Awards (if applicable)
|
||||
% 7. References
|
||||
|
||||
\end{document}
|
||||
```
|
||||
|
||||
## Section-by-Section Tailoring
|
||||
|
||||
### Profile Statement / Elevator Pitch (Best Practice)
|
||||
This is the most important section to customize. It appears right after `\makecvtitle`.
|
||||
|
||||
Write 5-7 lines that function as an "elevator pitch": a concise, compelling introduction explaining why you're qualified for *this specific role*. Focus on what the employer gains from hiring you.
|
||||
|
||||
**Create 2-3 profile statement templates for your main role types:**
|
||||
|
||||
<!-- SETUP: These are populated based on your background -->
|
||||
**For [YOUR_PRIMARY_ROLE_TYPE] roles:**
|
||||
> [YOUR_PROFILE_STATEMENT_TEMPLATE_1]
|
||||
|
||||
**For [YOUR_SECONDARY_ROLE_TYPE] roles:**
|
||||
> [YOUR_PROFILE_STATEMENT_TEMPLATE_2]
|
||||
|
||||
### Core Competencies / Skills Section (Best Practice)
|
||||
Reorder and emphasize based on the role. Use bold category labels.
|
||||
|
||||
List **5-7 key competencies** in bullet format, tailored to the specific job. For each competency, briefly explain how it adds value to the position.
|
||||
|
||||
### Education
|
||||
- Always include your highest degrees
|
||||
- For senior roles, keep education brief (dates and titles only)
|
||||
- Include thesis topics when relevant to the target role
|
||||
|
||||
### Professional Experience
|
||||
- Rewrite bullet points to emphasize aspects most relevant to the target role
|
||||
- Use 4-6 bullets for most recent role, 3-4 for previous, 2-3 for older
|
||||
- **Emphasize measurable results** where possible: "Reduced processing time by X%", "Model adopted by the team"
|
||||
|
||||
### Handling Employment Gaps (Best Practice)
|
||||
If there is a gap in your employment history:
|
||||
- The gap should be explained matter-of-factly if needed
|
||||
- Describe how professional development continued during the gap
|
||||
- Frame as deliberate skill-building and career repositioning
|
||||
|
||||
### Publications
|
||||
- Include Google Scholar link if applicable
|
||||
- Select 3-4 most relevant publications (not always all of them)
|
||||
- For non-academic roles, keep brief
|
||||
|
||||
### Honors and Awards
|
||||
- Keep format brief, one line each
|
||||
|
||||
### References
|
||||
- List 2-4 references with name, title, company, and contact
|
||||
- End with: "More references are available upon request."
|
||||
- **Do not attach reference letters** - employers typically contact references directly
|
||||
|
||||
## Page Budget - Hard 2-Page Limit
|
||||
|
||||
The CV **must** fit on exactly 2 pages when compiled. Use these content limits as a guide:
|
||||
|
||||
| Section | Max budget |
|
||||
|---------|-----------|
|
||||
| Profile statement | 3-4 lines |
|
||||
| Skills | 5 items, each 1-2 lines |
|
||||
| Most recent role | 4-5 bullets |
|
||||
| Previous role | 2-3 bullets |
|
||||
| Older roles | 2 bullets (1 line each) |
|
||||
| Education | 2-3 entries |
|
||||
| Publications | 2-3 entries |
|
||||
| Awards | 3 entries, single line each |
|
||||
| References | "Available upon request." (single line) |
|
||||
|
||||
**If in doubt, cut rather than squeeze.** Reducing `\vspace` or geometry scale to force-fit content makes the CV look cramped.
|
||||
|
||||
## Recommended Section Order
|
||||
|
||||
The section order varies by role type:
|
||||
|
||||
**For technical / data science / ML roles:**
|
||||
1. Profile statement / elevator pitch
|
||||
2. Core competencies / Skills
|
||||
3. Professional Experience (reverse chronological)
|
||||
4. Education (reverse chronological)
|
||||
5. Languages
|
||||
6. Publications & Awards
|
||||
7. References
|
||||
|
||||
**For domain-specific / specialist roles:**
|
||||
1. Profile statement / elevator pitch
|
||||
2. Core competencies / Skills
|
||||
3. Education (reverse chronological) - credentials are a key qualifier
|
||||
4. Professional Experience (reverse chronological)
|
||||
5. Publications & Awards
|
||||
6. References
|
||||
@@ -0,0 +1,126 @@
|
||||
# Cover Letter Templates and Tailoring Guide
|
||||
|
||||
## Template: Custom cover.cls (XeLaTeX)
|
||||
|
||||
Cover letters use a custom LaTeX document class (`cover.cls`) with Lato/Raleway fonts.
|
||||
|
||||
**Output file:** `cover_letters/cover_<company>_<role>.tex`
|
||||
**Compile with:** XeLaTeX (not pdflatex)
|
||||
**Font directory:** `cover_letters/OpenFonts/fonts/`
|
||||
|
||||
## Document Structure
|
||||
|
||||
```latex
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% Cover Letter - [Company], [Role]
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\documentclass[]{cover}
|
||||
\usepackage{fancyhdr}
|
||||
|
||||
\pagestyle{fancy}
|
||||
\fancyhf{}
|
||||
|
||||
\rfoot{Page \thepage \hspace{0pt}}
|
||||
\thispagestyle{empty}
|
||||
\renewcommand{\headrulewidth}{0pt}
|
||||
\begin{document}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% TITLE NAME
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\namesection{}{\Huge{[YOUR_NAME]}}{ \href{mailto:[YOUR_EMAIL]}{[YOUR_EMAIL]} | [YOUR_PHONE] | \urlstyle{same}\href{[YOUR_LINKEDIN_URL]}{LinkedIn}
|
||||
}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% MAIN COVER LETTER CONTENT
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
\currentdate{\today}
|
||||
\lettercontent{Dear [Name/Team],}
|
||||
|
||||
\lettercontent{[Opening paragraph - role, connection to background, 2-3 sentences]}
|
||||
|
||||
\lettercontent{[Body paragraph - most relevant experience, then bullet list]
|
||||
|
||||
\begin{itemize}
|
||||
\item [Concrete achievement/skill 1]
|
||||
\item [Concrete achievement/skill 2]
|
||||
\item [Concrete achievement/skill 3]
|
||||
\end{itemize}
|
||||
|
||||
[Connection to company - why this role, why this company specifically]}
|
||||
|
||||
\lettercontent{[Personal fit paragraph - behavioral strengths, team contribution, 2-3 sentences]}
|
||||
|
||||
\lettercontent{I look forward to hearing from you.}
|
||||
|
||||
\begin{flushright}
|
||||
\closing{Kind regards,\\}
|
||||
|
||||
\signature{[YOUR_NAME]}
|
||||
\end{flushright}
|
||||
\end{document}
|
||||
```
|
||||
|
||||
## Key Commands Reference
|
||||
|
||||
| Command | Purpose |
|
||||
|---------|---------|
|
||||
| `\namesection{}{Name}{contact info}` | Header with name and contact |
|
||||
| `\currentdate{date}` | Date field (use `\today` or explicit date) |
|
||||
| `\lettercontent{text}` | Body paragraph (adds spacing after) |
|
||||
| `\closing{text}` | Closing line |
|
||||
| `\signature{name}` | Printed name below signature |
|
||||
|
||||
## Tailoring Guidelines
|
||||
|
||||
### Salutation
|
||||
- If you know the hiring manager's name: "Dear [First Last],"
|
||||
- If you know the team: "Dear [Company] hiring team,"
|
||||
- Generic: "Dear [Company]," (avoid "To whom it may concern")
|
||||
|
||||
### Length - Hard 1-Page Limit
|
||||
- Target: 1 page including signature block
|
||||
- Maximum: **never exceed 1 page**
|
||||
- **Word budget: 250-300 words** of body text (not counting LaTeX markup). This is the safe maximum. 350 words will overflow.
|
||||
- **Always count**: opening paragraph + bullet list paragraph + closing paragraph = 3 blocks. Add a 4th only if the others are short.
|
||||
- When adding company-specific content, trim other content to compensate rather than adding net length
|
||||
|
||||
### Line Spacing
|
||||
- Add `\usepackage{setspace}` and `\setstretch{1.0}` if the letter is long and needs to fit on one page
|
||||
- Use `\vspace{.5cm}` between major sections for readability (only if space permits)
|
||||
|
||||
### Bullet Lists
|
||||
- Use `\begin{itemize}...\end{itemize}` inside a `\lettercontent{}` block
|
||||
- 3-5 bullets is ideal
|
||||
- Start each bullet with bold label or action verb
|
||||
- Use `\textbf{Label:}` for category-style bullets
|
||||
|
||||
### LaTeX Special Characters
|
||||
- Underscore: `\_`
|
||||
- Ampersand: `\&`
|
||||
|
||||
### Non-English Cover Letters
|
||||
- Same template structure, just write content in the posting's language
|
||||
- Adjust date format to local convention
|
||||
- Adjust closing to local convention (e.g. "Med venlig hilsen," for Danish)
|
||||
|
||||
## Checklist Before Finalizing
|
||||
- [ ] No em-dashes (use commas or periods instead)
|
||||
- [ ] No cliches or empty filler
|
||||
- [ ] Every claim backed by specific example
|
||||
- [ ] Forward-looking framing: focuses on tasks you'll solve, not just past duties
|
||||
- [ ] Motivation section references this specific company's mission/values
|
||||
- [ ] Company name and role are correct throughout
|
||||
- [ ] Date is current
|
||||
- [ ] Fits on one page
|
||||
- [ ] Language matches the job posting language
|
||||
- [ ] Salutation is appropriate (named person if possible)
|
||||
- [ ] Headline is engaging and specific, not generic
|
||||
|
||||
## Submission Guidelines (Best Practice)
|
||||
- Submit only the documents the employer requests
|
||||
- Export as PDF to preserve formatting
|
||||
- Name files clearly: "[Your Name] CV" and "[Your Name] Cover Letter"
|
||||
- Follow all employer instructions regarding anonymity or specific materials
|
||||
@@ -0,0 +1,109 @@
|
||||
# Interview Preparation Guide
|
||||
|
||||
<!-- SETUP: STAR examples are personalized by running /setup based on your actual experience -->
|
||||
|
||||
## STAR Format
|
||||
|
||||
Structure answers as: **Situation** (context), **Task** (your responsibility), **Action** (what you did), **Result** (outcome).
|
||||
|
||||
Keep answers to 1-2 minutes. Be specific. End with what you learned or would do differently.
|
||||
|
||||
## Ready-Made STAR Examples
|
||||
|
||||
<!-- These are populated by /setup from your actual experience. Below are templates showing the format. -->
|
||||
|
||||
### 1. [PROJECT_NAME] ([SKILL_DEMONSTRATED])
|
||||
**S:** [CONTEXT - what was happening, what was the problem]
|
||||
**T:** [YOUR RESPONSIBILITY - what you specifically needed to do]
|
||||
**A:** [WHAT YOU DID - specific actions, tools, methods]
|
||||
**R:** [OUTCOME - measurable results, adoption, impact]
|
||||
**Use for:** "[QUESTION_TYPE_1]", "[QUESTION_TYPE_2]"
|
||||
|
||||
### 2. [PROJECT_NAME] ([SKILL_DEMONSTRATED])
|
||||
**S:** [CONTEXT]
|
||||
**T:** [YOUR RESPONSIBILITY]
|
||||
**A:** [WHAT YOU DID]
|
||||
**R:** [OUTCOME]
|
||||
**Use for:** "[QUESTION_TYPE_1]", "[QUESTION_TYPE_2]"
|
||||
|
||||
### 3. [PROJECT_NAME] ([SKILL_DEMONSTRATED])
|
||||
**S:** [CONTEXT]
|
||||
**T:** [YOUR RESPONSIBILITY]
|
||||
**A:** [WHAT YOU DID]
|
||||
**R:** [OUTCOME]
|
||||
**Use for:** "[QUESTION_TYPE_1]", "[QUESTION_TYPE_2]"
|
||||
|
||||
<!-- Add more STAR examples as needed. Aim for 4-6 covering different competencies. -->
|
||||
|
||||
## Common Tough Questions
|
||||
|
||||
### "Why did you leave [previous company]?"
|
||||
> [PREPARE YOUR ANSWER - be honest, forward-looking, no negativity about former employer]
|
||||
|
||||
### "You don't have [specific skill/experience]."
|
||||
> [PREPARE YOUR ANSWER - acknowledge the gap, bridge to adjacent experience, show willingness to learn]
|
||||
|
||||
### "Where do you see yourself in 5 years?"
|
||||
> [PREPARE YOUR ANSWER - show ambition aligned with the role's growth path]
|
||||
|
||||
### "What's your biggest weakness?"
|
||||
> [PREPARE YOUR ANSWER - genuine weakness with concrete mitigation strategy]
|
||||
|
||||
### "Why this company specifically?"
|
||||
> Customize per company. Must reference: specific projects, company values, market position, or team structure. Never give a generic answer.
|
||||
|
||||
## Questions You Should Ask Interviewers
|
||||
|
||||
### About the Role
|
||||
- "What does a typical week look like in this role?"
|
||||
- "What would success look like in the first 6 months?"
|
||||
- "What's the biggest challenge the team is facing right now?"
|
||||
|
||||
### About the Team
|
||||
- "How big is the team, and how do you divide work?"
|
||||
- "What does the development/project lifecycle look like, from idea to production?"
|
||||
- "How do you onboard new team members?"
|
||||
|
||||
### About Tech & Growth
|
||||
- "What's your current tech stack for [relevant area]?"
|
||||
- "Is there room to grow into more architectural or strategic decisions?"
|
||||
- "How does the team stay current with new tools and methods?"
|
||||
|
||||
### About Culture (use these to prevent disappointment)
|
||||
- "How would you describe the team culture?"
|
||||
- "What does professional development look like here?"
|
||||
- "Is there flexibility for remote/hybrid work?"
|
||||
- "What's the balance between development/new projects and maintenance work?"
|
||||
- "How would you describe the leadership style in this team?"
|
||||
- "What do people who thrive here have in common?"
|
||||
|
||||
## Phone/Video Interview Tips
|
||||
- Have STAR examples written out (use this file)
|
||||
- Keep a glass of water nearby
|
||||
- Smile when speaking (it changes your tone)
|
||||
- Ask for clarification if a question is vague
|
||||
- It's OK to take 5 seconds to think before answering
|
||||
- End with: "Is there anything else you'd like to know about my background?"
|
||||
|
||||
## After the Application (Best Practice)
|
||||
|
||||
### Follow-Up Etiquette
|
||||
- **Don't call to "stand out"** or to learn more about the role post-submission - this risks a negative impression
|
||||
- If the employer specified a timeline, respect it and wait
|
||||
- If no timeline was given and significant time has passed (2+ weeks), a brief call to ask about status is acceptable
|
||||
- If you have genuinely new, relevant information to share, a short follow-up is fine
|
||||
|
||||
### Thank-You Notes
|
||||
- When you receive any update (interview invitation, rejection, or status update), send a brief thank-you message
|
||||
- Express appreciation for their time and the process
|
||||
- Keep it short (2-3 sentences)
|
||||
|
||||
## Roleplay Guidelines
|
||||
When the user asks for interview practice:
|
||||
1. Ask which role/company to simulate
|
||||
2. Start with easy warm-up questions ("Tell me about yourself")
|
||||
3. Progress to role-specific technical questions
|
||||
4. Include 1-2 behavioral questions using the competencies from the job posting
|
||||
5. End with a tough question or curveball
|
||||
6. After each answer, give brief feedback: what worked, what to sharpen
|
||||
7. Suggest which STAR example would work best for each question
|
||||
@@ -0,0 +1,63 @@
|
||||
# Job Application Assistant
|
||||
|
||||
**name:** job-application-assistant
|
||||
**description:** Assists with job applications: evaluating job postings, tailoring CVs, writing cover letters, and preparing for interviews. Triggers on keywords like: job posting, job application, CV, cover letter, resume, interview prep, job fit, career, application, apply, ansøgning, stilling
|
||||
**allowed-tools:** Read, Glob, Grep, WebFetch, WebSearch, Edit, Write, AskUserQuestion
|
||||
|
||||
---
|
||||
|
||||
## Workflow
|
||||
|
||||
When the user provides a job posting (URL or text), follow this workflow:
|
||||
|
||||
### Step 1: Research & Evaluate Fit
|
||||
- Fetch the job posting content (use WebFetch for URLs)
|
||||
- Analyze the posting for required competencies, keywords, and priorities
|
||||
- Research the company (website, LinkedIn, mission, recent news)
|
||||
- Score the posting against the candidate's profile using the framework in `04-job-evaluation.md`
|
||||
- Present the evaluation table and verdict
|
||||
- Suggest whether the candidate should call the employer before applying (see `04-job-evaluation.md` for guidance)
|
||||
- Ask the user if they want to proceed with an application
|
||||
|
||||
### Step 2: Tailor CV
|
||||
- Read the most relevant existing CV variant from `cv/` as a starting point
|
||||
- Follow the guidelines in `05-cv-templates.md`
|
||||
- Create `cv/main_<company>.tex` with tailored content
|
||||
- Adjust: profile statement, skills section, experience bullet emphasis, section order
|
||||
|
||||
### Step 3: Write Cover Letter
|
||||
- Follow the writing style rules in `03-writing-style.md` (critical: no em-dashes, no cliches)
|
||||
- Follow the template structure in `06-cover-letter-templates.md`
|
||||
- Create `cover_letters/cover_<company>_<role>.tex`
|
||||
- Ensure the letter connects specific experience to the role requirements
|
||||
|
||||
### Step 4: Interview Preparation
|
||||
- Follow the framework in `07-interview-prep.md`
|
||||
- Prepare STAR-format answers for likely questions
|
||||
- Identify role-specific talking points
|
||||
- Draft questions the candidate should ask the interviewer
|
||||
|
||||
---
|
||||
|
||||
## Reference Files
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `01-candidate-profile.md` | Education, experience, skills, publications, awards |
|
||||
| `02-behavioral-profile.md` | Behavioral assessment, strengths, ideal environments |
|
||||
| `03-writing-style.md` | Tone, structure, do's and don'ts |
|
||||
| `04-job-evaluation.md` | Scoring framework for job fit |
|
||||
| `05-cv-templates.md` | LaTeX CV structure and tailoring rules |
|
||||
| `06-cover-letter-templates.md` | LaTeX cover letter structure and tailoring rules |
|
||||
| `07-interview-prep.md` | STAR examples, tough questions, roleplay guidelines |
|
||||
|
||||
---
|
||||
|
||||
## Quick Commands
|
||||
|
||||
The user may also ask for individual steps without the full workflow:
|
||||
- "Evaluate this job posting" - Step 1 only
|
||||
- "Write a CV for [company]" - Step 2 only
|
||||
- "Write a cover letter for [role] at [company]" - Step 3 only
|
||||
- "Help me prepare for an interview at [company]" - Step 4 only
|
||||
- "What jobs should I look for?" - Career strategy discussion using profile + evaluation framework
|
||||
@@ -0,0 +1,119 @@
|
||||
# Job Scraper
|
||||
|
||||
**name:** job-scraper
|
||||
**description:** Scrapes Danish job sites for new positions matching your profile. Deduplicates across runs. Triggers on: job scrape, find jobs, search jobs, new jobs, job search, scrape jobs, /scrape
|
||||
**allowed-tools:** Read, Write, Edit, Glob, Grep, WebFetch, WebSearch, Agent, AskUserQuestion
|
||||
|
||||
---
|
||||
|
||||
## How It Works
|
||||
|
||||
This skill searches multiple Danish job sites using targeted queries based on your profile, deduplicates against previously seen jobs and the application tracker, and presents new matches with a quick fit assessment.
|
||||
|
||||
## Invocation
|
||||
|
||||
The user triggers this skill by saying things like:
|
||||
- "Find new jobs"
|
||||
- "Scrape for jobs"
|
||||
- "Any new positions?"
|
||||
- "/scrape"
|
||||
|
||||
Optional arguments:
|
||||
- A focus area, e.g. "/scrape data science" or "/scrape geophysics"
|
||||
- "broad" to run all search categories, e.g. "/scrape broad"
|
||||
|
||||
---
|
||||
|
||||
## Execution Steps
|
||||
|
||||
### Step 0: Load State
|
||||
|
||||
1. Read `job_scraper/seen_jobs.json` (create if missing - start with `{"seen": {}}`)
|
||||
2. Read `job_search_tracker.csv` to extract already-applied companies+roles
|
||||
3. Read `search-queries.md` (this directory) for the search strategy
|
||||
|
||||
### Step 1: Search
|
||||
|
||||
Run **WebSearch** queries from `search-queries.md`. By default, run the top 3 priority categories. If the user said "broad", run all categories.
|
||||
|
||||
If the user specified a focus area (e.g. "data science"), prioritize queries from that category.
|
||||
|
||||
For each search:
|
||||
- Use `WebSearch` with site-specific queries (jobindex.dk, linkedin.com/jobs, karriere.dk, etc.)
|
||||
- Target your configured geographic area
|
||||
- Look for postings from the last 14 days
|
||||
|
||||
### Step 2: Fetch & Parse
|
||||
|
||||
For each promising result from Step 1:
|
||||
- Use `WebFetch` to retrieve the job posting page
|
||||
- Extract: **job title**, **company**, **location**, **posting date** (or "recent"), **URL**, **key requirements** (brief), **application deadline** (if listed)
|
||||
- Skip if the URL or company+title combo already exists in `seen_jobs.json`
|
||||
- Skip if the company+role already appears in `job_search_tracker.csv`
|
||||
|
||||
### Step 3: Quick Fit Assessment
|
||||
|
||||
For each new job, do a rapid fit check (NOT the full evaluation from `04-job-evaluation.md` - just a quick signal):
|
||||
|
||||
- **High match**: Role directly involves your core skills
|
||||
- **Medium match**: Role is adjacent to your experience
|
||||
- **Low match**: Role requires significant skills you lack
|
||||
|
||||
### Step 4: Deduplicate & Store
|
||||
|
||||
1. Add ALL fetched jobs (new and skipped) to `seen_jobs.json` with structure:
|
||||
```json
|
||||
{
|
||||
"seen": {
|
||||
"<url_or_company_title_key>": {
|
||||
"title": "...",
|
||||
"company": "...",
|
||||
"url": "...",
|
||||
"first_seen": "YYYY-MM-DD",
|
||||
"fit": "high/medium/low",
|
||||
"status": "new/skipped/evaluated"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
2. Only present jobs NOT already in the seen list or tracker.
|
||||
|
||||
### Step 5: Present Results
|
||||
|
||||
Present new jobs in a table sorted by fit (high first):
|
||||
|
||||
```
|
||||
## New Job Matches - YYYY-MM-DD
|
||||
|
||||
Found X new positions (Y high, Z medium, W low match).
|
||||
|
||||
| # | Fit | Title | Company | Location | Deadline | URL |
|
||||
|---|-----|-------|---------|----------|----------|-----|
|
||||
| 1 | High | ... | ... | ... | ... | [Link](...) |
|
||||
|
||||
### High-Match Highlights
|
||||
For each high-match job, add 2-3 bullet points:
|
||||
- Why it matches your profile
|
||||
- Key requirements to check
|
||||
- Any red flags
|
||||
```
|
||||
|
||||
After presenting, ask:
|
||||
> "Want me to evaluate any of these in detail? Just give me the number(s)."
|
||||
|
||||
If the user picks a number, invoke the **job-application-assistant** skill workflow (fit evaluation first, then CV + cover letter if approved).
|
||||
|
||||
### Step 6: Update Tracker (Optional)
|
||||
|
||||
If the user decides to apply to any job, add a row to `job_search_tracker.csv`.
|
||||
|
||||
---
|
||||
|
||||
## Important Rules
|
||||
|
||||
1. **Never fabricate job postings.** Only present jobs found via actual WebSearch/WebFetch results.
|
||||
2. **Respect deduplication.** Always check seen_jobs.json AND job_search_tracker.csv before presenting.
|
||||
3. **Focus on configured geographic area.** Skip jobs that require relocation or are clearly outside commute range.
|
||||
4. **Only open positions.** Skip postings with expired deadlines or those marked as closed.
|
||||
5. **Be efficient with WebFetch.** Don't fetch every search result - use titles and snippets to pre-filter before fetching.
|
||||
6. **Parallel searches.** Use the Agent tool or parallel WebSearch calls to speed up the search phase.
|
||||
@@ -0,0 +1,76 @@
|
||||
# Search Queries for Job Scraper
|
||||
|
||||
<!-- SETUP: Customize these queries based on your skills, target roles, and location -->
|
||||
|
||||
## Search Sites
|
||||
|
||||
Primary (Danish job market):
|
||||
- **jobindex.dk** - largest Danish job board
|
||||
- **linkedin.com/jobs** - LinkedIn job listings (filter: Denmark / your city)
|
||||
- **karriere.dk** - IDA's job board (engineering/science roles)
|
||||
- **jobfinder.dk** - another major Danish job board
|
||||
- **akademikernes.dk** - academic union job board
|
||||
|
||||
Secondary (company career pages via Google):
|
||||
- Direct Google searches with `site:` filters for known target companies
|
||||
|
||||
## Query Categories
|
||||
|
||||
Queries are grouped by priority. Each query should be combined with your location terms (e.g. "Copenhagen", "Sjælland", "Hovedstaden") where the site supports it.
|
||||
|
||||
### Priority 1: [YOUR_PRIMARY_ROLE_TYPE]
|
||||
|
||||
These match your strongest and most desired career direction.
|
||||
|
||||
```
|
||||
site:jobindex.dk "[YOUR_PRIMARY_JOB_TITLE]" [YOUR_CITY]
|
||||
site:jobindex.dk "[YOUR_KEY_SKILL]" [YOUR_CITY]
|
||||
site:linkedin.com/jobs "[YOUR_PRIMARY_JOB_TITLE]" [YOUR_COUNTRY]
|
||||
```
|
||||
|
||||
### Priority 2: [YOUR_DOMAIN_EXPERTISE]
|
||||
|
||||
These match your domain expertise.
|
||||
|
||||
```
|
||||
site:jobindex.dk [YOUR_DOMAIN_KEYWORD_1] [YOUR_CITY] OR [YOUR_REGION]
|
||||
site:jobindex.dk [YOUR_DOMAIN_KEYWORD_2] [YOUR_COUNTRY]
|
||||
site:linkedin.com/jobs [YOUR_DOMAIN_KEYWORD_1] [YOUR_CITY] [YOUR_COUNTRY]
|
||||
```
|
||||
|
||||
### Priority 3: [YOUR_ADJACENT_ROLE_TYPE]
|
||||
|
||||
Adjacent roles you could pivot into.
|
||||
|
||||
```
|
||||
site:jobindex.dk "[YOUR_ADJACENT_TITLE_1]" [YOUR_KEY_SKILL] [YOUR_CITY]
|
||||
site:jobindex.dk "[YOUR_ADJACENT_TITLE_2]" [YOUR_KEY_SKILL] [YOUR_CITY]
|
||||
```
|
||||
|
||||
### Priority 4: Broader Technical / Consulting
|
||||
|
||||
Wider net for general technical roles.
|
||||
|
||||
```
|
||||
site:jobindex.dk [YOUR_KEY_SKILL] developer [YOUR_CITY]
|
||||
site:linkedin.com/jobs "[YOUR_KEY_SKILL] developer" [YOUR_CITY]
|
||||
site:jobindex.dk "technical consultant" [YOUR_DOMAIN] [YOUR_CITY]
|
||||
```
|
||||
|
||||
## Location Filter
|
||||
|
||||
When evaluating results, verify the job location is within reasonable commute distance from your home. Define acceptable areas:
|
||||
- [YOUR_CITY] and surrounding areas
|
||||
- [ACCEPTABLE_AREA_1]
|
||||
- [ACCEPTABLE_AREA_2]
|
||||
- [BORDERLINE_AREA] (borderline - ~X min by transit)
|
||||
- [TOO_FAR_AREA] (too far)
|
||||
|
||||
## Date Filter
|
||||
|
||||
Only include jobs posted within the last 14 days, or with an application deadline that has not yet passed. If a posting date cannot be determined, include it but flag as "date unknown".
|
||||
|
||||
## Adapting Queries
|
||||
|
||||
If the user specifies a focus area, select queries from the matching category and also generate 2-3 custom queries for that focus. For example:
|
||||
- "/scrape [focus_area]" -> relevant category queries + custom focus-specific queries
|
||||
Reference in New Issue
Block a user