PLAY 01 · SAAS

Fresh Capital + Open Role

Find software companies that just raised money and are hiring the kind of person your product helps. Then write to them about both.

SIGNAL ASEC Form D SIGNAL BLive job post COST$0 API KEYSNone

What happened when I ran it

Window
844raise filings sent to the SEC
293were real companies, not investment funds
84were tech companies
10had a jobs page we could find
4were hiring a sales or marketing role
All 4 checked by hand against their SEC filing and jobs page. Most tech companies (74 of 84) had no public jobs page yet, so the SEC filing shows up first.
The whole play in 13 seconds. Every number comes from the run above.

Why it works

When a company raises money, the law makes it tell the SEC. When it posts a job, it tells everyone what it wants to fix next.

If both happen in the same week, the company has money and a plan. If the plan is the job your product helps with, you have a good reason to say hello.

How it works

  1. Read the list of companies that told the SEC they raised money this week.
  2. Throw out the investment funds. Keep the tech companies.
  3. Look for each company's jobs page.
  4. Keep the ones hiring the role your product helps.
  5. Check each one by hand. Then write a short note about their raise and their new hire.

Roles we found in this run

Real open jobs at the freshly funded tech companies from this run, pulled on 8 Nov 2026. Each company's jobs page was checked against its SEC filing. Jobs close fast, so some links may expire.

Is the data really free?

Yes. No sign-up and no API key. Here is what each source says about itself.

SEC EDGARraises

The SEC says Anyone can access and download this information for free. You add your name and email to each request, and stay under 10 requests a second. sec.gov →

Greenhousejobs

Greenhouse says authentication is not required for any GET endpoints. Reading jobs is open. greenhouse.io →

Leverjobs

Lever says published job postings are publicly viewable. A key is only needed to send applications, which we never do. lever docs →

Ashbyjobs

Ashby's own example is a plain request with no key. It returns the jobs a company already shows on its careers page. ashbyhq.com →

Where it can go wrong

Two companies can share a name.We might find the wrong jobs page. That is why step 5 checks each one by hand.
Some jobs pages are hidden.If a company posts jobs somewhere we don't look, it won't show up.
Some raises are late or missing.A company can file late, or not file at all. We can only see what was filed.

Run it in Claude Code

Pick a version. Paste it in. Answer 3 questions.

You are running "Play 01: Fresh Capital + Open Role" from GTM Signal Plays by Asshvin Kumar.

Goal: build a short, verified list of software companies that just reported a raise to the SEC (Form D) AND are hiring the role my product serves. Then draft one message per company, built only from those public records.

Rules
- Use only free public data and the script below. No paid tools, no logins, no LinkedIn automation.
- Never invent a fact. Every claim in a brief or message must trace to the Form D filing or the job post it came from. Mark anything inferred as "assumed".
- Respect SEC fair access: at most 10 requests a second, with my real name and email in the User-Agent.
- Do not send anything. I review and send myself.

Step 0. Before writing any code, ask me:
  1. My name and email (for the SEC User-Agent).
  2. What my product does, in one sentence.
  3. The job titles my product serves. Turn my words into a case-insensitive regex and show it to me.

Step 1. Set up
  mkdir -p play-01-fresh-capital && cd play-01-fresh-capital
  curl -fsSL __RUN_PY_URL__ -o run.py
  Read run.py fully. Tell me in 5 bullets what it does and which URLs it calls. It needs Python 3.9+ and nothing else.

Step 2. Run it on the last 14 days
  SEC_USER_AGENT="<my name> <my email>" python3 run.py --days 14 --roles "<regex from step 0>"
  It writes out/<date>/accounts.csv, summary.json and briefs.md. Show me the funnel counts from summary.json.

Step 3. Verify before trusting it
  For every Tier 1 row (or 10 at random if there are more):
  - open the Form D link and confirm the company name, filing date and amount;
  - open the job link and confirm the role is live at the same company. For slug-only matches, compare the board's website, company description and job locations with the filing's state;
  - remove or downgrade any row that fails, and tell me why.
  Save the result as verified.csv.

Step 4. Brief each verified company (5 lines max) in briefs-verified.md
  What they raised and when; the role they opened; who signed the filing; the problem that role is likely hired to fix (mark as assumed); why my product fits that problem.

Step 5. Draft one message per company in messages.md (under 90 words)
  - To the executive named on the filing or the hiring manager.
  - Open with the record: the raise and the open role, with dates. Not with me.
  - Give one useful observation they can act on even if they never reply.
  - End with one low-effort question. No links, no "hope you're well", no fake familiarity.
  Then reread each draft as the buyer: would they forward it to a colleague? Rewrite any that would be deleted.

Step 6. Hand over
  verified.csv, briefs-verified.md, messages.md, and a 3-line summary with the funnel counts. Suggest the --roles regex and --days window for next week's run.
Want the script on its own? Download run.py (Python 3.9+, nothing to install).