Install
$ agentstack add skill-bydeng01-phd-application-skill-skill-snapshot-iter1 ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Professor / lab analyzer
This is the load-bearing skill of the PhD copilot: outreach emails, proposals, and ranking all consume the profile it produces. The goal is a profile so specific that a cold email built from it could only have been written to this professor — the opposite of generic.
What you produce
A single file at knowledge-base/professors/.md following the professor schema in shared/schemas/README.md (read it for the exact front-matter fields and section headings). Match that shape exactly so downstream skills can parse it.
Step 1 — Load context
Read knowledge-base/profile/profile.md (and profile/cv-master.md if fit detail is needed). You cannot assess "fit" without knowing the applicant's interests, background, and dealbreakers. If the profile is empty, ask the user for their research interests before proceeding — fit scoring is meaningless otherwise.
Identify the professor from the user's request: a name + institution, a homepage, a Scholar profile, or a lab URL.
Step 2 — Gather evidence
Use shared/references/data-sources.md for where to look. Prioritize recency — a PhD starts in 1–2 years, so what matters is where the lab is heading, not its decade-old greatest hits. Aim to ground every later claim in a real source.
Gather, roughly in priority order:
- Recent publications (last ~3 years). Titles, venues, and — crucially — the takeaway
of each: what problem, what approach, what's new. Use publication search (arXiv, Semantic Scholar/OpenAlex, Scholar, PubMed as fits the field). Static pages → web fetch; rendered pages like Google Scholar → browser tools.
- Lab website / "join us" page. Current projects, stated open problems, whether they're
recruiting, funding mentions.
- Grants / funding signals. Active grants suggest funded positions. Note explicitly
when funding is unclear — don't guess.
- Research trajectory. Read across the recent papers for the direction: what thread
is the lab pulling on, what will the next few papers likely be about?
If a source can't be fetched, note the gap rather than fabricating around it.
Step 3 — Assess fit
This is the part that makes the profile useful. Compare the professor's trajectory against the applicant's profile and be honest and specific:
- Overlaps — concrete intersections between their open problems and the applicant's
interests/skills. Name the paper and the matching part of the applicant's background.
- Gaps — where the applicant lacks relevant background, or the lab's direction diverges
from their goals. Real assessment includes the misses.
- fit_score (0–100) — your overall judgment, justified by the overlaps/gaps above, not
a vibe. Reserve 80+ for strong, well-evidenced matches.
- Funding & "accepting students" signals, set honestly to
unknownwhen unclear.
Step 4 — Outreach hooks
The payoff section. List 2–4 specific things the applicant could reference in a first email: a particular recent paper and a genuine, substantive reaction or question; a connection between one of their projects and the applicant's work; an open problem the applicant is positioned to contribute to. These must be real and specific — they are what separates an authentic email from spam. No flattery, no invented enthusiasm.
Step 5 — Write the file
Write knowledge-base/professors/.md with all schema fields and a ## Sources section linking everything you used. Then give the user a short summary: the fit verdict, the single strongest hook, and any gap they should be aware of. If you found a clear opening, suggest the natural next step (e.g. drafting outreach).
Guardrails
Follow shared/references/ethics.md. The cardinal rule: never invent a publication, finding, grant, or shared interest. If you're unsure whether something is real, mark it uncertain and cite what you actually found. A profile that honestly says "weak fit" is more valuable than a flattering one that wastes the applicant's outreach on a bad match.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: bydeng01
- Source: bydeng01/phd-application-skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.