etps
CLAUDE.md1 starsChanged 11 months agoMITView on GitHub
ETPS (Enterprise-Grade Talent Positioning System) is an AI-powered resume and cover letter tailoring system that optimizes job application materials for specific positions. Tech Stack: - Backend: Python 3.13, FastAPI, SQLAlchemy, Pydantic - Frontend: Next.js + shadcn/ui (complete) - Database: SQLite (dev), PostgreSQL (prod) - Vector Store: Qdrant (semantic search) - LLMs: Claude (primary), GPT-4o (fallback), text-embedding-3-small (embeddings) Completed: Phase 1A (Sprints 1-10) + Phase 1B (Sprints 11-12) Next: Phase 1C - Sprint 13 (Portfolio Security) -> Sprint 14 (Cloud Deployment)…
In this repository7 other files it gives its agents.
- fastapi-backendSkill
- llm-integrationSkill
- nextjs-frontendSkill
- project-documentationSkill
- python-testingSkill
- security-reviewSkill
- sqlalchemy-databaseSkill
The file
Show its rules and text
We split this CLAUDE.md into the rules it gives an agent
13 rules. About 0 are common, 8 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
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 32
Security review: Use the reviewer agent to check for vulnerabilities
- Distinctive: line 38
Update documentation: if sprint completed
- Very specific: line 40
Update data model docs: if backend/db/models.py changed
- Very specific: line 41
Update docs/DATA_MODEL.md with new fields/entities
- Distinctive: line 42
Update JSON schema examples if applicable
- Very specific: line 55
Read the sprint tasks from docs/IMPLEMENTATION_PLAN.md
- Distinctive: line 56
Create todo list with all tasks
- Distinctive: line 58
Write/update tests (target: all tests pass)
- Distinctive: line 60
Commit with proper message
- Very specific: line 65
All services in backend/services/ follow this pattern:
- Very specific: line 73
Use pytest with pytest-asyncio
- Distinctive: line 94
Injection: Use parameterized queries, validate all inputs
- Distinctive: line 96
Data Exposure: No secrets in code, use env vars
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
ETPS - Claude Code Project Configuration
Project Overview
ETPS (Enterprise-Grade Talent Positioning System) is an AI-powered resume and cover letter tailoring system that optimizes job application materials for specific positions.
Tech Stack:
- Backend: Python 3.13, FastAPI, SQLAlchemy, Pydantic
- Frontend: Next.js + shadcn/ui (complete)
- Database: SQLite (dev), PostgreSQL (prod)
- Vector Store: Qdrant (semantic search)
- LLMs: Claude (primary), GPT-4o (fallback), text-embedding-3-small (embeddings)
Key Documentation
ETPS_PRD.md- Product Requirements Document (source of truth)docs/IMPLEMENTATION_PLAN.md- Sprint roadmap and progressdocs/ARCHITECTURE.md- System architecture and service mapdocs/DATA_MODEL.md- Database schema reference (v1.4.2)docs/cover_letter_style_guide.md- Writing style rulesbackend/README.md- Backend setup and API reference
Development Workflow
Before Every Commit
- Run all tests:
cd backend && python -m pytest -v --tb=short - Security review: Use the reviewer agent to check for vulnerabilities
- SQL injection, XSS, command injection
- Input validation and bounds checking
- Exception handling (no silent failures)
- ReDoS in regex patterns
- Update documentation if sprint completed
- Update data model docs if
backend/db/models.pychanged- Update
docs/DATA_MODEL.mdwith new fields/entities - Update JSON schema examples if applicable
- Increment version number
- Update
Commit Convention
| Type | Format | Example |
| Sprint complete | feat(sprint-N): <summary> | feat(sprint-8c): Implement pagination |
| Bug fix | fix: <summary> | fix: Resolve null pointer in critic |
| Docs | docs: <summary> | docs: Update API reference |
Sprint Implementation Pattern
- Read the sprint tasks from
docs/IMPLEMENTATION_PLAN.md - Create todo list with all tasks
- Implement each task, marking complete as you go
- Write/update tests (target: all tests pass)
- Run security review
- Commit with proper message
Code Patterns
Service Structure
All services in backend/services/ follow this pattern:
- Config loaded from
backend/config/config.yaml - Async functions for LLM calls
- Pydantic schemas in
backend/schemas/ - Database models in
backend/db/models.py
Testing Pattern
- Tests in
backend/tests/test_*.py - Use
pytestwithpytest-asyncio - Mock LLM with
services/llm/mock_llm.py - Mock vector store with
MockVectorStore
Key Services
| Service | Purpose |
resume_tailor.py | Main orchestrator for resume generation |
cover_letter.py | Cover letter generation with critic loop |
critic.py | Quality evaluation (ATS, style, truthfulness) |
skill_gap.py | Semantic skill matching and gap analysis |
pagination.py | Line budget and page layout simulation |
bullet_rewriter.py | LLM-powered bullet optimization |
summary_rewrite.py | Professional summary generation |
company_enrichment.py | Company profile enrichment (industry, culture, AI maturity) |
capability_extractor.py | LLM-based capability cluster extraction |
Security Requirements
OWASP Top 10 Considerations
- Injection: Use parameterized queries, validate all inputs
- Authentication: JWT tokens (Sprint 18)
- Data Exposure: No secrets in code, use env vars
- Input Validation: Bounds check all parameters
Code Review Checklist
- No hardcoded secrets or API keys
- Input validation on all user-facing parameters
- Specific exception handling (not bare
except:) - Regex patterns pre-compiled and length-limited
- Database queries use ORM (no raw SQL)
Current Status
Completed: Phase 1A (Sprints 1-10) + Phase 1B (Sprints 11-12) Next: Phase 1C - Sprint 13 (Portfolio Security) -> Sprint 14 (Cloud Deployment) Test Count: 711 passing
Phase Roadmap
Phase 1A: Core Quality (Sprints 1-10) COMPLETE
Phase 1B: Company Enrichment (Sprints 11-12) COMPLETE
Phase 1C: Deployment (Sprints 13-14) TARGET
Phase 2: Networking (Sprints 15-17) NOT STARTED
Phase 3: Application Tracking (Sprints 18+) DEFERREDUseful Commands
# Run tests
cd backend && python -m pytest -v
# Run specific test file
python -m pytest tests/test_pagination_allocation.py -v
# Check for issues
python -m pytest --tb=long # Full tracebacks
# Start backend dev server
uvicorn main:app --reload --port 8000
# Start frontend dev server
cd ../frontend && npm run devDoes 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.

