job-posting-analysis
SKILL.md
Job Posting Analysis Skill
Purpose
Extract technology stack information from job postings and career pages, which often reveal internal tech stack details.
Operations
1. find_careers_page
Locate company's career/jobs page.
Search Strategies:
1. Common paths: /careers, /jobs, /work-with-us, /join-us
2. Subdomains: careers.{domain}, jobs.{domain}
3. Web search: site:{domain} careers OR jobs
4. Footer links on main site
Common Career Page URLs:
https://{domain}/careers
https://{domain}/jobs
https://careers.{domain}
https://jobs.{domain}
https://{domain}/about/careers
https://{domain}/company/careers
2. detect_ats_platform
Identify Applicant Tracking System in use.
ATS Detection Patterns:
{
"Greenhouse": {
"url_pattern": "boards.greenhouse.io",
"indicates": ["Tech-forward startup", "Modern hiring"],
"confidence": 95
},
"Lever": {
"url_pattern": "jobs.lever.co",
"indicates": ["Tech-forward startup", "Growth stage"],
"confidence": 95
},
"Workday": {
"url_pattern": ".wd5.myworkdayjobs.com|.wd3.myworkdayjobs.com",
"indicates": ["Enterprise company", "Large org"],
"confidence": 95
},
"Ashby": {
"url_pattern": "jobs.ashbyhq.com",
"indicates": ["Modern startup", "Tech-forward"],
"confidence": 95
},
"iCIMS": {
"url_pattern": "careers-.*\\.icims\\.com|icims.com",
"indicates": ["Enterprise hiring"],
"confidence": 95
},
"Taleo": {
"url_pattern": "taleo.net",
"indicates": ["Enterprise (Oracle)", "Large org"],
"confidence": 95
},
"SmartRecruiters": {
"url_pattern": "jobs.smartrecruiters.com",
"indicates": ["Mid-market to Enterprise"],
"confidence": 95
},
"BambooHR": {
"url_pattern": ".bamboohr.com/jobs",
"indicates": ["SMB company"],
"confidence": 95
},
"Jobvite": {
"url_pattern": "jobs.jobvite.com",
"indicates": ["Mid-market hiring"],
"confidence": 95
},
"Breezy HR": {
"url_pattern": ".breezy.hr",
"indicates": ["SMB startup"],
"confidence": 95
}
}
3. extract_tech_requirements
Parse job descriptions for technology mentions.
Extraction Patterns:
Experience with ([\w\s,/]+)
Proficiency in ([\w\s,/]+)
Knowledge of ([\w\s,/]+)
Tech stack:? ([\w\s,/]+)
Working knowledge of ([\w\s,/]+)
Familiar with ([\w\s,/]+)
Strong background in ([\w\s,/]+)
Required:?\s*([\w\s,/]+)
Nice to have:?\s*([\w\s,/]+)
Technologies:?\s*([\w\s,/]+)
Tools:?\s*([\w\s,/]+)
Technology Keyword Categories:
Languages:
JavaScript, TypeScript, Python, Java, Go, Rust, Ruby, PHP,
C#, C++, Kotlin, Swift, Scala, Elixir, Clojure
Frontend Frameworks:
React, Vue, Angular, Svelte, Next.js, Nuxt, Gatsby,
Redux, MobX, Zustand, React Query, Tailwind, Bootstrap
Backend Frameworks:
Node.js, Express, NestJS, Django, Flask, FastAPI,
Rails, Spring, .NET, Laravel, Phoenix
Databases:
PostgreSQL, MySQL, MongoDB, Redis, Elasticsearch,
DynamoDB, Cassandra, Neo4j, Snowflake, BigQuery
Cloud/Infrastructure:
AWS, GCP, Azure, Kubernetes, Docker, Terraform,
Ansible, CloudFormation, Pulumi
Tools:
Git, GitHub, GitLab, Jenkins, CircleCI, GitHub Actions,
Datadog, New Relic, Grafana, Prometheus, Sentry
4. calculate_tech_frequency
Weight technologies by mention frequency across postings.
Scoring:
def calculate_frequency_score(tech, postings):
mentions = sum(1 for p in postings if tech in p.requirements)
total_postings = len(postings)
frequency = mentions / total_postings
# Classify importance
if frequency >= 0.5:
importance = "Core Stack" # 50%+ of postings
elif frequency >= 0.25:
importance = "Common" # 25-50%
else:
importance = "Occasional" # < 25%
return {
"mentions": mentions,
"frequency": frequency,
"importance": importance
}
5. analyze_role_patterns
Identify tech stack from role types.
Role Type Signals:
{
"Frontend Engineer": {
"implies": ["React/Vue/Angular", "JavaScript/TypeScript", "CSS frameworks"],
"confidence": 70
},
"Backend Engineer": {
"implies": ["Server-side language", "Database", "API development"],
"confidence": 70
},
"Full Stack Engineer": {
"implies": ["Frontend framework", "Backend framework", "Database"],
"confidence": 65
},
"DevOps Engineer": {
"implies": ["Cloud platform", "CI/CD", "Kubernetes/Docker", "IaC"],
"confidence": 75
},
"Data Engineer": {
"implies": ["Python/Scala", "Spark/Airflow", "Data warehouse"],
"confidence": 75
},
"ML Engineer": {
"implies": ["Python", "TensorFlow/PyTorch", "Cloud ML services"],
"confidence": 75
},
"iOS Developer": {
"implies": ["Swift", "Xcode", "iOS SDK"],
"confidence": 85
},
"Android Developer": {
"implies": ["Kotlin/Java", "Android SDK"],
"confidence": 85
}
}
Output
{
"skill": "job_posting_analysis",
"domain": "string",
"results": {
"careers_page": {
"url": "string",
"ats_platform": "Greenhouse",
"ats_confidence": 95
},
"postings_analyzed": "number",
"technologies_extracted": [
{
"name": "React",
"category": "Frontend Framework",
"mentions": 15,
"total_postings": 20,
"frequency": 0.75,
"importance": "Core Stack",
"contexts": [
"Experience with React and TypeScript",
"Build UIs using React"
],
"confidence": 80
}
],
"role_distribution": {
"Frontend": 5,
"Backend": 8,
"Full Stack": 4,
"DevOps": 2,
"Data": 1
},
"tech_stack_inference": {
"frontend": ["React", "TypeScript", "Tailwind"],
"backend": ["Node.js", "PostgreSQL", "Redis"],
"infrastructure": ["AWS", "Kubernetes"],
"confidence": "Medium"
},
"company_signals": {
"engineering_size": "Large (20+ open roles)",
"growth_stage": "Scaling",
"tech_culture": "Modern (tech-forward ATS, current stack)"
}
},
"evidence": [
{
"type": "job_posting",
"title": "Senior Frontend Engineer",
"url": "string",
"technologies_mentioned": ["React", "TypeScript", "GraphQL"],
"timestamp": "ISO-8601"
}
]
}
Rate Limiting
- Careers page fetch: 10/minute
- Job posting pages: 20/minute
- ATS APIs: Varies by platform
Error Handling
- 404: No careers page found
- Access denied: ATS may require authentication
- Continue with partial data
- Fall back to search engine results
Security Considerations
- Only access public job postings
- Do not apply to jobs or create accounts
- Respect robots.txt
- Do not scrape PII (recruiter names, emails)
- Log all fetches for audit
Confidence Notes
Job posting data provides indirect signals:
- Technologies mentioned in job posts may not be currently deployed
- "Nice to have" vs "Required" distinction matters
- Combine with direct technical evidence for validation
- Base confidence: 60-80% (lower than direct signals)
Weekly Installs
4
Repository
transilienceai/…itytoolsGitHub Stars
67
First Seen
6 days ago
Security Audits
Installed on
opencode4
claude-code4
github-copilot4
codex4
amp4
cline4