Files
raulgupta 89ca9ad647 Initial commit: matchmaking-v2 on-demand multi-board job-search agent
On-demand Scout service (replaces the nightly aggregator):
- FastAPI agent-mesh service; card name "matchmaking-service" (HTTP /a2a/tasks
  + Redis-stream worker matching the sibling-service pattern)
- run_search: parallel multi-board sweep (Naukri/blackfalcondata + Foundit +
  LinkedIn), city-filtered at the board, cheapest-per-result first
- per-board adapters + normalizers -> ScoutJob with rich read-only details and
  offsite apply links; recall mode + MVQ guard
- result cache for dev replay ($0); per-board cost knobs; retry-on-5xx
- research/: engine design, board cost economics, India-actor shortlist, POC
2026-06-18 19:22:03 +05:30
..

Auto-apply POC — "one tap at the end"

Proves the heart of Scout's apply: one tap → backend submits → confirmation → tracked, with the apply-router branching (hosted ATS submit vs prepared board handoff).

What it proves / doesn't

  • End-to-end one-tap flow + the router that picks the mechanism + latency.
  • Hosted-submit path posts a complete application to an ATS endpoint and gets a confirmation.
  • Does not submit to a real employer. The ATS is a mock (/mock-ats/...).

Hard rule: never fire test applications at real employers' live postings. It pollutes real hiring pipelines and is abuse. POC-0 = mock ATS. POC-1 = our own ATS sandbox job.

Run

python3 -m venv venv && source venv/bin/activate
pip install fastapi uvicorn httpx
uvicorn app:app --port 8765
# open http://localhost:8765

Prove it from the CLI

curl -s localhost:8765/api/kit/job_ats        # kit staged & ready
curl -s -X POST localhost:8765/api/apply/job_ats   # the one tap -> submitted + confirmation_id
curl -s -X POST localhost:8765/api/apply/job_board # prepared handoff -> deeplink + staged
curl -s localhost:8765/api/tracker            # pipeline view

POC-1 (real ATS sandbox) — what's needed from Rahul

  1. Create a free/trial ATS account (Ashby has a clean applicationForm.submit; or Greenhouse/Lever trial) and post a test job in it.
  2. Get the submission endpoint + token/board-token for that test job.
  3. Set ATS_SUBMIT_URL (and add auth) — the mock route is then deleted. Same flow, real ATS.
    • Confirms: real field requirements, résumé upload, and that programmatic submit is accepted.