When a Korean user asks where to donate by location or category, this skill returns a shortlist of verified nonprofits with links back to the official 1365 government portal for final confirmation. It parses location strings like "서울 마포구" and categories like "동물보호" or "아동," then ranks a curated fallback list and constructs best-effort verification URLs without scraping or automation. It never executes payments, submits forms, or auto-enrolls recurring donations. The workflow is simple: extract location and category, call the Node helper, cite the 1365 link, and remind the user to check campaign status and tax receipt eligibility before giving. It's a read-only recommendation layer for a high-stakes decision.
npx -y skills add nomadamas/k-skill --skill donation-place-search --agent claude-codeInstalls into .claude/skills of the current project.
사용자가 “어디에 기부하면 좋을지”, “서울 아동 기부처”, “동물보호 기부처 추천”처럼 묻는 경우 장소와 카테고리 기준으로 기부처 후보를 추천한다.
location: 선택. 예: 서울 마포구, 부산 해운대구, 제주, 온라인category: 선택. 예: 아동, 동물보호, 환경, 재난 구호, 장애, 노인, 생계, 의료, 해외구호limit: 선택. 기본 5개위치나 카테고리가 없으면 보수적으로 전국·일반/종합 후보와 1365 공식 확인 보조 링크를 제공한다. 비대화형 자동화에서는 임의로 좁히지 말고 “입력 없음”을 명시한다.
https://www.nanumkorea.go.kr/ currently returns a notice that 1365 기부포털 has moved/integrated into 1365 자원봉사.https://www.1365.go.kr/dntn/main.do.https://www.1365.go.kr/dntn/main.do as the official public verification entry point.1365 pages can be slow or unavailable to headless HTTP clients, so the package does not depend on brittle screen scraping. It builds a best-effort official-entry/search-assist link with the user’s location/category keywords, then ranks a curated fallback list locally. The package does not assert that 1365 has already verified each returned candidate:
const { recommendDonationPlaces } = require("donation-place-search");
const result = recommendDonationPlaces({
location: "서울 마포구",
category: "동물",
limit: 3
});
console.log(result.items);
console.log(result.officialSearchUrl);
The returned officialSearchUrl is a best-effort verification assist: open it as an official 1365 entry point, then confirm current registration and campaign status before giving the final answer.
location, category, and optional limit from the user request.node - <<'NODE'
const {
recommendDonationPlaces,
formatDonationRecommendationReport
} = require("donation-place-search");
const result = recommendDonationPlaces({
location: "서울 마포구",
category: "동물",
limit: 3
});
console.log(formatDonationRecommendationReport(result));
NODE
The npm helper returns:
{
"location": { "raw": "서울 마포구", "province": "서울", "district": "마포구" },
"category": "animals",
"items": [
{
"name": "동물권행동 카라",
"categories": ["animals"],
"coverage": "local",
"homepageUrl": "https://www.ekara.org/",
"officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...",
"match": { "category": true, "local": true, "nationwide": false }
}
],
"officialSearchUrl": "https://www.1365.go.kr/dntn/main.do?...",
"meta": { "source": "curated-fallback-plus-1365-search-assist" }
}
k-skill-proxy와 API key가 필요 없다.juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills