Upload src/prompts/sourcing.py with huggingface_hub
Browse files- src/prompts/sourcing.py +90 -0
src/prompts/sourcing.py
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
LLM prompt template for candidate sourcing via Google X-ray LinkedIn search.
|
| 3 |
+
|
| 4 |
+
Generates optimized boolean search queries for finding matching candidates
|
| 5 |
+
on LinkedIn through Google search (site:linkedin.com/in).
|
| 6 |
+
"""
|
| 7 |
+
|
| 8 |
+
XRAY_QUERY_GENERATION_PROMPT = """You are an expert technical recruiter specializing in sourcing candidates via Google X-ray LinkedIn search. Given a job description and context, generate optimized search queries to find matching candidates on LinkedIn.
|
| 9 |
+
|
| 10 |
+
JOB DESCRIPTION:
|
| 11 |
+
{job_description}
|
| 12 |
+
|
| 13 |
+
CONTEXT:
|
| 14 |
+
- Location: {location}
|
| 15 |
+
- Industry: {industry}
|
| 16 |
+
- Compensation Band: {compensation_band}
|
| 17 |
+
- Company Stage: {company_stage}
|
| 18 |
+
|
| 19 |
+
YOUR TASK:
|
| 20 |
+
|
| 21 |
+
1. ANALYZE the JD and extract searchable keywords: job titles, skills, tools, certifications, companies, institutes, and seniority indicators.
|
| 22 |
+
|
| 23 |
+
2. GENERATE 5-8 Google X-ray search queries using `site:linkedin.com/in` syntax. Each query should target a different sourcing angle:
|
| 24 |
+
- Broad title + location match
|
| 25 |
+
- Specific skills combination
|
| 26 |
+
- Competitor/similar company alumni
|
| 27 |
+
- Certification or credential holders
|
| 28 |
+
- Educational institution alumni
|
| 29 |
+
- Industry-specific terminology
|
| 30 |
+
- Seniority-level targeting
|
| 31 |
+
- Niche or long-tail keyword combinations
|
| 32 |
+
|
| 33 |
+
3. GENERATE 3-5 LinkedIn boolean search strings (for use in LinkedIn's search bar directly, no site: prefix).
|
| 34 |
+
|
| 35 |
+
4. PROVIDE 3-5 actionable sourcing tips specific to this role and market.
|
| 36 |
+
|
| 37 |
+
INDIA-SPECIFIC GUIDANCE:
|
| 38 |
+
- Use Indian city names with common variants (e.g., "Bangalore" OR "Bengaluru", "Mumbai" OR "Bombay")
|
| 39 |
+
- Include major Indian IT/consulting companies: TCS, Infosys, Wipro, HCL, Cognizant, Tech Mahindra, Accenture India, Deloitte India, EY India, KPMG India, PwC India, McKinsey India, BCG India
|
| 40 |
+
- Reference premier Indian institutes: IIT, IIM, BITS Pilani, NIT, ISB, XLRI, Delhi University, Anna University
|
| 41 |
+
- Use Indian compensation terminology when relevant (LPA = Lakhs Per Annum)
|
| 42 |
+
- Consider Indian job title conventions (e.g., "Senior Consultant" vs "Lead Consultant", "AVP" vs "Associate Director")
|
| 43 |
+
|
| 44 |
+
QUERY CONSTRUCTION RULES:
|
| 45 |
+
- Always start X-ray queries with: site:linkedin.com/in
|
| 46 |
+
- Use double quotes for exact phrases: "senior consultant"
|
| 47 |
+
- Use OR for alternatives: ("Bangalore" OR "Bengaluru")
|
| 48 |
+
- Use parentheses for grouping: ("AWS" OR "Azure" OR "GCP")
|
| 49 |
+
- Use minus to exclude: -recruiter -staffing
|
| 50 |
+
- Keep queries under 200 characters for Google compatibility
|
| 51 |
+
- Each query should be meaningfully different, not just minor variations
|
| 52 |
+
|
| 53 |
+
OUTPUT THIS EXACT JSON:
|
| 54 |
+
|
| 55 |
+
{{
|
| 56 |
+
"analysis": {{
|
| 57 |
+
"extracted_titles": ["list of relevant job titles to search"],
|
| 58 |
+
"key_skills": ["top 8-10 searchable technical/domain skills"],
|
| 59 |
+
"target_companies": ["8-10 companies where similar candidates work"],
|
| 60 |
+
"target_institutes": ["relevant educational institutions"],
|
| 61 |
+
"certifications": ["relevant certifications to search for"],
|
| 62 |
+
"seniority_indicators": ["terms indicating right experience level"]
|
| 63 |
+
}},
|
| 64 |
+
"queries": [
|
| 65 |
+
{{
|
| 66 |
+
"name": "Short descriptive name (e.g., Broad title + location)",
|
| 67 |
+
"strategy": "1-2 sentence explanation of what this query targets",
|
| 68 |
+
"query": "site:linkedin.com/in ... the full Google search query",
|
| 69 |
+
"expected_results": "What kind of profiles this should surface"
|
| 70 |
+
}}
|
| 71 |
+
],
|
| 72 |
+
"boolean_strings": [
|
| 73 |
+
{{
|
| 74 |
+
"name": "Short descriptive name",
|
| 75 |
+
"purpose": "What this boolean string targets",
|
| 76 |
+
"string": "The LinkedIn boolean search string (no site: prefix)"
|
| 77 |
+
}}
|
| 78 |
+
],
|
| 79 |
+
"sourcing_tips": [
|
| 80 |
+
"Actionable tip specific to this role and market"
|
| 81 |
+
]
|
| 82 |
+
}}
|
| 83 |
+
|
| 84 |
+
IMPORTANT:
|
| 85 |
+
- Queries must be copy-paste ready for Google search
|
| 86 |
+
- Boolean strings must be ready for LinkedIn search bar
|
| 87 |
+
- Every query should find DIFFERENT candidate pools, not the same people
|
| 88 |
+
- Prioritize queries that would find passive candidates (currently employed, not actively looking)
|
| 89 |
+
- Think about what someone with this profile would actually write on their LinkedIn
|
| 90 |
+
"""
|