Unadhi Guides

Press list sheet for a product launch or Black Friday pitch: the press and media inboxes each publication publishes, in one Google Sheet with a pitch and follow-up tracker

Updated 21 Oct 2026 · Disclosure: the website contact scraper linked below is an Unadhi product on the Apify Store. This guide is free, and the sheet also works if you copy inboxes from contact pages by hand. Current Apify pricing is only on the Store page. This page has no affiliate links and nobody paid to be mentioned.

What you get: one Google Sheet with one row per publication you want to pitch (magazines, blogs, newsletters, gift-guide sites), showing the press or media inbox the publication publishes on its own website, a general inbox as a fallback, a next-step column that tells you what to do when no press inbox was found, a UK sole-trader flag (they need consent before a marketing email), and a pitch tracker with one follow-up date and a do-not-contact column. Built for small brands, Shopify and WooCommerce shops and PR freelancers pitching a product launch, a Black Friday offer or a Christmas gift guide.

The finished sheet

press tab (example rows are made up)

DomainStatusPress inboxFallbackNamed inboxes droppedNext stepTypePitched onFollow up onSend?
giftmag.exampleokpress@giftmag.example0Pitch press inboxCorporate2 Nov 20269 Nov 2026Wait
homeblog.exampleokhello@homeblog.example0Use general inbox and ask who covers giftsCorporateReady
citynews.exampleok3Site lists named inboxes: read its contact pageCorporateReady
bigdaily.exampleblocked-by-termsSkipped: open the site's contact page yourselfCorporateReady
janewrites.exampleokhello@janewrites.example0Use general inbox and ask who covers giftsSole traderNO: UK sole trader, consent first

Who this is for

Step 1: list the publications in a tab named sites

ColumnWhat to put
A PublicationName, for example "Gift Mag"
B WebsiteThe homepage, for example https://www.giftmag.example
C BeatGifts, home, tech, food, local news...
D TypeCorporate (a company or other corporate body) or Sole trader (a one-person blog or newsletter run by an individual). This decides Step 4.

Pick publications that really cover your kind of product. A short list of relevant titles gets more replies than a long list of random ones, and it keeps you inside the "relevant, one to one" rule in Step 4.

Step 2: run the contact scraper on the websites

Open the website contact scraper on the Apify Store and paste column B into urls (one per line) or startUrls. What it does with the default settings, as written in the Actor's input schema and README on 21 October 2026:

Honest limit: in the current version, newsroom-style addresses such as editor@, editorial@, news@, newsdesk@ or tips@ are not on the role list, so with the default setting they are dropped and counted, not shown. The sheet turns that count into a "read its contact page" step instead of hiding it. Only switch on includePersonalEmails if you have a lawful basis and will honour opt-outs.

When the run finishes, export the dataset as CSV, then in your sheet use File, Import, Insert new sheet, and rename it scrape. Nested fields become headers like emails/0/email, emails/1/email and emails/0/mxValid, so the formulas below find columns by header name, not by position.

Step 3: build the press tab

Create a tab named press, put these formulas in row 2, and fill down as many rows as scrape has.

ColHeaderFormula (row 2)
ADomain=IFERROR(INDEX(scrape!$A2:$ZZ2, MATCH("domain", scrape!$A$1:$ZZ$1, 0)), "")
BStatus=IFERROR(INDEX(scrape!$A2:$ZZ2, MATCH("status", scrape!$A$1:$ZZ$1, 0)), "")
CAll inboxes=IFERROR(TEXTJOIN(", ", TRUE, FILTER(scrape!$A2:$ZZ2, REGEXMATCH(scrape!$A$1:$ZZ$1, "^emails/\d+/email$"))), "")
DPress inbox=IFERROR(REGEXEXTRACT(", "&C2, ", ((?:press|media|pr|socialmedia)(?:[.\-_][a-z0-9]+)?@[^,]+)"), "")
EFallback=IF(D2<>"", "", IFERROR(REGEXEXTRACT(", "&C2, ", ((?:hello|contact|info|marketing|partnerships)(?:[.\-_][a-z0-9]+)?@[^,]+)"), ""))
FNamed inboxes dropped=IFERROR(INDEX(scrape!$A2:$ZZ2, MATCH("personalEmailsDropped", scrape!$A$1:$ZZ$1, 0)), 0)
GNext step=IFS(B2<>"ok", "Skipped ("&B2&"): open the site's contact page yourself", D2<>"", "Pitch press inbox", N(F2)>0, "Site lists named inboxes: read its contact page", E2<>"", "Use general inbox and ask who covers "&IFERROR(INDEX(sites!$C:$C, MATCH("*"&A2&"*", sites!$B:$B, 0)), "your beat"), TRUE, "No inbox found: use the site's contact form")
HType=IFERROR(INDEX(sites!$D:$D, MATCH("*"&A2&"*", sites!$B:$B, 0)), "")
IBad MX=IFERROR(SUMPRODUCT(--(UPPER(TO_TEXT(FILTER(scrape!$A2:$ZZ2, REGEXMATCH(scrape!$A$1:$ZZ$1, "^emails/\d+/mxValid$"))))="FALSE")), 0) (above 0: one of the inboxes has no mail server; do not use it)
JPitched onType the date you sent the pitch
KFollow up on=IF(J2="", "", WORKDAY(J2, 5))
LReplyType: Interested / Not now / No
MDo not contactType Y the moment anyone asks you to stop or replies "No"
NSend?=IFS(M2="Y", "NO: do not contact", H2="Sole trader", "NO: UK sole trader, consent first", J2="", "Ready", AND(L2="", TODAY()>=K2), "Send one follow-up", TRUE, "Wait")

Add a filter on column N and work only the rows that say Ready or Send one follow-up. One follow-up is enough; after that, mark the row and move on.

Step 4: the rules your pitch must follow (UK example)

This is a summary of the UK ICO's electronic mail marketing guidance as read on 21 October 2026, not legal advice. The ICO notes this guidance is under review after the Data (Use and Access) Act, so check the official source before you send.

In the EU, the ePrivacy Directive's consent rule for marketing email covers individuals, and each country decides how far it also protects companies, so the rules differ by country. Check your national regulator's guidance. Elsewhere, check the official source for your country.

Step 5: a short pitch that fits the sheet

Subject: Gift idea under 25: [product] for your [beat] coverage

Hi [Publication] team,

I run [brand], a small [country] shop. Our [product] is [one line on
what it is and why your readers would care]. Price: [price]; stock is
confirmed until [date].

Photos and details: [link]. I can send a sample to whoever covers
[beat]. Is there a deadline for your gift guides this year?

[Your name], [brand], [website]
If you'd rather not hear from us, reply "no" and we won't email again.

Send each pitch one at a time from your normal inbox, change the first two lines for each publication, and fill in column J the same day. If the publication says it was given a free product, it may need to disclose that to its readers; that is their call, but say clearly in your pitch whether a sample or a paid placement is involved.

Timeline to Black Friday and Christmas

Partner programme opening soon

Partner programme opening soon: join the free waitlist. Planned terms are 50% of each referred sale (75% once you have 5+ paying customers), single level, paid through Gumroad only from revenue received.

Sources

Related

← All guides

Unadhi Guides are free, independent explainers. We correct errors as soon as we find them: write to mininglife7@gmail.com.