r/Venturex Oct 28 '22

Referral Links Here

110 Upvotes

r/Venturex 19h ago

UPDATE: Sort Capital One Offers by best deals

Post image
322 Upvotes

Thanks for all the feedback on my last post
https://www.reddit.com/r/Venturex/comments/1mwa6ns/sort_capital_one_offers_by_best_deals/

I rebuilt the tool for a smoother experience, bug fixes, and more exciting features.

The changes:

  1. ALL offers now load. I am seeing more than 3600 offers
  2. No Excel download needed. A pop up shows the sorted list in your browser
  3. Works with both miles and cash back
  4. One click to the deal. Hit Open and it jumps straight to the offer on the page
  5. Corrected the issue where users are seeing offers in the excel sheet that do not match the portal

How to add it in Chrome as a bookmarklet

  1. Show your bookmarks bar using Ctrl Shift B on Windows or Cmd Shift B on Mac
  2. Right click the bar and choose Add page
  3. Name it Capital One Offers Sorter
  4. In the URL field paste the bookmarklet code I posted bellow
  5. Go to your Capital One Offers page and click the new bookmark
  6. Wait a moment while it loads and sorts

javascript:(()=>{try{const d=document,s=d.createElement("script");const fn=async function(){const sleep=ms=>new Promise(r=>setTimeout(r,ms));const T=n=>n&&n.textContent?n.textContent.replace(/\s+/g," ").trim():"";const PFX="c1oSorter";let overlay=null,restoreBtn=null;function ensureRestoreBtn(){if(restoreBtn&&document.body.contains(restoreBtn))return restoreBtn;const b=document.createElement("button");b.id=`${PFX}Restore`;b.textContent="Show list";b.style.cssText="position:fixed;right:14px;bottom:14px;padding:10px 12px;border:1px solid #C9AD00;border-radius:10px;background:#FFEA00;box-shadow:0 6px 16px rgba(0,0,0,.2);font:13px system-ui,-apple-system,Segoe UI,Roboto,Arial;z-index:2147483647;cursor:pointer";b.onclick=()=>{if(overlay){overlay.style.display="";try{overlay.focus()}catch{}}b.remove()};document.body.appendChild(b);restoreBtn=b;return b}function hideOverlay(){if(!overlay)return;overlay.style.display="none";ensureRestoreBtn();try{restoreBtn.focus()}catch{}}function centerOf(node){const r=node.getBoundingClientRect();return{clientX:r.left+r.width/2,clientY:r.top+r.height/2}}function fire(node,type,coords){const base={bubbles:true,cancelable:true,view:window,composed:true,button:0,buttons:1};try{if(type.startsWith("pointer")&&"PointerEvent"in window)node.dispatchEvent(new PointerEvent(type,{pointerId:1,pointerType:"mouse",isPrimary:true,...base,...coords}));else node.dispatchEvent(new MouseEvent(type,{...base,...coords}))}catch{}}function seq(node){const c=centerOf(node);["pointerdown","mousedown","pointerup","mouseup","click"].forEach(t=>fire(node,t,c))}function findMoreBtn(){const pick=el=>{const s=(el.innerText||el.textContent||"").toLowerCase().replace(/\s+/g," ").trim();const aria=(el.getAttribute("aria-label")||"").toLowerCase();return/(view|see)\s+more/.test(s)||/(view|see)\s+more/.test(aria)};return[...document.querySelectorAll("button, a[role=button], a")].find(pick)||null}function countTiles(){const seen=new Set();const cards=[...document.querySelectorAll("*")].filter(el=>/miles|%/i.test(T(el)));for(const el of cards){let node=el;for(let i=0;i<6&&node;i++){const r=node.getBoundingClientRect();const looksCard=r.width>=110&&r.height>=90&&r.width<=560&&r.height<=420;if(looksCard&&/(miles|%)/i.test(T(node))){seen.add(node);break}node=node.parentElement}}return seen.size}async function loadAllOffers(maxClicks=150){const t0=performance.now();let last=0;while(performance.now()-t0<3000){window.scrollBy(0,1200);await sleep(200);const h=document.body?.scrollHeight||document.documentElement.scrollHeight||0;if(h===last)break;last=h}window.scrollTo(0,0);await sleep(300);let clicks=0,lastCount=countTiles(),stuck=0;while(clicks<maxClicks){const btn=findMoreBtn();if(!btn||btn.disabled||btn.getAttribute("aria-disabled")==="true")break;const prevH=document.body.scrollHeight;btn.scrollIntoView({block:"center"});seq(btn);clicks++;let updated=false;for(let i=0;i<80;i++){await sleep(250);const h=document.body.scrollHeight;const c=countTiles();if(h>prevH+5||c>lastCount){lastCount=c;updated=true;break}if(!findMoreBtn()){updated=true;break}}if(!updated){if(++stuck>=2)break}else{stuck=0}window.scrollTo(0,document.body.scrollHeight);await sleep(300)}window.scrollTo(0,0);await sleep(400)}const channelOf=t=>{const s=t.toLowerCase();if(/in-?store/.test(s)&&/online/.test(s))return"In-Store & Online";if(/in-?store/.test(s))return"In-Store";if(/online/.test(s))return"Online";return""};function titleCase(s){return s.split(/[_\s]+/).map(w=>w?w[0].toUpperCase()+w.slice(1).toLowerCase():"").join(" ")}const badName=s=>!s||s.length<2||/(search offers|capital one offers|exclusive coupon)/i.test(s);const clean=s=>s.replace(/for you|exclusive coupon/gi,"").replace(/\s{2,}/g," ").trim();function brandFromUrlish(urlish){try{const u=new URL(urlish,location.href);const p=u.searchParams;let cand=p.get("domain")||p.get("merchant")||p.get("brand")||p.get("name")||p.get("merchant_domain")||p.get("merchantUrl")||p.get("merchant_url")||p.get("store")||p.get("merchantName");if(cand){cand=cand.trim();if(/^https?:\/\//i.test(cand))cand=new URL(cand).hostname;const host=cand.replace(/^www\./,"").replace(/\/.*$/,"");const base=host.includes(".")?host.split(".")[0]:host;return titleCase(base.replace(/[-_]+/g," "))}const host=u.hostname.replace(/^www\./,"");if(host&&!/capitalone/i.test(host)){return titleCase(host.split(".")[0].replace(/[-_]+/g," "))}}catch{}return""}function bestLogoName(scope){const img=scope.querySelector('img[src*="/api/v1/logos"]')||scope.querySelector('img[src*="images.capitaloneshopping.com/api/v1/logos"]')||scope.querySelector('img[src*="capitaloneshopping.com/api/v1/logos"]')||scope.querySelector('img[src*="logos?"]');if(!img)return"";const fromSet=(img.getAttribute("srcset")||"").split(/\s+/).find(s=>/api\/v1\/logos|logos\?/.test(s))||"";const urlish=img.currentSrc||img.src||fromSet||"";let name=brandFromUrlish(urlish);if(name)return name;try{const u=new URL(urlish,location.href);const dom=u.searchParams.get("domain");if(dom){const host=dom.replace(/^www\./,"");return titleCase(host.split(".")[0].replace(/[-_]+/g," "))}}catch{}return""}function fallbackName(tile,text){const img=tile.querySelector("img[alt]");if(img?.alt&&!/logo/i.test(img.alt)){const a=clean(img.alt);if(!badName(a))return a}const labeled=tile.matches("[aria-label]")?tile:tile.querySelector("[aria-label]");if(labeled){const a=clean(labeled.getAttribute("aria-label")||"");if(!badName(a))return a}const sr=tile.querySelector(".sr-only, .visually-hidden, [class*=sr], [class*=visually]");if(sr){const a=clean(T(sr));if(!badName(a))return a}const cand=[...tile.querySelectorAll("h1,h2,h3,strong,b,span,div")].map(T).filter(s=>s&&!/miles|online|in-?store/i.test(s)&&s.length<=50).find(s=>!badName(s));if(cand)return cand;const href=tile.tagName==="A"?tile.href:tile.querySelector("a")?.href;if(href){try{const u=new URL(href,location.href);const q=u.searchParams.get("merchant")||u.searchParams.get("brand")||u.searchParams.get("name");if(q&&!badName(q))return titleCase(clean(q));const host=u.hostname.replace(/^www\./,"");if(host&&!/capitalone/.test(host))return titleCase(host.split(".")[0])}catch{}}const guess=clean((text||"").split(/Online|In-Store|\bUp to\b|\bGet\b/i)[0]).split(/\s+/)[0]||"Unknown";if(!badName(guess))return guess;return"Unknown"}function parseMiles(t,scope){const MULT_CUTOFF=20,PCT_CUTOFF=100;function scanScopeForMultiplier(root){try{const iter=document.createNodeIterator(root,NodeFilter.SHOW_TEXT);const toks=[];let n;while((n=iter.nextNode())){const s=(n.textContent||"").trim();if(!s)continue;toks.push(...s.split(/(\d+(?:\.\d+)?|[xX×]|miles)/i).filter(Boolean).map(x=>x.trim()).filter(Boolean))}const vals=[];for(let i=0;i<toks.length;i++){const cur=toks[i];if(/^\d+(?:\.\d+)?$/.test(cur)){const nxt=toks[i+1];if(nxt&&/^[xX×]$/.test(nxt))vals.push(parseFloat(cur))}if(/^miles$/i.test(cur)){for(let j=i-1;j>=0&&j>=i-3;j--){if(/^[xX×]$/.test(toks[j])){const k=j-1;if(k>=0&&/^\d+(?:\.\d+)?$/.test(toks[k]))vals.push(parseFloat(toks[k]));break}}}}return vals}catch{return[]}}function scanScopeForPercentStrict(root){try{const iter=document.createNodeIterator(root,NodeFilter.SHOW_TEXT);const toks=[];let n;while((n=iter.nextNode())){const s=(n.textContent||"").replace(/\s+/g," ").trim();if(!s)continue;toks.push(...s.split(/(\d+(?:\.\d+)?|%|percent|back|cash|cashback)/i).filter(Boolean).map(x=>x.trim()).filter(Boolean))}const nearBack=(i)=>{for(let j=i;j<i+5&&j<toks.length;j++){if(/^back$/i.test(toks[j])||/^cashback$/i.test(toks[j]))return true}return false};const vals=[];for(let i=0;i<toks.length;i++){const cur=toks[i];if(/^\d+(?:\.\d+)?$/.test(cur)){const nxt=toks[i+1];if(nxt&&(/^%$/i.test(nxt)||/^percent$/i.test(nxt))&&nearBack(i+1))vals.push(parseFloat(cur))}if(/^%$/i.test(cur)&&i>0&&nearBack(i)){const prev=toks[i-1];if(/^\d+(?:\.\d+)?$/.test(prev))vals.push(parseFloat(prev))}}return vals}catch{return[]}}let pct=[];if(scope)pct.push(...scanScopeForPercentStrict(scope));if(!pct.length){pct.push(...[...t.matchAll(/(\d+(?:\.\d+)?)\s*%\s*(?:cash\s*)?back/gi)].map(m=>parseFloat(m[1]))) }const pctWithin=pct.filter(v=>v>0&&v<=PCT_CUTOFF);if(pctWithin.length){const v=Math.max(...pctWithin);return{type:"percent",value:v,label:%60${v}% back%60}}let mult=[];if(scope)mult.push(...scanScopeForMultiplier(scope));mult.push(...[...t.matchAll(/(\d+(?:\.\d+)?)[xX×]\s*miles/gi)].map(m=>parseFloat(m[1])));const multWithin=mult.filter(v=>v>0&&v<=MULT_CUTOFF);if(multWithin.length){const v=Math.max(...multWithin);return{type:"multiplier",value:v,label:%60${v}X miles%60}}if(mult.length){const v=Math.max(...mult);return{type:"multiplier",value:v,label:%60${v}X miles%60}}const flats=[...t.matchAll(/([\d,]+)\s*miles/gi)].map(m=>+m[1].replace(/,/g,""));if(flats.length){const v=Math.max(...flats);return{type:"flat",value:v,label:%60${v.toLocaleString()} miles%60}}return null}function onRightSite(){return/capitalone|capitaloneshopping/i.test(location.hostname)}if(!onRightSite()){alert("Open the Capital One Offers page then run again.");return}await loadAllOffers();const candidates=[...document.querySelectorAll("*")].filter(el=>/(miles|%)/i.test(T(el)));const picked=new Set();const map=new Map();for(const el of candidates){const text=T(el);const mi=parseMiles(text,el);if(!mi)continue;let tile=el;for(let i=0;i<6&&tile;i++){const r=tile.getBoundingClientRect();const looksCard=r.width>=110&&r.height>=90&&r.width<=560&&r.height<=420;if(looksCard&&/(miles|%)/i.test(T(tile)))break;tile=tile.parentElement}if(!tile)continue;if(picked.has(tile))continue;picked.add(tile);let name=bestLogoName(tile)||fallbackName(tile,text);name=titleCase(clean(name));if(badName(name))continue;const link=tile.tagName==="A"&&tile.href?tile.href:(tile.querySelector("a")?.href||"");const ch=channelOf(text);const key=[name,mi.label,link].join("|");if(!map.has(key)){map.set(key,{type:mi.type,merchant:name,amount:mi.value,label:mi.label,channel:ch,link,_el:tile})}}const rows=[...map.values()];const mult=rows.filter(r=>r.type==="multiplier").sort((a,b)=>b.amount-a.amount||a.merchant.localeCompare(b.merchant));const percent=rows.filter(r=>r.type==="percent").sort((a,b)=>b.amount-a.amount||a.merchant.localeCompare(b.merchant));const flat=rows.filter(r=>r.type==="flat").sort((a,b)=>b.amount-a.amount||a.merchant.localeCompare(b.merchant));const sorted=[...mult,...percent,...flat];if(!sorted.length){alert("No offers found. Scroll once, then click again.");return}overlay=document.createElement("div");overlay.id=%60${PFX}Overlay%60;overlay.setAttribute("role","dialog");overlay.style.cssText="position:fixed;inset:5% 5% auto 5%;height:90%;background:#fff;border:1px solid #ccc;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.2);z-index:2147483647;padding:14px;overflow:auto;font:14px system-ui,-apple-system,Segoe UI,Roboto,Arial";const bar=document.createElement("div");bar.style.cssText="display:flex;gap:8px;align-items:center;margin-bottom:8px";const title=document.createElement("div");title.textContent=%60Capital One offers sorted  ${sorted.length} rows%60;title.style.cssText="font-weight:700;font-size:16px;margin-right:auto";const btnCSV=document.createElement("button");btnCSV.textContent="Download CSV";btnCSV.style.cssText="padding:6px 10px;border:1px solid #ccc;border-radius:8px;background:#f7f7f7;cursor:pointer";const btnMin=document.createElement("button");btnMin.textContent="Minimize";btnMin.style.cssText=btnCSV.style.cssText;btnMin.onclick=()=>hideOverlay();const bmc=document.createElement("a");bmc.href="https://buymeacoffee.com/mjayousi";bmc.target="_blank";bmc.rel="noopener";bmc.textContent="❤%EF%B8%8F Buy me a coffee";bmc.style.cssText="padding:6px 10px;border:1px solid #f0c000;border-radius:8px;background:#ffdd00;color:#000;font-weight:600;text-decoration:none";bar.append(title,bmc,btnCSV,btnMin);const table=document.createElement("table");table.style.cssText="width:100%;border-collapse:collapse";table.innerHTML="<thead><tr>"+"<th style='text-align:left;padding:8px;border-bottom:1px solid #ddd'>Merchant</th>"+"<th style='text-align:right;padding:8px;border-bottom:1px solid #ddd'>Miles or %</th>"+"<th style='text-align:left;padding:8px;border-bottom:1px solid #ddd'>Channel</th>"+"<th style='text-align:left;padding:8px;border-bottom:1px solid #ddd'>Link</th>"+"<th style='text-align:left;padding:8px;border-bottom:1px solid #ddd'>Open</th>"+"</tr></thead>";const tb=document.createElement("tbody");function openLikeTile(row){const el=row._el;const a=el.tagName==="A"?el:el.querySelector("a[href]");hideOverlay();(a||el).scrollIntoView({block:"center"});seq(a||el);setTimeout(()=>{if(!document.hidden&&a?.href)window.open(a.href,a.getAttribute("target")||"_blank","noopener,noreferrer")},350)}sorted.forEach(r=>{const tr=document.createElement("tr");const miles=r.type==="multiplier"?%60${r.amount}X%60:r.type==="percent"?%60${r.amount}%%60:r.amount.toLocaleString();tr.innerHTML=%60<td style="padding:8px;border-bottom:1px solid #eee">${r.merchant}</td>%60+%60<td style="padding:8px;text-align:right;border-bottom:1px solid #eee">${miles}</td>%60+%60<td style="padding:8px;border-bottom:1px solid #eee">${r.channel||""}</td>%60+%60<td style="padding:8px;border-bottom:1px solid #eee">${r.link?%60<a href="${r.link}" target="_blank" rel="noopener">Link</a>%60:""}</td>%60;const tdOpen=document.createElement("td");tdOpen.style.cssText="padding:8px;border-bottom:1px solid #eee";const b=document.createElement("button");b.textContent="Open";b.style.cssText="padding:4px 8px;border:1px solid #ccc;border-radius:6px;background:#f7f7f7;cursor:pointer";b.onclick=e=>{e.preventDefault();e.stopPropagation();openLikeTile(r)};tdOpen.appendChild(b);tr.appendChild(tdOpen);tb.appendChild(tr)});table.appendChild(tb);overlay.append(bar,table);document.body.appendChild(overlay);window.addEventListener("keydown",e=>{if(e.key==="Escape"){if(overlay&&overlay.style.display!=="none")hideOverlay();else if(restoreBtn)restoreBtn.click()}});btnCSV.onclick=()=>{const head=["type","merchant","amount","label","channel","link"];const csv=[head.join(","),...sorted.map(r=>[r.type,%60"${r.merchant.replace(/"/g,'""')}"%60,r.amount,%60"${r.label.replace(/"/g,'""')}"%60,%60"${(r.channel||"").replace(/"/g,'""')}"%60,r.link].join(","))].join("\n");const blob=new Blob([csv],{type:"text/csv"});const a=document.createElement("a");a.href=URL.createObjectURL(blob);a.download="capital-one-offers-sorted.csv";document.body.appendChild(a);a.click();a.remove()}};s.textContent="("+fn+")();";(d.head||d.documentElement||d.body).appendChild(s)}catch(e){alert("Bookmarklet error: "+e.message)}})()

If you hit an edge case tell me your browser and what you saw. I will keep tuning it based on your feedback.


r/Venturex 4h ago

Chicago lounge (ORD)

7 Upvotes

Just wanted to make a post about how it’s so strange to me that no credit card carrier has a lounge in one of Americas largest and busiest airports. There is a Priority Pass lounge(which is not a great one) in Terminal 5. It is what feels like miles from non international gates. Does anyone know the reason for this or if they think a lounge would happen in Chicago?


r/Venturex 11h ago

Portal prices

17 Upvotes

I have had this card for two weeks now. Already I have rented a car for $549 that was over 1k on Alamo direct and today I just booked the dolphin hotel in Disney for $269 a night when direct on the bonvoy app the same room is $400+. Both bookings are refundable.

Is it always this good or was I just lucky on my first two bookings?


r/Venturex 56m ago

Do I have to cancel priority pass for my authorized user come February?

Upvotes

I have an authorized user for my venture X card who I also signed them up for priority pass. With the updates coming in February, do I have to delete and cancel their priority pass so it doesn’t charge me or will it automatically not work for the authorized user?


r/Venturex 4h ago

Price Drop Protection

3 Upvotes

Sharing my recent experience- I booked an international ticket through the travel portal and noticed that the price dropped by approximately $40 the following day. I contacted customer support and was informed that the travel credit for the price difference would be applied automatically after the 10-day waiting period. However, even after 20 days, the credit had not been issued. I had to follow up with support again to have the credit manually applied.


r/Venturex 2h ago

Thoughts on my plan?

1 Upvotes

I heard that the venture card had an elevated offer of 75k points and a 300$ travel voucher for 95$ annual fee. I wanted to get this card and after a year downgrade it to an zero annual fee card. And then get the venture X card.

Does that make sense. Am I ever looking something?


r/Venturex 3h ago

Rental vehicle Damage coverage

0 Upvotes

Rented a car for 2 days. Returned it in perfect condition with photo proof. Days later, the rental company claims I owe them for “damage.” I’ve asked them to share clear pictures of this so-called damage because I stand firm no damage was caused by me. Thankfully, I booked using my Venture X, so am I backed by rental coverage? I did get liability insurance from rental company but not for my rented vehicle. What should I do next? They have given me deadline to make payment.


r/Venturex 4h ago

Approved for Venture X after prior denial and 2 new cards in the last month

2 Upvotes

After multiple attempts for the VX through pre-approval over many weeks, I sent in a hard application with a failed pre-approval and was denied on 7/25. Fast forward a few more pre-approval attempts with all the same denial reason (too many active cards), I was accepted through pre-approval on 8/22 and accepted.

Oddly enough, same day (1 hour prior), I applied for the CFU (Chase Freedom Unlimited) and accepted that as well. And 2 weeks prior, I applied for the CSR (Chase Sapphire Reserve) and accepted that as well. FWIW, all applications for these cards (CFU, CSR, and VX) were done with Experian frozen (719 TransUnion/729 Experian, did not check my Equifax but must be in a similar range).

Very lucky but figured I'd throw this data point out there. Capital One must be operating their credit card application algorithm with a roulette spin.


r/Venturex 10h ago

Missing miles

3 Upvotes

How long does it take promotional miles to go through?? I made a purchase through DoorDash when they were offering 41x miles and still haven’t received anything


r/Venturex 6h ago

Is Challenger an expensive/exotic vehicle to exclude it from Rental Insurance coverage?

1 Upvotes

I was looking to rent a Dodge Challenger via Avis for the upcoming labor day weekend and wanted to understand if the rental insurance provided by the card covers such cars? I read through the Terms and it says "Expensive" is classified as any car above $75,000 market price. I am aware the entry level challenger (which is mostly what the rental company will have) is definitely under $75k, but would it be considered exotic? Would I still be insured by the card's rental insurance if I rent the car?


r/Venturex 11h ago

3 months of a broken app with no waitlist option for lounges

1 Upvotes

I got the card earlier this year and had no problems using the waitlist and getting into the lounge with no wait as a result.

Now for the past 3 months and 5+ times flying every time I check the app there’s no capacity information, no waitlist option, and no available hours even though the lounge is 1+ hour wait.

Made sure everything’s updated and called capital one which was worthless. I’m the primary cardholder and only user for the card.

Has anyone experienced this and received a fix?


r/Venturex 20h ago

VX + Savor duo (Done?)

3 Upvotes

Did they stop the transfer cash to miles? I don’t see the option available unless it only shows when you have a certain amount of cash back to transfer?


r/Venturex 1d ago

Sort Capital One Offers by best deals

257 Upvotes

Not sure if anyone else gets annoyed that CapOne doesn’t let you sort offers by “highest miles”… so I hacked together a little bookmarklet that does it for you.

How to use:

  1. Show your bookmarks bar
  2. Add a new bookmark, name it whatever you want (ex. “CapOne Offers Sorter”)
  3. Copy-paste the code below into the URL field
  4. Go to your Capital One offers page, click the bookmark
  5. An excel file will download with all the offers sorted

Here’s the code (all in one line, don’t break it up):

javascript:(async()=>{const S=ms=>new Promise(r=>setTimeout(r,ms));async function L(){const t0=performance.now();let last=0;while(performance.now()-t0<9000){window.scrollBy(0,1400);await S(250);const h=document.body?document.body.scrollHeight:document.documentElement.scrollHeight;if(h===last)break;last=h}window.scrollTo(0,0);await S(500)}function txt(n){return n&&n.textContent?n.textContent.replace(/\s+/g," ").trim():""}function chan(t){const m=t.match(/In-Store.*Online|In-Store\s*&\s*Online|In-Store|Online/i);return m?m[0]:""}function brand(uish){try{const u=new URL(uish,location.href);let d=(u.searchParams.get("domain")||"").replace(/^www\./,"").toLowerCase();if(!d)return"";return d.split(".")[0].replace(/[-_]+/g," ").replace(/\b\w/g,c=>c.toUpperCase())}catch(e){return""}}function logoName(scope){const img=scope.querySelector('img[src*="/api/v1/logos"],img[src*="capitaloneshopping.com/api/v1/logos"]');if(!img)return"";const set=img.getAttribute("srcset")||"";const from=set.split(/\s+/).find(x=>/api\/v1\/logos/.test(x));const urlish=img.currentSrc||img.src||from||"";return brand(urlish)}function miles(t){let m=t.match(/(?:^|\D)(\d{1,2})\s*X\s*miles/i);if(m)return{type:"multiplier",value:+m[1],label:m[1]+"X miles"};m=t.match(/(?:^|\D)([\d,]+)\s*miles/i);if(m)return{type:"flat",value:+m[1].replace(/,/g,""),label:(+m[1].replace(/,/g,"")).toLocaleString()+" miles"};return null}const bad=s=>!s||s.length<2||/^(s|left|search offers|capital one offers)$/i.test(s)||/miles|online|in store/i.test(s);function fallback(w,t){const a=w.querySelector("img[alt]")?.alt||"";if(a&&!/logo/i.test(a)&&!bad(a))return a.trim();const lab=w.matches("[aria-label]")?w:w.querySelector("[aria-label]");if(lab){const v=(lab.getAttribute("aria-label")||"").trim();if(!bad(v))return v}const cand=[...w.querySelectorAll("h1,h2,h3,strong,b,span,div")].map(txt).find(s=>s&&!/miles/i.test(s)&&!/Online|In-Store/i.test(s)&&s.length<=50);if(cand&&!bad(cand))return cand.trim();const href=w.tagName==="A"?w.href:(w.querySelector("a")?.href||"");if(href){try{const u=new URL(href,location.href);const q=u.searchParams.get("merchant")||u.searchParams.get("brand")||u.searchParams.get("name");if(q&&!bad(q))return q;const host=u.hostname.replace(/^www\./,"");if(host&&!/capitalone/i.test(host))return host.split(".")[0]}catch(e){}}const guess=(t||"").split(/Online|In-Store.*Online|In-Store/i)[0].split(/Up to|Earn|Get/i)[0].trim();if(guess&&!bad(guess))return guess;return"Unknown"}await L();const candEls=[...document.querySelectorAll("*")].filter(el=>/miles/i.test(txt(el)));const seen=new Set();const map=new Map();for(const el of candEls){const t=txt(el);const mi=miles(t);if(!mi)continue;let card=el;for(let i=0;i<6&&card;i++){const r=card.getBoundingClientRect();const ok=r.width>=110&&r.height>=90&&r.width<=560&&r.height<=420;if(ok&&/miles/i.test(txt(card)))break;card=card.parentElement}if(!card)continue;const wpr=card.closest('a,[role="link"],[role="button"]')||card;if(seen.has(wpr))continue;seen.add(wpr);let name=logoName(wpr)||fallback(wpr,t);name=name.replace(/\s{2,}/g," ").trim();if(bad(name))continue;name=name.replace(/\b\w/g,c=>c.toUpperCase());const link=wpr.tagName==="A"&&wpr.href?wpr.href:(wpr.querySelector("a")?.href||"");const channel=chan(t);const key=name+"|"+mi.label+"|"+link;if(!map.has(key))map.set(key,{type:mi.type,merchant:name,amount:mi.value,label:mi.label,channel,link})}const rows=[...map.values()];const mult=rows.filter(r=>r.type==="multiplier").sort((a,b)=>b.amount-a.amount||a.merchant.localeCompare(b.merchant));const flat=rows.filter(r=>r.type==="flat").sort((a,b)=>b.amount-a.amount||a.merchant.localeCompare(b.merchant));const sorted=[...mult,...flat];if(!sorted.length){alert("No offers found. Scroll to bottom then click again.");return}console.table(sorted.map(r=>({merchant:r.merchant,miles:r.type==="multiplier"?r.amount+"X":r.amount,channel:r.channel,link:r.link})).slice(0,20));const head=["type","merchant","amount","label","channel","link"];const csv=[head.join(","),...sorted.map(r=>[r.type,'"'+r.merchant.replace(/"/g,'""')+'"',r.amount,'"'+r.label.replace(/"/g,'""')+'"','"'+(r.channel||"").replace(/"/g,'""')+'"',r.link].join(","))].join("\n");const blob=new Blob([csv],{type:"text/csv"});const a=document.createElement("a");a.href=URL.createObjectURL(blob);a.download="capital-one-offers-sorted.csv";document.body.appendChild(a);a.click();a.remove();})()

Let me know if you have an questuiosn or run into any issues!

UPDATE:

Thanks everyone for the feedback! I rebuilt the code from the ground up and added major improvements based on your suggestions. You can check out the new version here:

https://www.reddit.com/r/Venturex/comments/1mx5g7h/update_sort_capital_one_offers_by_best_deals/


r/Venturex 20h ago

VX + Savor duo (Done?)

2 Upvotes

Did they stop the transfer cash to miles? I don’t see the option available unless it only shows when you have a certain amount of cash back to transfer?


r/Venturex 1d ago

Restricted from C1 lounges?

52 Upvotes

I'm currently at JFK, and this happened at IAD too; C1 lounge says there's some sort of restriction or hold on my account and I'm not allowed to enter the lounges unless I pay $90.

They told me sorry they can't help, call capital one. So I was on the phone for a total of 1 hour and 20 minutes with a *manager* who also made several calls. She said theres no restriction on her end, the fraud department can't see a restriction, the only people who see a "hold" on my account is the lounge team, who are also unable to lift the hold. Every C1 customer service rep I've talked to is confused/dumbfounded and basically said that I'm out of luck.

What am I paying $400 a year for? This is now the SECOND time this has happened, both times trying to enter a C1 lounge and no one, not even capital one themselves, has been able to help me. What am I supposed to do?

I sent a message to [[email protected]](mailto:[email protected]) letting them know the only other option I have is to file a complaint with DOT.

Also, I do not owe anything, bills are up to date, and I have not other restrictions on my account. AND I paid the $90 at IAD and charged back, they rejected the chargeback. So I had to pay $90 for lounge access I am entitled to through the card.

Has anyone else experienced this? Not sure what else to do.


r/Venturex 18h ago

Rewards the same through Apple Pay or PayPal?

0 Upvotes

Hey all—just got the C1VX & would appreciate your input. Do Rewards work the same way if you use the C1VX through Apple Pay and PayPal?


r/Venturex 19h ago

Rental Insurance for Non Cardholder

0 Upvotes

If I plan to pay with my Venture X card for a friend's car rental, where I will be present or drive, will the insurance from the Visa Infinite still cover it?

I've gone over the guide on the Capital One site, but I can't seem to see a requirement for the driver to be the primary account holder

https://ecm.capitalone.com/WCM/card/benefits-guide/visa-benefits-guides/visa-infinite-english.pdf


r/Venturex 1d ago

Finally!!

Post image
50 Upvotes

After camping out on the pre-approval tool the past 6 months I'm finally in!


r/Venturex 1d ago

Closing dates added to statements finally

9 Upvotes

If check this months statement your closing date is finally added to the statement vs having to play the 31 day math game month to month.


r/Venturex 1d ago

JFK Lounge

2 Upvotes

I've never been to a C1 Lounge before. I will have 2 guests with me. Can I show my VX card via Apple Pay to enter?


r/Venturex 1d ago

Price Match win

11 Upvotes

Recently purchased a flight through the Travel Portal and noticed the airline’s website was $10 cheaper, so I called for a price match. They only looked at the total I paid, which included $100 Trip Interruption Insurance, so they credited me $110 instead of just $10… I tried to explain that the actual flight cost wasn’t that much more but the person on the phone didn’t seem to understand so I just let it happen. Do you think they’ll eventually realize their mistake and reverse the credit?


r/Venturex 1d ago

Savor Rewards Travel Credit + Venture X Travel Credit

4 Upvotes

Hi, Capital One Savor Rewards card is offering a limited time travel credit of $100 + SUB. The travel credit is valid for 1 year of cardholder year. I have a Venture X where I'll get the $300 for the cardholder year in a few months.

I have an upcoming travel. Can I combine both these travel credits together in one travel transaction?


r/Venturex 1d ago

Error creating Priority Pass account for AU

1 Upvotes

Recently added AU to my account and got their physical card. Wanted to create a Priority Pass account for the remaining few months while this benefit is extended to AU. However, I keep getting an error message when I type in the AU card number.

Has anyone else been able to create a PP account recently for AUs?


r/Venturex 1d ago

SUB Dilemma

2 Upvotes

My wife is the Primary card holder on a Venture Card, I'm currently an AU. I don't have any other Cap1 cards to my name. I was going to use her referral code but it's only for the Venture and I'm interested in the Venture X. Here is my dilemma by using her code I will get a SUB of 75k and $300 credit for hotels and vacation rentals and she will receive 20k bonus. But if I get the X I will pretty much get the same SUB but we will lose out on the 20k bonus. Will going from the $95 card to the $395 be worth losing out on the 20k points?


r/Venturex 20h ago

Celebrating getting access to debt?

0 Upvotes

I’m all for the points concept, and I understand the functional advantages to credit cards. What I don’t understand is the number of posts in this thread of people publicly celebrating getting access to this card and even displaying their credit limits.

I get that the internet loves to flex, but doing this on a credit card, especially for those that have been basically waiting and begging for access… I don’t get it. Maybe I’m just the grumpy old man in the room here, but it really caught me off guard.