Open with a fact from their own report
A public index of company reports, each one a long PDF. We pulled every report, had a model extract the facts the client sells on into a fixed schema, and used those facts as the reason to reach out.
Works ifYour buyers publish long reports that say what they prioritise.
The system
Report index
The API behind the page
WordPress REST, paginated per report year.
Fetch
PDF link + size check
HEAD request before the download.
Resolve
Report to company
Domain and LinkedIn from a company API.
Theme 1
Core metrics
Theme 2
People
Theme 3
Leadership + policies
Campaign
One real initiative as the opener
The signal
A company published a report in the last two years.
Why it predicts a purchase
Publishing a report means a team, a budget and a process. The report itself tells you exactly what they measure, what they promised and where the gaps are, which is the whole first email.
How it works
Use the API behind the page
The report index is a WordPress site, so it has a REST endpoint. Paginate that instead of scraping HTML, and you get clean metadata for free.
Check the size before you download
Some reports are over 100MB. Checking size after the download is useless because the timeout already happened. A HEAD request first, then skip anything too large.
Force balance in the schema
Left alone, the model drifted to the best-known theme in each report, while this client sold on a different one. The schema was rewritten to demand equal coverage per theme.
One fact, one email
The email opens on one real initiative from their own report. No template claims, no invented proof: the report is the proof.
Build notes
- Routing through a model gateway stripped the PDF content type silently: the model answered that it saw no attachment. Sending the PDF as a base64 data URL fixed it.
- Dedup on the report, not the company. Keying on company meant a company with two years of reports only got one extracted.
- One report was linked to the wrong company upstream, so the extraction was perfect and wrong. Validate the join, not only the output.
Questions
Can AI read 100-page PDFs reliably?
Yes, with a fixed schema and a coverage check. Here 113 of 130 reports extracted cleanly. Validate that the right PDF is linked to the right company, not only the output.
What goes in the email?
One real fact from their own report, as the opener. No template claims, nothing invented.
More builds
All builds →Detect 163 B2B tools from a company's website and DNS
Your product replaces, integrates with or sells to users of specific tools.
Reach companies before their public deadline
Your buyers make public promises with a deadline.
Reach companies hiring for what you sell
You sell a service that companies also try to hire for.
The next step