Card Profile Recommend
v1.0.0Analyze a multi-card portfolio — grade each card (MVP / Keep / Consider Dropping), recommend 2–3 new additions with churning strategy, apply issuer rules (Ch...
Like a lobster shell, security has layers — review code before you run it.
License
Runtime requirements
SKILL.md
Card Profile Recommend
Return a graded portfolio audit plus opinionated new-card recommendations with signup bonus strategy, churning paths, and issuer rule checks.
When To Use
When the user wants to know which cards to keep, drop, or add next. Trigger phrases: "card-profile-recommend", "recommend cards", "what cards should I add", "credit card recommendations", "optimize my wallet", "what card should I get next", "improve my card lineup".
Input Format
The user provides a comma-separated list of cards they currently hold:
card-profile-recommend Chase Sapphire Preferred, Amex Gold, Citi Double Cash
Optional: opening dates per card (inline or separate list):
card-profile-recommend CSP (Jan 2024), Amex Gold (Mar 2023), Double Cash (2021)
When opening dates are provided, calculate exact 5/24 count and factor into grading decisions.
Workflow
- Parse card list from comma-separated input.
- Resolve each card — normalize and match to exact variants. If any card is ambiguous, return a numbered choice list for that card and stop.
- Search — run one Brave Search API call per card + gap category searches in parallel. Classify results as issuer or secondary by domain.
- Fetch pages — for each card, fetch the top issuer URL + 1 secondary (prefer thepointsguy.com). For new-card candidates, fetch up to 2 secondary pages.
- Collect — for each card: annual fee, statement credits (with conditions), earning categories with rates, welcome offer status, notable benefits.
- Portfolio economics — compute total gross fees, total claimable credits, net annual cost. Per-card net cost.
- Grade each card — MVP / Keep / Consider Dropping per grading criteria below.
- Point valuations — determine effective cpp for each currency using TPG valuations + transfer-access rule.
- Earning map — best card per category with effective value (rate × cpp).
- Identify gaps — categories earning below 2x / 2%.
- Recommend 2–3 new personal cards — fill gaps, add ecosystems, maximize SUB windows, include churning strategy.
- Build application sequence — ordered by priority with timing notes.
- Confidence — flag uncertain claims.
Step 1: Card Identity Resolution
Common Abbreviations
| Input | Resolved |
|---|---|
| CSP | Chase Sapphire Preferred |
| CSR | Chase Sapphire Reserve |
| CFU | Chase Freedom Unlimited |
| CFF | Chase Freedom Flex |
| CIP | Chase Ink Business Preferred |
| CIC | Chase Ink Business Cash |
| CIU | Chase Ink Business Unlimited |
| Amex Gold | American Express Gold Card |
| Amex Plat | American Express Platinum Card |
| Venture X | Capital One Venture X Rewards Credit Card |
| Double Cash | Citi Double Cash Card |
| Custom Cash | Citi Custom Cash Card |
| Bilt | Bilt Blue / Obsidian / Palladium (ambiguous — ask) |
| Robinhood | Robinhood Gold Card / Cash Card (ambiguous — ask) |
Supported Issuers
American Express, Bank of America, Barclays, Bilt, Capital One, Chase, Citi, Discover, Robinhood, U.S. Bank, Wells Fargo.
Step 2: Search
For each card, run one Brave Search API call:
curl -sS "https://api.search.brave.com/res/v1/web/search?q=CARD+NAME+benefits+credits+annual+fee&count=10" \
-H "X-Subscription-Token: $BRAVE_API_KEY"
Run all calls in parallel. Additionally, search for new-card candidates targeting gap categories.
Fetch Pages
For each card, fetch the top issuer URL + 1 secondary:
curl -sS -L "URL" | sed 's/<[^>]*>//g' | tr -s '\n' | head -200
Issuer Domains (for classifying results)
| Issuer | Domain |
|---|---|
| American Express | americanexpress.com |
| Bank of America | bankofamerica.com |
| Barclays | cards.barclaycardus.com |
| Bilt | bfrrewards.com |
| Capital One | capitalone.com |
| Chase | chase.com |
| Citi | citi.com |
| Discover | discover.com |
| Robinhood | robinhood.com |
| U.S. Bank | usbank.com |
| Wells Fargo | wellsfargo.com |
Grading Criteria
MVP
- Net cost ≤ $50, OR unique 3x+ earn category, OR unique high-value benefit (lounge, hotel status, primary travel insurance)
- Best rate in at least one major spend category
- Not rendered redundant by another card in wallet
Keep
- Partially justifying benefit or earn rate
- Long credit history
- Transferable points diversification
- Under 12 months old
Consider Dropping
- Fees exceed claimable credits with no unique benefit
- All categories duplicated at equal or better rate
- No-fee downgrade path exists
- Never grade Consider Dropping if the card is the sole source of a transferable-points program
Unused Card Check
After building the earning map, flag any card that does not appear as "Best Card" in any category and has an annual fee.
Point Valuation: Transfer-Access Rule
A currency is only worth full TPG value if the wallet has a card that unlocks transfers. Without one, value is 1.0¢ (cash back).
| Currency | Transfer-enabling cards | Full value |
|---|---|---|
| Chase UR | Sapphire Preferred, Sapphire Reserve | ~2.0¢ |
| Amex MR | Gold, Platinum, Green | ~2.0¢ |
| Capital One Miles | Venture X, Venture | ~1.8¢ |
| Citi TYP | Strata Premier, Strata Elite (NOT Custom Cash/Double Cash alone) | ~1.7¢ |
| Bilt Points | Any Bilt card | ~1.8¢ |
| World of Hyatt | Chase Hyatt card | ~1.8¢ |
| Marriott Bonvoy | Any Marriott co-brand | ~0.7¢ |
| Cash back | Any | 1.0¢ |
Recommendation Logic
Select 2–3 new personal cards only. Never recommend business cards. Priority order:
- Fill highest-value spend gap
- Add new transferable-points ecosystem
- Maximize signup bonus window (Chase-first if 5/24 allows)
- Avoid worsening overlap
- Prioritize elevated offers
- Diversify issuers
- Churning value — favor cards with SUB ≥ 5x annual fee, no-fee downgrade paths, and reasonable bonus cooldown windows. Note churn path explicitly.
Issuer Rules Reference
| Issuer | Rule | Detail |
|---|---|---|
| Chase | 5/24 | <5 new personal cards (all issuers) in 24 months |
| Chase | Same-day | Max 1 personal Chase app per day |
| Chase | Bonus cooldown | 48 months since last bonus on same product |
| Amex | Lifetime bonus | Once per lifetime per person per card |
| Amex | 5-credit-card limit | Max 5 Amex credit cards (charge cards excluded) |
| Amex | 1-in-5/2-in-90 | 1 app per 5 days, 2 per 90 days |
| Citi | 8/65 | No 2 Citi cards in 8 days; max 2 in 65 days |
| Citi | 48-month family | No bonus if same family opened/closed in 48 months |
| Capital One | 2-card limit | Max 2 personal cards |
| Capital One | 6-month cooling | Declines if new account in last 6 months |
Required Output Sections
## 🃏 Cards Entered
Echo back every card with resolved full official name and opening date if provided.
## 📊 Portfolio Summary
Total cards, gross fees, claimable credits, net annual cost. Note credit utilization assumptions.
## 🏅 Card Grades
Each card graded MVP / Keep / Consider Dropping with one-line rationale. Always use full official card names. Sort MVP first, then Keep, then Consider Dropping.
## 🗺️ Earning Map
Table: Category, Best Card, Rate, Currency, CPP, Effective Value. Use full official card names. CPP reflects transfer-access rule.
## 🔻 Consider Dropping
Only when applicable. Per card: fee drag, what would be lost, downgrade path. Flag unused cards (not winning any earning map category). Omit entirely when all cards grade MVP or Keep.
## 🕳️ Portfolio Gaps
Numbered list of categories earning below 2x / 2%.
## ➕ Recommended Additions
2–3 new cards. Per card: name, welcome offer, annual fee, why it fits, net first-year value, issuer rule status, priority label, churn path if applicable.
## 🎯 Signup Bonus Strategy
Ordered application sequence with timing and spend feasibility.
## ⚖️ Issuer Rules Check
Only rules relevant to recommended cards. Bold blocking rules.
## 🔍 Confidence Notes
Flag uncertain, unconfirmed, or conflicting claims.
## 🔗 Sources
Numbered list of URLs fetched, as markdown hyperlinks with "Site - Topic" labels.
Output Rules
- Use one emoji per section heading.
- Always use full official card names (e.g., "Chase Sapphire Reserve" not "CSR").
- Use numbered lists for list-heavy sections.
- Keep content to condensed facts — no prose padding.
- Omit Card Identity section when all matches are confident.
- Do not show YAML blocks in output.
Confidence Definitions
- confirmed: supported by issuer terms or multiple approved sources
- unconfirmed: plausible but not fully resolved
- conflicting: sources disagree on a material fact
Files
1 totalComments
Loading comments…
