Angles drafted only from pages we fetched
Real source pages are searched and scraped first. The model then writes angles from that text and nothing else — a data study, a contrarian take, a trend your business has visibility into — never a product pitch wearing a press release.
HOW · generatePitchAngles() whitelists every cited URL against the set it actually scraped, drops the ones that are not in it, and throws away any angle left with no source at all.