Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Bid Proposal Manager

v1.0.0

입찰/사업/연구 공모 안내문을 파싱하여 벡터화하고, 제출서류 검증 및 관련 정보를 자동 추출하여 Notion 프로젝트 페이지를 생성하는 스킬. PDF, HWP, HWPX, DOCX, 웹페이지 형식의 공고문을 지원하며, PostgreSQL + pgvector로 시맨틱 검색 가능.

0· 89·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for parkbeomjun-gkgkgk/bid-proposal-manager.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Bid Proposal Manager" (parkbeomjun-gkgkgk/bid-proposal-manager) from ClawHub.
Skill page: https://clawhub.ai/parkbeomjun-gkgkgk/bid-proposal-manager
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: python3, psql
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install bid-proposal-manager

ClawHub CLI

Package manager switcher

npx clawhub@latest install bid-proposal-manager
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name/description, provided scripts (document_parser.py, proposal_analyzer.py, vectorizer.py, notion_builder.py), DB schema, and templates all align with a bid-proposal management tool. Required binaries (python3, psql) are reasonable for the claimed functionality. However, several capabilities (PostgreSQL + pgvector, Notion API, optional OpenAI/Ollama embedding providers) imply credentials and environment variables that the skill's declared requirements do not list — an inconsistency worth noting.
!
Instruction Scope
SKILL.md and platform prompts instruct running local Python scripts that will: parse uploaded files/URLs, connect to PostgreSQL + pgvector, call embedding providers (local sentence-transformers or remote OpenAI/Ollama), and call the Notion API. The instructions (and platform files) explicitly reference environment variables (DATABASE_URL, NOTION_API_KEY, EMBEDDING_PROVIDER, OPENAI_API_KEY, OLLAMA_BASE_URL) and tell the agent to execute DB and network operations. Those runtime actions require sensitive credentials and network access but the skill's declared requires.env is empty — the instructions therefore access sensitive configuration not reflected in the declared manifest.
Install Mechanism
There is no automatic install spec (instruction-only with included scripts). That reduces supply-chain risk because nothing is downloaded/executed automatically by the installer. The setup_guide suggests pip installing many packages, but those are not fetched by the skill at install time. No suspicious external download URLs or extract/install steps are present.
!
Credentials
The code and docs require/expect credentials and config: DATABASE_URL (psql/pgvector), NOTION_API_KEY (Notion integration), EMBEDDING_PROVIDER and optionally OPENAI_API_KEY or OLLAMA_BASE_URL. Despite that, the skill's declared required env vars list is empty and no primaryEnv is set. Requesting full DB credentials and a Notion token is proportionate to the claimed functionality only if limited to a dedicated DB user and a least-privilege Notion integration; the manifest should explicitly declare these credentials and justify them. Lack of declaration is an incoherence and increases the risk of accidental credential sharing.
Persistence & Privilege
The skill does not request always:true and will not be force-included. It writes to a database and can create Notion pages (expected for its purpose). It does not appear to modify other skills or system-wide agent settings. Autonomous invocation is allowed (default) but not combined with other high-privilege flags here.
What to consider before installing
What to check before installing/using this skill: - Manifest mismatch: The skill's code and documentation clearly require credentials (DATABASE_URL / psql access, NOTION_API_KEY, and optionally OPENAI_API_KEY or OLLAMA_BASE_URL), but the SKILL metadata declares no required environment variables. Treat this as a red flag: ask the publisher to update the manifest to list required env vars and explain why each is needed. - Limit credentials and scope: If you test/run it, create a dedicated PostgreSQL user and database with minimal privileges (not a superuser). Do not supply production DB credentials or admin accounts. For Notion, create an integration and grant it access only to the specific database/page you want the skill to manage. - Review network endpoints: The included scripts use requests for web fetch and Notion; ensure the Notion API key is only used for api.notion.com and that embedding provider endpoints (OpenAI/Ollama) are the expected official endpoints. If you must supply an OpenAI key, remember that data sent to OpenAI may leave your environment — avoid sending sensitive documents. - Run in an isolated environment: Try the skill in a sandboxed VM or container. Install dependencies manually following the setup_guide and inspect runtime behavior (network connections, DB writes) before providing real credentials or real data. - Check data retention and raw text storage: The DB schema stores raw_text and embeddings. Decide whether storing full document text in your DB is acceptable and ensure DB access is secured. - Ask for fixes/clarifications: Request that the skill author update SKILL.md/manifest to list required env vars (DATABASE_URL, NOTION_API_KEY, EMBEDDING_PROVIDER, optional OPENAI_API_KEY/OLLAMA_BASE_URL), and document exactly which network calls and external services will be used. Without these manifest updates the skill's declared requirements are inconsistent with its actual behavior. - If unsure, get a code review: If you cannot verify these points yourself, have a trusted engineer audit the code for any hidden exfil endpoints or unexpected file/system access before use.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

📋 Clawdis
Binspython3, psql
latestvk977m3cf63xzfbzbad87sy120s84b3h8
89downloads
0stars
1versions
Updated 3w ago
v1.0.0
MIT-0

Bid/Proposal Manager (입찰·공모 관리 스킬)

입찰, 사업, 연구 공모 안내문을 다양한 포맷(PDF, HWP, HWPX, DOCX, 웹페이지)에서 파싱하여, 핵심 정보를 자동 추출하고 벡터화(PostgreSQL + pgvector)한 뒤, Notion 프로젝트 DB와 하위 페이지로 체계적으로 정리하는 종합 스킬.

아키텍처

┌──────────────────────────────────────────────────────────────┐
│                    입력 소스 (Input Sources)                   │
│  PDF │ HWP/HWPX │ DOCX │ 웹페이지(URL)                        │
└────────────┬─────────────────────────────────────────────────┘
             ▼
┌──────────────────────────────────────────────────────────────┐
│             문서 파서 (document_parser.py)                     │
│  포맷 자동 감지 → 텍스트 추출 → 구조화된 섹션 분리              │
└────────────┬─────────────────────────────────────────────────┘
             ▼
┌──────────────────────────────────────────────────────────────┐
│           공고문 분석기 (proposal_analyzer.py)                  │
│  핵심 필드 추출: 사업명, 기한, 자격요건, 제출서류, 예산 등       │
│  제출서류 체크리스트 자동 생성                                   │
│  작성 요령(목차, 분량, 형식) 추출                               │
└────────────┬─────────────┬───────────────────────────────────┘
             │             ▼
             │  ┌──────────────────────────────────────────────┐
             │  │       벡터화 엔진 (vectorizer.py)              │
             │  │  텍스트 → 임베딩 → PostgreSQL + pgvector 저장  │
             │  │  시맨틱 검색, 유사 공고 비교, RAG 지원           │
             │  └──────────────────────────────────────────────┘
             ▼
┌──────────────────────────────────────────────────────────────┐
│          Notion 빌더 (notion_builder.py)                       │
│  프로젝트 DB 생성/업데이트 + 상세 하위 페이지 자동 생성          │
│  제출서류 체크리스트, 일정표, 자격요건 정리                       │
└──────────────────────────────────────────────────────────────┘

워크플로우

Step 1: 공고문 입력

사용자로부터 입찰/공모 안내문을 받는다:

# PDF 파일
python3 scripts/document_parser.py parse --input announcement.pdf --output parsed.json

# HWP/HWPX 파일
python3 scripts/document_parser.py parse --input announcement.hwp --output parsed.json

# DOCX 파일
python3 scripts/document_parser.py parse --input announcement.docx --output parsed.json

# 웹페이지 URL
python3 scripts/document_parser.py parse --url "https://www.g2b.go.kr/..." --output parsed.json

# 여러 파일 일괄 처리
python3 scripts/document_parser.py batch --dir ./announcements/ --output batch_parsed.json

Step 2: 핵심 정보 추출

공고문에서 구조화된 정보를 자동 추출한다:

python3 scripts/proposal_analyzer.py analyze --input parsed.json --output analysis.json

추출 필드:

카테고리추출 항목
기본 정보사업명, 공고번호, 발주기관, 공고일, 사업유형
일정제출마감일, 설명회일, 질의응답 기한, 선정발표일
자격요건참가자격, 필수조건, 우대조건, 제한사항
제출서류필수서류 목록, 선택서류, 서류별 양식/형식 요구사항
예산/규모총 사업비, 정부출연금, 민간부담금, 사업 기간
작성 요령제안서 목차, 분량 제한, 평가 기준, 배점표
연락처담당자, 전화번호, 이메일, 접수처

Step 3: 벡터화 및 저장

추출된 텍스트를 임베딩하여 PostgreSQL + pgvector에 저장한다:

# 단일 공고 벡터화
python3 scripts/vectorizer.py store --input analysis.json

# 유사 공고 검색
python3 scripts/vectorizer.py search --query "AI 기반 교통 분석 연구" --top 5

# 특정 공고와 유사한 과거 공고 비교
python3 scripts/vectorizer.py similar --project-id "BID-2026-0042" --top 3

벡터화 대상:

  • 사업명 + 사업 개요 (핵심 벡터)
  • 자격요건 텍스트
  • 제출서류 상세 설명
  • 평가 기준 / 작성 요령 전문

Step 4: 제출서류 검증

사용자가 준비한 서류와 공고 요구사항을 대조 검증:

python3 scripts/proposal_analyzer.py verify \
  --requirements analysis.json \
  --prepared-dir ./my_documents/ \
  --output verification.json

검증 항목:

  • 필수서류 누락 여부 ✅/❌
  • 파일명 규칙 준수 여부
  • 분량(페이지 수) 준수 여부
  • 필수 포함 항목(목차) 확인
  • 제출 기한 경과 여부

Step 5: Notion 페이지 생성

분석 결과를 Notion 프로젝트 DB와 하위 페이지로 자동 생성:

python3 scripts/notion_builder.py create \
  --input analysis.json \
  --database-id "YOUR_NOTION_DB_ID" \
  --create-subpages

Notion 구조:

📁 입찰/공모 프로젝트 DB (데이터베이스)
├── 속성: 사업명, 발주기관, 마감일, 상태, 예산, 유형, 자격충족여부
│
├── 📄 [사업명] 상세 페이지
│   ├── 📋 기본 정보 (callout)
│   ├── 📅 주요 일정 (table)
│   ├── ✅ 제출서류 체크리스트 (to-do list)
│   ├── 📝 자격요건 (bulleted list)
│   ├── 💰 예산/규모 (table)
│   ├── 📖 제안서 작성 요령
│   │   ├── 목차 구조
│   │   ├── 분량 제한
│   │   └── 평가 기준/배점표
│   ├── 🔍 유사 공고 (벡터 검색 결과)
│   └── 📎 원본 파일 링크
│
├── 📄 [다른 사업명] 상세 페이지
│   └── ...

문서 파싱 상세

PDF 파싱

# pdfplumber 사용 (표 추출에 강함)
pip install pdfplumber
# 또는 PyMuPDF (fitz) 사용 (일반 텍스트 추출에 빠름)
pip install PyMuPDF

HWP/HWPX 파싱

# hwp5 (한글 파일 텍스트 추출)
pip install pyhwp
# HWPX는 ZIP 기반 XML이므로 직접 파싱
# hwpx → unzip → content.xml → XML 파싱

DOCX 파싱

pip install python-docx

웹페이지 파싱

# requests + BeautifulSoup
pip install requests beautifulsoup4
# 또는 Playwright (JS 렌더링 필요 시)

포맷을 자동 감지하여 적합한 파서를 선택한다. document_parser.py가 이를 처리.


PostgreSQL + pgvector 설정

사전 요구사항

# PostgreSQL 15+ 설치 확인
psql --version

# pgvector 확장 설치
# macOS (Homebrew)
brew install pgvector

# Ubuntu/Debian
sudo apt install postgresql-15-pgvector

# 설치 확인
psql -c "CREATE EXTENSION IF NOT EXISTS vector;"

DB 스키마 생성

psql -f references/db_schema.sql

또는 스크립트로:

python3 scripts/vectorizer.py init-db --db-url "postgresql://user:pass@localhost:5432/biddb"

임베딩 방식

방식설명비고
OpenAI APItext-embedding-3-small (1536 dim)API 키 필요
Sentence Transformersall-MiniLM-L6-v2 (384 dim)로컬 무료
Ollamanomic-embed-text (768 dim)로컬 무료

기본값은 Sentence Transformers (로컬). 환경변수 EMBEDDING_PROVIDER로 변경 가능.


CLI 명령어 요약

# === 문서 파싱 ===
python3 scripts/document_parser.py parse --input FILE --output parsed.json
python3 scripts/document_parser.py parse --url URL --output parsed.json
python3 scripts/document_parser.py batch --dir DIR --output batch.json

# === 공고 분석 ===
python3 scripts/proposal_analyzer.py analyze --input parsed.json --output analysis.json
python3 scripts/proposal_analyzer.py verify --requirements analysis.json --prepared-dir DIR
python3 scripts/proposal_analyzer.py checklist --input analysis.json

# === 벡터화 ===
python3 scripts/vectorizer.py init-db
python3 scripts/vectorizer.py store --input analysis.json
python3 scripts/vectorizer.py search --query "검색어" --top N
python3 scripts/vectorizer.py similar --project-id ID --top N

# === Notion 연동 ===
python3 scripts/notion_builder.py create --input analysis.json --database-id DB_ID
python3 scripts/notion_builder.py update --project-id ID --input analysis.json
python3 scripts/notion_builder.py dashboard --database-id DB_ID

환경변수

# PostgreSQL 연결
export PGHOST=localhost
export PGPORT=5432
export PGDATABASE=biddb
export PGUSER=your_user
export PGPASSWORD=your_password
# 또는 통합 URL
export DATABASE_URL="postgresql://user:pass@localhost:5432/biddb"

# 임베딩 설정
export EMBEDDING_PROVIDER=sentence_transformers  # 또는 openai, ollama
export OPENAI_API_KEY=sk-...                      # OpenAI 사용 시
export OLLAMA_BASE_URL=http://localhost:11434      # Ollama 사용 시

# Notion API
export NOTION_API_KEY=ntn_...
export NOTION_DATABASE_ID=...                      # 기본 프로젝트 DB ID (선택)

보안 및 주의사항

  • 개인정보: 공고문 내 개인정보(담당자 연락처 등)는 벡터화하지 않음
  • API 키: 환경변수로만 관리, 코드에 하드코딩 금지
  • 저작권: 공고문 원문은 요약+출처 링크 방식으로 Notion에 기록
  • DB 백업: 정기적으로 pg_dump를 권장

참고 파일

  • scripts/document_parser.py — 다중 포맷 문서 파서
  • scripts/proposal_analyzer.py — 공고문 분석기 + 제출서류 검증기
  • scripts/vectorizer.py — pgvector 벡터화 엔진
  • scripts/notion_builder.py — Notion 페이지 자동 생성기
  • references/db_schema.sql — PostgreSQL + pgvector 스키마
  • references/field_taxonomy.json — 입찰 분야 분류 및 필드 정의
  • references/setup_guide.md — 환경 설정 가이드
  • templates/notion_template.json — Notion 페이지 템플릿 구조

Comments

Loading comments...