YAML Metadata Warning:empty or missing yaml metadata in repo card

Check out the documentation for more information.

Sponsorship Lead Finder

This project watches AI companies for useful news and creates a simple sales packet when a company looks ready for sponsorship outreach.

It currently watches:

  • Perplexity AI
  • Mistral AI

When it finds a good reason to reach out, it creates:

  • a recommendation summary
  • contact profiles
  • ready-to-send draft emails

Simple Workflow

  1. The app checks recent company news.
  2. It decides if the news is important enough for sponsorship outreach.
  3. If yes, it finds likely decision-makers.
  4. It writes contact files.
  5. It writes email drafts.
  6. It saves everything inside the output/ folder.

How The Agent Works

The agent has three main jobs:

  1. Collect recent news about each company.
  2. Use an LLM to decide if there is enough evidence to approach the company.
  3. If yes, create a short sponsorship recommendation and draft outreach emails.

The agent looks for business signals that could make a company a good sponsorship target. Examples:

  • fundraising
  • new partnerships
  • product launches
  • acquisitions
  • market expansion
  • important executive hires
  • other strong company updates

The LLM does not recommend a company just because the company was mentioned in the news. It checks if the news is concrete, recent, and useful for a sponsorship conversation.

When the LLM decides the company is worth approaching, the app creates a recommendation with:

  • why this company is a good target now
  • the source links behind the decision
  • a suggested next step
  • contacts to review
  • draft emails to send after checking

What Counts As Good Evidence

The agent is looking for news that gives the sales team a real reason to reach out now.

Good examples:

  • the company raised a large funding round
  • the company announced a major partnership
  • the company launched a new AI product
  • the company acquired another company
  • the company expanded into a new market
  • the company hired an important executive

Weak examples:

  • opinion articles
  • old news
  • general AI trend articles
  • repeated versions of the same story
  • news where the company is only mentioned briefly
  • rumors or unclear information

If the evidence is weak, the app does not create a recommendation.

What Happens On The Second Run

The app saves memory after every run.

If the same source link appears again in a second run, the app recognizes it and does not process it again.

If a different source reports the same story, the app tries to treat it as the same event, not a new reason to contact the company.

Example:

  1. Run 1 finds that Mistral AI raised money.
  2. The app creates a recommendation and saves that this story was already used.
  3. Run 2 finds the same fundraising link again.
  4. The app skips it and does not create the same recommendation again.

This keeps the output clean. A new recommendation is only created when there is new useful evidence, not just repeated news.

What The API Keys Do

You can run the app with only OPENAI_API_KEY, but more keys make the results better.

OPENAI_API_KEY      decides if the evidence is strong and writes recommendations/emails
PARALLEL_API_KEY    finds more business news
EXA_API_KEY         finds more news and can also help find public contact profiles
FIRECRAWL_API_KEY   checks company newsroom/blog pages
APOLLO_API_KEY      tries to find decision-makers and verified emails

If one optional key is missing, the app still runs. It just skips that source.

Setup

Install the required packages:

pip install -r requirements.txt

Create your .env file:

copy .env.example .env

Then open .env and fill in the values you have.

Most important:

OPENAI_API_KEY=
OUTREACH_SENDER_NAME=
OUTREACH_SENDER_TITLE=
OUTREACH_SENDER_ORGANIZATION=xyz 
OUTREACH_SENDER_EMAIL=
OUTREACH_SENDER_PHONE=

Optional, but useful for better research and contacts:

PARALLEL_API_KEY=
EXA_API_KEY=
FIRECRAWL_API_KEY=
APOLLO_API_KEY=

Run It

Run for all companies:

python run_agent.py

Run for only one company:

python run_agent.py --company mistral-ai

Start fresh and clear saved memory:

python run_agent.py --reset

Run with the demo test item:

python run_agent.py --simulate fixtures/simulated_new_news.json

What You See In The Console

After each run, the console tells you:

  • how many items were found
  • how many were already known
  • how many were skipped as not useful
  • whether a new recommendation was created
  • where the recommendation file was saved
  • which contacts and email drafts were created

If the console says no new relevant information was found, that is normal. It means the app did not find a new reason to contact that company.

Where To Find Results

Each company gets its own folder:

output/
  mistral-ai/
  perplexity-ai/

Inside each company folder:

recommendations/        main sponsorship recommendation files
contacts/               contact profile files
contacts/email/         ready-to-send email drafts
history.md              past recommendations
links.md                useful source links found by the app

Example:

output/mistral-ai/
  recommendations/
    mistral-ai_2026-09-24_07-37-22_run1.md
  contacts/
    xyz-xyz.md
    xyz-boxyzck.md
  contacts/email/
    mistral-ai_2026-09-24_07-37-xyz-xyz.md

Reading A Recommendation

Open the newest file in:

output/<company>/recommendations/

It tells you:

  • why the company is a good sponsorship target
  • what recent news triggered the recommendation
  • who to contact
  • where the email drafts are saved

The most important parts are:

  • Recommendation: short explanation of why this company is worth approaching
  • Suggested next step: what the sales team should do next
  • Evidence: source links used to support the decision
  • Suggested contacts & draft outreach: people to review and email draft locations

Suggested Daily Use

  1. Run python run_agent.py.
  2. Check the console for new recommendations.
  3. Open the newest recommendation file.
  4. Review the source links.
  5. Open the contact profile.
  6. Open the email draft.
  7. Confirm the recipient email address if it is missing or unverified.
  8. Edit the email if needed before sending.

Change The Companies

Companies are listed in:

agent/config.py

Edit COMPANIES there if you want to watch different companies.

Notes

  • The app remembers what it already processed, so it avoids repeating the same recommendation.
  • If no new useful news is found, it does not create a new recommendation.
  • Contact data may be incomplete depending on the available API keys.
  • Review every email before sending.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support