Track Startup Hiring Velocity on Wellfound (2026)

Thirdwatch's Wellfound Scraper makes startup hiring-velocity tracking a structured workflow at $0.008 per record — daily snapshots, funding-cohort velocity computation, scaling-signal alerts, post-raise hiring detection. Built for VC analysts, founder-network builders, startup-recruiter platforms, and venture-research analysts tracking startup-momentum signals.

Why track startup hiring velocity

Startup hiring velocity is the strongest publicly-observable scaling signal. According to Wellfound's 2024 Talent report, startups in active hiring-velocity phase (3x+ roles posted within 30 days) progress to next-stage funding at materially higher rates than peer companies. For VC analysts tracking portfolio-company momentum, startup-recruiter platforms timing candidate outreach, and founder-network builders mapping high-momentum companies, hiring velocity is the canonical signal.

The job-to-be-done is structured. A VC analyst tracks 200 portfolio companies daily for hiring-velocity signals. A startup-recruiter platform flags scaling-cohort companies for active candidate outreach. A founder-network builder maps high-velocity startups for community curation. A venture-research analyst studies post-raise capital-deployment patterns across funding stages. All reduce to startup-handle list + daily snapshot + cross-snapshot velocity computation.

How does this compare to the alternatives?

Three options for startup hiring-velocity data:

Approach Cost per 100 startups daily Reliability Setup time Maintenance
Crunchbase Pro $1,000/seat/year Limited hiring depth Hours Per-seat license
PitchBook Enterprise $20K-$50K/year Authoritative Weeks Annual contract
Thirdwatch Wellfound Scraper ~$24/day ($0.008 × 3K) Camoufox + residential 5 minutes Thirdwatch tracks Wellfound changes

PitchBook offers comprehensive startup data at the high end. The Wellfound Scraper actor page gives you raw hiring data at the lowest unit cost.

How to track velocity in 4 steps

Step 1: How do I authenticate against Apify?

Sign in at apify.com, copy your API token:

export APIFY_TOKEN="apify_api_xxxxxxxxxxxxxxxx"

Step 2: How do I pull a portfolio watchlist daily?

Pass startup-handle queries.

import os, requests, datetime, json, pathlib

ACTOR = "thirdwatch~wellfound-jobs-scraper"
TOKEN = os.environ["APIFY_TOKEN"]

PORTFOLIO = ["openai", "anthropic", "scale-ai", "modal", "ramp",
             "mercury", "rippling", "deel", "linear", "vercel",
             "notion", "figma", "airtable", "retool", "stripe"]

resp = requests.post(
    f"https://api.apify.com/v2/acts/{ACTOR}/run-sync-get-dataset-items",
    params={"token": TOKEN},
    json={"queries": PORTFOLIO, "maxResults": 500},
    timeout=3600,
)
records = resp.json()
ts = datetime.datetime.utcnow().strftime("%Y%m%d")
pathlib.Path(f"snapshots/wellfound-portfolio-{ts}.json").write_text(json.dumps(records))
print(f"{ts}: {len(records)} roles across {len(PORTFOLIO)} portfolio companies")

15 startups × ~30 active roles each = ~450 daily records, costing $3.60.

Step 3: How do I compute hiring velocity?

Per-startup velocity vs prior 30-day baseline.

import pandas as pd, glob

snapshots = sorted(glob.glob("snapshots/wellfound-portfolio-*.json"))
dfs = []
for s in snapshots:
    df = pd.DataFrame(json.loads(open(s).read()))
    df["snapshot_date"] = pd.to_datetime(s.split("-")[-1].split(".")[0])
    dfs.append(df)

all_df = pd.concat(dfs, ignore_index=True).drop_duplicates(subset=["apply_url", "snapshot_date"])
daily = all_df.groupby(["company_name", "snapshot_date"]).size().unstack(fill_value=0)

# Last 7d vs prior 30d baseline
last_7d = daily.iloc[:, -7:].mean(axis=1)
prior_30d = daily.iloc[:, -37:-7].mean(axis=1)
velocity = last_7d / prior_30d.replace(0, 1)

scaling = velocity[(velocity >= 3.0) & (last_7d >= 5)]
print(f"{len(scaling)} startups in active scaling phase (3x velocity, 5+ daily roles)")

3x velocity + 5+ daily roles = canonical "active scaling phase" — high-signal for VC follow-on + recruiter outreach timing.

Step 4: How do I correlate with recent funding?

Cross-reference velocity with last-raise dates.

import requests as r

latest = all_df[all_df.snapshot_date == all_df.snapshot_date.max()]
post_raise = latest.copy()
post_raise["last_raise_date"] = pd.to_datetime(post_raise.company_last_raise_date)
post_raise["days_since_raise"] = (pd.Timestamp.utcnow() - post_raise.last_raise_date).dt.days

post_raise_scaling = (
    post_raise[post_raise.days_since_raise <= 90]
    .groupby("company_name")
    .agg(
        days_since_raise=("days_since_raise", "first"),
        last_raise=("company_last_raise", "first"),
        funding_stage=("company_funding_stage", "first"),
        open_roles=("title", "count"),
    )
    .query("open_roles >= 10")
)

for company, row in post_raise_scaling.iterrows():
    r.post("https://hooks.slack.com/services/.../...",
           json={"text": (f":rocket: *{company}* ({row.funding_stage}, {row.last_raise}) "
                          f"posting {row.open_roles} roles {row.days_since_raise}d post-raise.")})
print(f"{len(post_raise_scaling)} post-raise scaling alerts")

Companies posting 10+ roles within 90 days post-raise = active capital-deployment phase, the highest-leverage VC + recruiter signal.

Sample output

A single Wellfound role record looks like this. Five rows weigh ~6 KB.

{
  "title": "Senior Software Engineer",
  "company_name": "Anthropic",
  "company_funding_stage": "Series E",
  "company_last_raise": "$3.5B",
  "company_last_raise_date": "2024-12-15",
  "company_team_size": "500-1000",
  "company_investors": ["Google", "Spark Capital"],
  "location": "San Francisco / Remote",
  "salary": "$220,000 - $320,000",
  "equity": "0.05% - 0.15%",
  "experience_level": "Senior",
  "remote": true,
  "apply_url": "https://wellfound.com/jobs/..."
}

company_funding_stage + company_last_raise_date enable direct correlation between hiring velocity and recent funding events — the canonical scaling-signal cross-reference.

Common pitfalls

Three things go wrong in startup-velocity pipelines. Funding-stage staleness — Wellfound updates funding-stage data 30-60 days post-raise; cross-reference with Crunchbase for recency-sensitive use cases. Re-listing inflation — startups occasionally close + re-open roles for renewed visibility; smooth with 7-day rolling averages before alerting. Cross-source dedup — same role often appears on Wellfound + LinkedIn + company career page; for accurate velocity, dedupe on (title, company, posted_at) after merging sources.

Thirdwatch's actor uses Camoufox + residential proxy at $5/1K, ~36% margin. Pair Wellfound with LinkedIn Jobs Scraper for cross-source startup-hiring coverage. A fourth subtle issue worth flagging: stealth-mode startups (often pre-launch) intentionally hide funding-stage data even when posting roles; for accurate stealth-startup detection, supplement with founder LinkedIn-profile cross-reference. A fifth pattern unique to startup velocity: layoff events trigger sharp negative-velocity (5+ roles closed within 30 days) followed by 60-90 days of hiring freeze — for accurate momentum-tracking, distinguish hiring-freeze (no postings) from hiring-decline (active reduction). A sixth and final pitfall: stagewise scaling differs — Series A startups scale 3-5x in 6-12 months while Series C+ scale more linearly. Calibrate velocity-thresholds per stage rather than applying uniform thresholds.

Operational best practices for production pipelines

Tier the cadence to match signal half-life. Startup hiring data changes faster than enterprise — daily polling on Tier 1 (active portfolio targets) + weekly on Tier 2 (broader founder network) covers most use cases. 60-80% cost reduction with negligible signal loss when watchlist is properly tiered.

Snapshot raw payloads. Pipeline cost is dominated by scrape volume, not storage. Persisting raw JSON snapshots lets you re-derive velocity metrics — particularly useful as your funding-stage classifier evolves. Compress with gzip at write-time.

Schema validation. Run a daily validation suite asserting expected core fields with non-null rates above 80% (required) and 50% (optional). Wellfound schema occasionally changes during platform UI revisions — catch drift early. Cross-snapshot diff alerts on funding-stage changes (Series A → Series B) catch capital-event signals that pure aggregate-trend monitoring misses. A seventh and final operational pattern at production scale: cross-snapshot diff alerts. Beyond detecting individual changes, build alerts on cross-snapshot field-level diffs — name changes, category re-classifications, status changes. These structural changes precede or follow material events and are leading indicators of organization-level disruption. Persist a structured-diff log alongside aggregate snapshots: for each entity, persist (field, old_value, new_value) tuples per scrape. Surface high-leverage diffs to human reviewers; low-leverage diffs stay in the audit log.

An eighth pattern worth flagging for cost-controlled teams: implement an incremental-diff pipeline that only re-processes records whose hash changed since the previous snapshot. For watchlists where 90%+ of records are unchanged between snapshots, hash-comparison-driven incremental processing reduces downstream-compute by 80-90% while preserving full data fidelity. Combine with snapshot-storage compression for end-to-end pipeline-cost reductions of 70%+ at scale. This pattern is particularly important when scaling beyond 100K records per snapshot.

Related use cases

Frequently asked questions

Why track startup hiring velocity specifically?

Startup hiring velocity is the strongest leading indicator of company-stage progression. According to YC's 2024 alumni research, startups posting 3x+ roles within 30 days post-raise correlate with 50%+ higher Series-A-progression rates. For VC analysts, founder-network builders, and startup-recruiter agencies, hiring velocity is the canonical signal of strategic momentum.

What velocity threshold matters?

A 3x increase in open roles within 30 days post-funding-event is the canonical "scaling signal" threshold. Below 1.5x is normal cadence; above 5x is hyper-scaling (often follows large Series B/C rounds). Combine with company_funding_stage filter — Series A+ startups posting 5+ roles within 30 days of raise are deploying capital aggressively.

How fresh do velocity signals need to be?

For VC daily-screening of portfolio companies, daily cadence catches velocity onset within 24h. For founder-network builders, weekly cadence is sufficient. For startup-recruiter platforms timing candidate-outreach to scaling cohorts, daily during active fundraise windows. Most startup hiring velocity events sustain for 60-90 days post-raise before normalizing.

Can I cross-reference with funding announcements?

Yes. Wellfound's company_last_raise_date enables direct cross-reference with hiring velocity. Filter to companies with (days_since_raise <= 90) AND (open_roles >= 5) for active-deployment signal. For richer correlation, supplement with Crunchbase or PitchBook funding data.

What's the best alerting threshold?

Tier 1 alerts (immediate): Series A+ company posting 10+ roles within 30 days post-raise. Tier 2 alerts (weekly): Series A+ posting 5-9 roles within 30 days. Tier 3 alerts (monthly): pre-Series-A posting 3+ roles within 30 days. Tier 1 + 2 combined typically generate 5-15 high-signal alerts per week across a 200-startup watchlist.

How does this compare to AngelList Talent + LinkedIn?

Wellfound (formerly AngelList Talent) is startup-only with structured funding fields; LinkedIn covers all employer tiers but lacks Wellfound's funding-stage + last-raise structured data. For startup-velocity research specifically, Wellfound is materially better-curated. For broader hiring-velocity coverage at non-startup employers, LinkedIn is essential.

Run the Wellfound Scraper on Apify Store — pay-per-record, free to try, no credit card to test.