# Residency Program Finder

> Research, verify, compare, and rank U.S. residency programs for an applicant profile, including current-cycle eligibility, visa policy, signaling, interview metrics, international-medical-school representation, medical-school-country ties, fellowships, and reach/target/safety tiers. Use for application lists, signal allocation, or vetting programs; compose with current web search and the Browser skill for signed-in or JavaScript pages.

- Skill: `muhammadali-k/residency-program-finder` (Agent Skill, multi-file: 10 files)
- Install (CLI): `npx skillmds@latest add muhammadali-k/residency-program-finder`
- Raw SKILL.md: https://api.skillmd.com/api/skills/muhammadali-k/residency-program-finder/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: muhammadali-k (https://skillmd.com/u/muhammadali-k)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/muhammadali-k/residency-program-finder

---


# Residency program finder

Build an evidence-backed application list without confusing applicant citizenship, medical-school country, and program roster composition.

## Research surfaces

Use current web search and page opening for public program, GME, AAMC, ERAS, NRMP, FREIDA, and specialty-society sources. Use the installed `browser:control-in-app-browser` skill—or the user's attached `@Chrome` session—when a page requires login, interaction, or JavaScript rendering. Work only in the user's authenticated session; never request or expose passwords.

For workbook creation, follow the installed `spreadsheets:Spreadsheets` contract. Load the Codex workspace dependencies and retain the exact loader-returned paths as `WORKSPACE_PYTHON`, `WORKSPACE_NODE`, and `WORKSPACE_NODE_MODULES`; do not use system, global, or repo-local runtimes or packages.

This is time-sensitive, high-stakes guidance. Browse for every real recommendation and cite the exact supporting page. Do not rely on remembered signal counts, visa policies, eligibility rules, or roster composition.

## Keep three concepts separate

1. **Visa/citizenship status:** supplied by the applicant or stated by a program. It cannot be inferred from a name or medical school.
2. **Medical-school country:** observable only when a roster or official profile identifies the school. Use this to describe `international-medical-school representation` and `medical-school-country affinity`.
3. **Published applicant-type metrics:** Residency Explorer may label an interview-rate column `Non-US IMG`. Preserve that label as a source-defined applicant metric, but never turn it into a roster or nationality inference.

Never infer nationality, citizenship, ethnicity, visa need, or language from a name, photo, surname, or school.

## Workflow

### 1. Build the applicant profile

Capture only details needed for program fit:

- specialty and application cycle;
- degree type and medical-school country;
- graduation year and intended residency start date;
- Step/COMLEX results and attempt history;
- ECFMG status where applicable;
- visa requirement stated by the applicant;
- geography and meaningful ties;
- career goals, desired fellowship/research setting, and program-type preference;
- risk tolerance and priority weights;
- own-school alumni or direct program connections.

Default to Internal Medicine only when specialty is omitted and proceeding without clarification is reasonable.

### 2. Discover a broad candidate pool

Read `references/data-sources.md`. Use official directories and reputable aggregators to discover programs and source-defined interview/signal metrics. Aggregators are leads, not proof of current visa policy, roster composition, or eligibility.

Do not apply a universal numerical `IMG-friendly` threshold. A roster's international-medical-school share describes current trainees, not an individual applicant's probability of interview or match.

### 3. Verify serious candidates on official current-cycle sources

Read `references/website-verification.md`. For each serious candidate, verify:

- current resident roster and roster year;
- medical schools and school countries only when explicitly published;
- application-cycle eligibility and graduation-year/attempt rules;
- current visa policy, including program-vs-GME conditions;
- program type and target fellowship/research opportunities;
- official program identity/ACGME ID when similarly named programs could be confused.

Record the source URL, page date or cycle, and access date for each volatile field. If an official page is undated or conflicts with another current official page, label the conflict and do not resolve it by guesswork.

### 4. Verify current signaling rules

Read `references/signals-and-geography.md`. For the named specialty and cycle, verify signal quantity/tiering and geographic-preference rules from current AAMC/ERAS and, where relevant, specialty-society guidance. Do not reuse a prior-cycle count.

Residency Explorer is optional and signed-in. Read `references/residency-explorer.md` before using it. Ask the applicant to log in and accept any terms themselves. Get explicit consent before entering personal scores.

### 5. Tier with uncertainty

Use `Reach`, `Target`, and `Safety` as decision-support labels, never guarantees. Base them on the whole profile:

- hard eligibility and visa fit;
- source-defined interview metrics for the relevant applicant type;
- score ranges and attempt/graduation rules;
- documented international-medical-school representation and own-school ties;
- program selectivity, mission fit, geography, and career goals;
- freshness and confidence of the evidence.

Exclude programs that fail a verified hard requirement. When data are missing, lower confidence rather than inventing precision. No residency is a true safety.

### 6. Allocate signals

Honor the user's non-negotiable choices. Prefer programs the applicant genuinely wants and where a current, relevant metric or meaningful tie suggests the signal could matter. Do not assume signals are always wasted on lower-tier programs; state the tradeoff and tailor the portfolio to risk tolerance.

### 7. Produce auditable outputs

Resolve `<skill-dir>` to the directory that contains this `SKILL.md`, then create `programs.json` and optional `config.json` using `references/output-schema.md`. Build the workbook through the artifact-tool launcher and optionally emit task-local PNG previews for visual QA:

```bash
"$WORKSPACE_PYTHON" <skill-dir>/scripts/build_workbook.py programs.json \
  --config config.json --out "program-list.xlsx" --preview-dir work/residency-preview \
  --node "$WORKSPACE_NODE" --node-modules "$WORKSPACE_NODE_MODULES"
"$WORKSPACE_PYTHON" <skill-dir>/scripts/build_interactive_list.py \
  programs.json --config config.json --out "apply-list.html"
```

Use the Spreadsheets skill to inspect workbook values/formulas, scan for formula errors, and inspect every preview. Reconcile the summary counts, the program table, and the plain-text official-source URL column before delivery. If the loader runtime or artifact tool is unavailable, report a blocker; do not fall back to another workbook library.

Both builders refuse existing output files by default, and the workbook builder also refuses collisions with its named preview PNGs. Use `--overwrite` only when the colliding files are known disposable build artifacts; never use it for a user source file.

Deliver:

- the ranked program table;
- a short strategy narrative and signal rationale;
- citations for every current official claim;
- explicit conflicts/corrections where an aggregator differed from an official source;
- confidence/freshness labels and a final recheck list for the applicant.

## Guardrails

- Program/GME pages govern their own current policies; national organizations govern national-cycle rules.
- Do not describe a resident as sharing the applicant's nationality. Say the roster lists a medical school in the applicant's medical-school country.
- Do not equate international-medical-school share with visa-requiring share.
- Do not fabricate resident counts, percentages, interview rates, signal effects, or eligibility.
- Do not accept legal terms, submit forms, enter personal data, or modify an application without explicit authorization.
- Reverify every shortlisted program immediately before the applicant certifies or submits the application.

## References

- `references/data-sources.md` — authority and interpretation by source.
- `references/website-verification.md` — official-site verification and confidence labels.
- `references/residency-explorer.md` — signed-in, visible-UI workflow and metric interpretation.
- `references/signals-and-geography.md` — current-cycle signal and geographic strategy.
- `references/output-schema.md` — JSON schemas for the bundled builders.

