* enhance: Improve prompt-engineer agent (automated review)
- Fix broken reasoning framework: complete Ordering field and Necessity scale
- Remove OpenAI attribution from description; add invocation example block
- Restrict tools to Read only (text-transformation agent needs no writes)
- Add XML Structure and CoT Opportunity dimensions to reasoning template
- Move meta-instruction NOTE out of output template, place as agent directive
- Fix stray markdown bold markers on Reasoning Before Conclusions guideline
- Integrate orphaned examples bullet into the Examples guideline line
- Add concrete worked example section (classify customer feedback)
Automated review cycle | Co-Authored-By: Claude Code <noreply@anthropic.com>
* security: Harden CI/CD and repo for open-source safety
- Add --ignore-scripts to all npm ci/install in CI workflows and predeploy script
- Fix shell injection in discord-release-notification (use env vars + jq for payload)
- Add explicit permissions to all workflows (least privilege principle)
- Add root .npmrc with ignore-scripts=true
- Add .github/dependabot.yml for automated dependency security updates
- Add .github/CODEOWNERS to protect workflows, scripts, and API paths
- Expand .gitignore with *.pem, *.key, credentials.json patterns
* fix: Grant contents:read to deploy workflow so checkout works
Cubic correctly flagged that permissions: {} blocks actions/checkout.
* feat(jobs): add Claude Code jobs section with free scraping pipeline
Add a new Jobs page (/jobs) and homepage preview showing positions that
require Claude Code. The scraper uses only free sources (HN Firebase API,
HN Algolia, RemoteOK, WeWorkRemotely RSS) with no API keys needed.
Runs daily via GitHub Actions alongside existing data updates.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(jobs): address all Cubic review feedback (P1+P2)
P1 fixes:
- Location parser now skips role titles (e.g. "AI-Native Technical Operations Lead")
- Salary extraction filters out funding/revenue amounts ($37M raised)
- applyUrl validated with safeUrl() to prevent javascript: injection
P2 fixes:
- timeAgo() handles NaN/invalid dates gracefully
- WeWorkRemotely IDs use URL slug instead of non-deterministic hash()
- GitHub Action diff check includes dashboard/public/claude-jobs.json
- Remote flag also checks description body for remote indicators
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(jobs): fix mojibake encoding and false salary extraction
- strip_html() now fixes common UTF-8 mojibake patterns (’ → ', â€" → —)
- Salary validation requires k/K suffix or >= $1000 for raw amounts
- Removes false positives: $100-140, $150-300 (ambiguous), $20K (bounty)
- Adds $X/yr pattern for single-value annual salaries
Addresses Cubic review comments #8, #9, #10.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(jobs): add Anthropic Careers source, auth gate, and UI improvements
- Add Greenhouse API collector for Anthropic career listings mentioning Claude Code
- Add Clerk auth gate requiring sign-in to view job links
- Add auth banner with sign-in CTA for unauthenticated users
- Improve description/tag color contrast (#999/#aaa) for dark theme
- Add Anthropic source badge (purple)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(jobs): address Cubic review — avoid unnecessary rerenders and remove candidate cap
- useGlobalAuth: only call setState when values actually change (prevents 500ms rerender loop)
- Remove hard cap of 80 Anthropic candidates to avoid dropping valid Claude Code roles
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Updated all references to point to new script locations:
- generate_components_json.py → scripts/generate_components_json.py
- generate_trending_data.py → scripts/generate_trending_data.py
Files updated:
- .github/workflows/update-json-data.yml
- CLAUDE.md
- docs/CLAUDE.md
- docs/api/README.md
- docs/guides/growth-kit-pr.md
- cli-tool/src/validation/README.md
This ensures CI/CD workflows and documentation are in sync with the new project structure.
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Runs daily at 3:00 AM UTC
- Generates components.json and trending-data.json
- Auto-commits changes if data is updated
- Can be triggered manually via workflow_dispatch
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>