self-check
Skill4 starsChanged 7 months agoMITView on GitHub
Pre-flight check that reads the user's config, profile, resume, and application history before starting any job search or application task. This skill MUST run at the start of every new conversation or session involving job applications. Trigger automatically when any other job-application skill is invoked, or when the user starts a new job search session. Also trigger on: "start applying", "new session", or any job-related request at the beginning of a conversation. Think of this as the initialization routine — it ensures every other skill operates with the most current information.
We split this skill into the rules it gives an agent
22 rules. 0 are common, 17 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
17
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 23
Read the config file to get the user's personal settings:
- Distinctive: line 34
Ask these questions one by one (group related ones together to save time):
- Very specific: line 45
After collecting answers, generate a complete config.yml and save it to the skills directory.
- Very specific: line 46
Run validate_config.py to confirm everything is valid.
- Distinctive: line 51
All downstream skills reference config values — never hardcode personal information.
- Distinctive: line 55
Read the auto-memory file to get the user's current information:
- Distinctive: line 83
If multiple versions exist, use the newest one
- Distinctive: line 84
If resume is older than 2 weeks, flag: "Your resume was last updated on [date] — would you like to update it first?"
- Very specific: line 104
Read config.registered_files — this is the user's file registry.
- Distinctive: line 105
Verify the path still exists
- Distinctive: line 106
If a file is missing, warn the user: "⚠ [filename] is registered but not found at [path]"
- Distinctive: line 107
Read the file contents (or at least note the file type/size) so downstream skills can use them
- Distinctive: line 120
If new files are found, ask the user:
- Very specific: line 132
When the user says yes, add the file(s) to config.registered_files with:
- Distinctive: line 137
Also handle "remember this file" mid-conversation: If at any point during a session the user says "remember this file", "add this to my …
- Very specific: line 138
Add it to config.registered_files
- Distinctive: line 144
Read any feedback memory files in auto-memory:
- Distinctive: line 156
If a Job Tracker spreadsheet exists, read it to get:
- Distinctive: line 164
After completing all checks, give a brief status report AND proactively ask the user to set this session's workload:
- Distinctive: line 190
If the user only wants to evaluate a specific JD they've already pasted (not searching), skip question 1 and only ask question 2.
- Distinctive: line 192
Keep the report concise — the questions are the most important part.
- Distinctive: line 200
New projects: If profile mentions projects not in the cover letter templates, flag them as potential new material
“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Self-Check: Pre-Flight Initialization
This skill is the startup routine for the job application system. It reads all relevant files and memory to build an up-to-date picture before any search, writing, or application work begins. Without this step, other skills risk using stale data — wrong resume version, outdated skill list, or duplicate applications.
When to Run
Run this check:
- At the start of every new conversation that involves job applications
- Before the first use of any job-application skill in a session
- When the user explicitly asks to refresh or re-check their profile
- You only need to run it once per session — not before every single skill invocation
Check Sequence
Step 0: Load Configuration
Read the config file to get the user's personal settings:
File: [skills-root]/config.ymlThis file contains all personal data (name, email, skills, projects, rubric weights, file paths, etc.).
If config.yml doesn't exist or still has placeholder values, enter Interactive Setup Mode:
- Tell the user: "Looks like this is your first time! I'll help you set up your profile. Just answer a few questions."
- Ask these questions one by one (group related ones together to save time):
- "What's your full name? (and preferred name if different)"
- "Email and phone number?"
- "School, degree, and major? Expected graduation year?"
- "Current job title and company? (or N/A if none)"
- "List your strongest technical skills (e.g., Python, SQL, Excel...)"
- "Briefly describe 1-3 key projects you've done (name + one sentence each)"
- "Do you need visa sponsorship to work? (yes/no)"
- "What cities are you open to working in?"
- "What types of roles are you looking for? (e.g., Data Analyst Intern, PM Intern...)"
- "Where is your resume file located? (e.g., ~/Desktop/MyResume.pdf)"
- After collecting answers, generate a complete config.yml and save it to the skills directory.
- Run
validate_config.pyto confirm everything is valid. - Then proceed with the normal check sequence.
This way, new users never need to manually edit YAML. The conversation handles it.
All downstream skills reference config values — never hardcode personal information.
Step 1: Read Personal Profile
Read the auto-memory file to get the user's current information:
File: [session]/mnt/.auto-memory/user_background.mdCross-reference with config.yml — if they conflict, trust the config file (it's the user's explicit settings) and flag the discrepancy.
Extract and verify:
- Name, email, phone (from config)
- Current education (school, degree, expected graduation)
- Current role and responsibilities
- Key projects and their details
- Skills stack
- Visa status
If neither the config nor the memory file has adequate info, ask the user to provide it.
Step 2: Read Latest Resume
Find and read the user's most recent resume:
Path: [config.files.resume]- Identify the most recent version by filename date or file modification time
- Note the filename and date for use in application-filler
- If multiple versions exist, use the newest one
- If resume is older than 2 weeks, flag: "Your resume was last updated on [date] — would you like to update it first?"
Step 3: Scan Working Folder
List the contents of the user's working folder (config.files.cover_letter_dir) to understand:
Application history:
- Which cover letters exist? (pattern:
[Company]_CoverLetter_*.pdf) - Which JD snapshots exist? (pattern:
[Company]_JD_*.md) - Is there a Job Tracker spreadsheet? What's the latest one?
Build a quick inventory:
Companies applied to: [list from cover letters]
Tracker file: [filename] (last updated: [date])
Resume version: [filename] (date: [date])Step 4: Read Registered Files & Detect New Ones
Read config.registered_files — this is the user's file registry. For each registered file:
- Verify the path still exists
- If a file is missing, warn the user: "⚠ [filename] is registered but not found at [path]"
- Read the file contents (or at least note the file type/size) so downstream skills can use them
Then scan the working folder for unregistered files that might be useful:
Scan: [config.files.cover_letter_dir] and [config.files.resume parent dir]
Look for: .pdf, .docx, .md, .txt, .py, .ipynb files that are NOT already:
- Cover letters (pattern: *_CoverLetter_*)
- JD snapshots (pattern: *_JD_*)
- Tracker spreadsheets (pattern: Job_Tracker_*)
- Already in config.registered_filesIf new files are found, ask the user:
I found some files I don't recognize yet:
1. 📄 portfolio_v2.pdf (added 3 days ago)
2. 📁 capstone_project/ (folder, 12 files)
3. 📄 recommendation_letter.pdf (added 1 week ago)
Want me to register any of these? They'll be available for
cover letters and applications. (Reply with numbers, or "skip")When the user says yes, add the file(s) to config.registered_files with:
path: the file pathtype: ask the user or infer from filename (resume, portfolio, transcript, writing, certificate, project_doc, reference, other)description: ask the user for a one-line description
Also handle "remember this file" mid-conversation. If at any point during a session the user says "remember this file", "add this to my profile", "这个文件也用上", or similar:
- Add it to
config.registered_files - Save the updated config.yml
- Confirm: "✓ Registered [filename] as [type]"
Step 5: Read Feedback Memory
Read any feedback memory files in auto-memory:
Files:
- [session]/mnt/.auto-memory/feedback_cover_letter.md
- [session]/mnt/.auto-memory/feedback_job_screening.mdThese contain accumulated preferences and corrections. Incorporate them into the current session.
Step 6: Check Application Tracker
If a Job Tracker spreadsheet exists, read it to get:
- Total applications submitted
- Recent applications (last 7 days)
- Any pending actions (manual uploads, follow-ups)
- Companies already applied to (for duplicate detection)
Step 7: Report & Ask Session Plan
After completing all checks, give a brief status report AND proactively ask the user to set this session's workload:
✓ Config loaded (personal data from config.yml)
✓ Resume version: [filename]
✓ Applied to: [N] companies
✓ This week: [M] applications
✓ Rubric loaded (weights, CL standards)
[⚠ Any issues that need attention]Then immediately ask these two questions before doing anything else:
Ready to go. Before we start:
1. 这次要搜索多少个岗位?(How many jobs to search & score?)
Default: [config.search.max_jobs_per_run] | Options: 5 / 10 / 20 / custom
2. 这次要全自动投递多少份?(How many to auto-apply with full pipeline?)
Default: [config.search.max_apply_per_run] | Options: 1 / 3 / 5 / custom
(Each includes: cover letter debate + form fill + tracking)Wait for the user's answer. Store these two numbers as the session limits. All downstream skills (job-search, cover-letter-writer, application-filler) must respect these limits. If the user says "随便" or doesn't specify, use the config defaults.
If the user only wants to evaluate a specific JD they've already pasted (not searching), skip question 1 and only ask question 2.
Keep the report concise — the questions are the most important part.
What to Flag
- Missing config.yml: User hasn't set up their configuration yet
- Resume too old: Last modified > 2 weeks ago
- Tracker gap: Applications in cover letter folder not in tracker
- Memory conflict: Memory says something different from config (trust config, update memory)
- New projects: If profile mentions projects not in the cover letter templates, flag them as potential new material
Integration
This skill feeds into all other job-application skills:
- job-search: Uses the duplicate list to filter already-applied companies
- job-screener: Uses the skill stack from config for matching
- cover-letter-writer: Uses project details and latest background
- application-filler: Uses the correct resume filename and personal data from config
- application-tracker: Knows the current tracker file location and row count
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 11
- xcota/pos★ 32same name
- borgr/paper-sharpener★ 19same name
- hhhyyyy99/prot-skills★ 7same name
- Ron-dali/vibe-coding-rules★ 4same name
- fagemx/prismstack★ 2same name
- Greg-Klein/implementation-factory★ 2same name
- Greg-Klein/implementation-harness★ 2same name
- shakhruz/mila-core★ 2same name
- superzhangmch/claude-code-web★ 1same name
- wizz92/skills★ 1same name
1 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- application-fillerSkill
- application-trackerSkill
- cover-letter-writerSkill
- job-screenerSkill
- job-searchSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

