Files
matchmaking-v2/research/poc/browser-apply/login_once.py
T
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

41 lines
1.4 KiB
Python

"""
login_once.py — one-time LinkedIn login into the dedicated Chrome profile.
Run this ONCE (or whenever the session expires). A Chrome window opens on LinkedIn's login page.
YOU type your email/password (and any 2FA) directly in that window — nothing is sent to our code.
When the feed loads, come back to this terminal and press Enter; the session is saved in
./chrome-profile and reused by apply.py.
python login_once.py
"""
import asyncio
from browser_use import BrowserSession
from browser_config import make_profile
async def main():
session = BrowserSession(browser_profile=make_profile())
await session.start()
await session.navigate_to("https://www.linkedin.com/login")
print("\n" + "=" * 70)
print(" A Chrome window opened on LinkedIn.")
print(" 1. Log in there (email, password, 2FA if asked).")
print(" 2. Wait until your LinkedIn FEED is visible.")
print(" 3. Then press Enter here to save the session.")
print("=" * 70)
await asyncio.get_event_loop().run_in_executor(None, input, "\nPress Enter once logged in... ")
try:
url = await session.get_current_page_url()
print(f"Current page: {url}")
except Exception:
pass
print("Session saved to ./chrome-profile — you can close the window. Run apply.py next.")
await session.kill()
if __name__ == "__main__":
asyncio.run(main())