Weekly press and analyst outreach list, delivered to Slack
Every Monday at 8am, find fresh journalists and industry analysts on your beat, verify their emails and phones, and post the new contacts in Slack.
Every Monday at 8am Eastern, run a fresh press and analyst outreach search, append the net-new contacts to our Google Sheet, and post a recap in Slack. This should be an agent workflow because the brief refinement, the dedup decision, and the weekly summary all need reasoning.
The search brief is a plain-English string I want to be able to edit in the prompt without touching workflow logic. Default brief: 'Tech journalists covering AI infrastructure at top US business publications (Wall Street Journal, New York Times, Bloomberg, Forbes, Fortune, Wired, The Information, Axios), plus industry analysts at Gartner, Forrester, and IDC covering observability and developer tools.'
Step 1. Kick off the search by calling Findymail Start IntelliMatch Lead Search with the brief above. Capture the returned hash.
Step 2. Poll Findymail Get IntelliMatch Search Status with that hash every 60 to 120 seconds until status is 'completed'. If it comes back 'failed', stop and post a Slack failure message (see step 7). Time out and fail gracefully after 30 minutes.
Step 3. Page through Findymail Get IntelliMatch Search Results until current_page reaches last_page. Collect every contact across all pages into a single list.
Step 4. For each contact, call Findymail Verify Email. Drop any contact whose email is not deliverable. If a LinkedIn profile URL is on the contact, also call Findymail Find Phone Number to grab a direct line. Phone is best-effort: if it returns null (including EU GDPR-protected profiles), leave the phone field blank but keep the contact.
Step 5. Before writing anything, read existing rows from the 'Press and Analyst List' tab of the Google Sheet using Google Sheets Get Values (range A:H or whatever covers the header plus all data). Build a set of verified emails already in the sheet and drop any new contact whose email is already present. This is the dedup step. Only contacts not already in the sheet should move forward.
Step 6. Append the net-new contacts to the same tab using Google Sheets Append Values, with these columns in order: Name, Outlet or Firm, Title, Beat, Verified Email, Phone, Source (always set to 'Findymail IntelliMatch'), Date Added (today's date in YYYY-MM-DD). Beat should be the agent's best one-line description of what the contact covers, inferred from their title and outlet (for example 'AI infrastructure', 'Cloud and observability', 'Enterprise software analyst').
Step 7. Send a Slack Send a Message to the #comms channel summarizing the run. Include: total net-new contacts added, a breakdown by beat (for example 'AI infrastructure reporters: 7, Observability analysts: 4, Enterprise software analysts: 2'), and a clickable link to the Google Sheet. If the run failed (Findymail error, insufficient credits, timeout), post a short failure message to the same channel explaining what went wrong instead, and do not write anything to the sheet.
Configurable inputs surfaced on the workflow: the search brief, the Google Sheet (spreadsheet ID and tab name), the Slack channel for the recap, and the day and time the cron runs.
Additional information
What does this prompt do?
- Runs every Monday morning to refresh your press and analyst contact list using a plain-English brief you control.
- Finds matching journalists and analysts, verifies every email is deliverable, and looks up direct phone numbers when a LinkedIn profile is available.
- Adds only net-new contacts to a shared Google Sheet so the same writer never gets added twice.
- Posts a weekly Slack summary with how many new contacts landed, broken down by beat, with a link straight to the sheet.
What do I need to use this?
- A Findymail account with IntelliMatch access (this is how the natural-language search works).
- A Google Sheet you want the contacts added to. Anything like 'Press and Analyst List' works.
- A Slack workspace and the channel you want the Monday summary posted in.
- A one or two sentence description of who you want to reach, for example 'AI infrastructure reporters at top US business outlets' or 'observability analysts at Gartner, Forrester, and IDC'.
How can I customize it?
- Change the day and time the search runs (Tuesday at 9am, every other Monday, first of the month, etc.).
- Swap the brief to target a different beat, like climate-tech founders, healthcare analysts, or local business reporters.
- Pick a different Slack channel for the summary, or have it sent as a DM to whoever owns press outreach.
- Add or remove columns the sheet captures (for example dropping phone numbers, or adding a 'Last contacted' column the comms team fills in).
Frequently asked questions
Will this add the same journalist to my sheet twice?
Can I run searches for more than one beat?
How fresh and accurate are the emails and phone numbers?
Can I change the schedule from weekly to monthly?
What happens if Findymail runs out of credits or the search fails?
Stop hand-curating press and analyst lists every Monday.
Connect Findymail, Google Sheets, and Slack once. Geni refreshes your outreach list and posts the weekly recap every Monday morning.