Install
$ agentstack add skill-galiprandi-job-seeker-referrals ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Warm Sourcing & Referrals
Trigger
Keyword: referrals (or variants: "warm sourcing", "buscar contactos", "solicitar referido")
The user says referrals or launches warm sourcing for a target company/role. Also executed as step 0 of the apply and targets flows to maximize conversion.
Flow
0. Pre-flight
- [ ] Verify active browser session (see AGENTS.md "Browser session"):
node scripts/browser.js open --headed(Gold Rule 5) if session closed - [ ] Load profile, university background, past companies, and job preferences from Postgres DB:
``bash node scripts/db.js "SELECT data->'profile' AS profile, data->'job_preferences' AS prefs, data->'style_profile' AS style FROM users WHERE id = 1" ``
- [ ] Load strategy (see AGENTS.md "Strategy levels"):
``bash node scripts/db.js "SELECT data->'strategy' AS strategy FROM users WHERE id = 1" ` Respect: coldoutreach (gates the recruiter-outreach branch in step 3). If referrals is not in sourcesactive, the flow should not run standalone — when invoked as step 0 of apply/targets`, those flows handle the gate.
- [ ] Load active preferences (see
memoryskill):
``bash node scripts/db.js "SELECT category, key, value, confidence, source FROM preferences WHERE user_id = 1 AND status = 'active' ORDER BY category, key" ``
1. Warm Contact & Recruiter Discovery
For a target company and role:
# Automated discovery script
node scripts/linkedin-warm-sourcing.js --company "" --role "" --json
The script searches for:
- 1st & 2nd degree connections currently working at ``
- University alumni (matching institutions from
users.data.profile.education) - Ex-colleagues (matching past employers from
users.data.profile.experience) - Recruiters & Hiring Managers assigned to the role/company
2. Referral Request Staging (Highest Conversion — Strategy #1)
If an internal contact, alumni, or ex-colleague is found:
- Do NOT submit a cold application immediately. A referral yields a 40% hire rate vs 2-3% for cold Easy Apply.
- Draft a personalized referral request message:
- Must pass Gold Rule 7 (Anti-LLM Checklist): no em-dashes, no bullet points, conversational tone, max 2 short paragraphs, natural mention of shared background (alumni/ex-colleague/interest).
- Tone: polite, non-demanding, asking for team insights or guidance on applying.
- Stage the draft in DB:
``bash node scripts/db.js "INSERT INTO messages (user_id, channel, direction, sender, subject, body, draft, status, received_at, data) VALUES (1, 'linkedin', 'outbound', '', 'Solicitud de referido / consulta sobre equipo', '', '', 'draft', NOW(), '{\"category\": \"referral_request\", \"company\": \"\", \"vanity\": \"\"}'::jsonb)" --write ``
- Register or update pipeline card in stage
discovered:
``bash node scripts/pipeline.js --move discovered ``
3. Recruiter Outreach Staging (Multi-channel Combo — Strategy #4)
If NO internal referral path exists:
- Gate: if
strategy.cold_outreach = false→ skip this step. Proceed to step 4 (ATS micro-alignment) and cold apply only. - Extract the Recruiter / Hiring Manager profile vanity or email.
- Prepare a personalized recruiter DM outreach draft (3-4 lines: trigger + credibility anchor + clear ask).
- Stage the draft in DB (
messagestable withcategory: recruiter_outreach). - Proceed to cold postulation via
applyortargetswhile keeping the recruiter outreach staged for user approval (surfaced bynewsflow).
4. Dynamic ATS Micro-Alignment (JD-to-CV Tailoring)
Before submitting an application via ATS or email:
- Extract top 5 technical & domain keywords from the target Job Description (e.g.,
LangChain,System Architecture,PyTorch,Technical Leadership). - Compare against
users.data.profile.skillsandusers.data.cv_markdown. - Highlight matching achievements in the top summary/highlights of the CV markdown.
- Generate the micro-aligned PDF CV using
scripts/generate-cv.jsbefore submitting:
``bash node scripts/generate-cv.js --output assets/cv_tailored_.pdf ``
5. Presentation & Summary
Present the warm sourcing results to the user:
- Internal contacts / Alumni found: list with profile URLs and proposed referral draft.
- Recruiters found: list with proposed DM outreach draft.
- Tailored CV generated: link to tailored PDF.
Dependencies
- Depends on
onboarding(DB to register) - Depends on
profile(education & past experience data for alumni/ex-colleague matching) - Integrated into
applyandtargetsflows
Script reference
scripts/linkedin-invite.js -- Send connection requests
Navigates to /preload/custom-invite/?vanityName=, clicks "Send without a note". Anti-ban delay of 3s between invites.
# Invite one or more vanities
node scripts/linkedin-invite.js
# Invite multiple
node scripts/linkedin-invite.js vanity1 vanity2 vanity3
# Search + invite in one command (pipe search -> invite)
node scripts/linkedin-invite.js --from-search '"" "hiring" LATAM'
Flags: --from-search "" (searches and invites all found) Exit codes: 0 = at least one sent, 1 = all failed, 2 = error
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: galiprandi
- Source: galiprandi/job-seeker
- License: MIT
- Homepage: https://galiprandi.github.io/job-seeker/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.