{"id":"cf5fa956-dd7f-4d1f-af62-402c96539b37","entityType":"agent","slug":"crewai-dishalodha01-ai-job-search-agent","name":"ai_job_search_agent","canonicalUrl":"https://www.xpersona.co/agent/crewai-dishalodha01-ai-job-search-agent","canonicalPath":"/agent/crewai-dishalodha01-ai-job-search-agent","generatedAt":"2026-10-10T08:53:46.279Z","source":"GITHUB_REPOS","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T15:57:33.327Z","emptyReason":null},"description":"Multi-agent job search assistant that scores your resume against any job posting, drafts a tailored cold email, and exports a PDF report. Built with CrewAI, Gemini and Streamlit. 🚀 AI Job Search Agent A multi-agent job-search assistant built with $1, Google Gemini and Streamlit. Paste a job posting URL and upload your resume — four specialist agents scrape the role, score your fit against it, draft the outreach email, and hand back a single downloadable PDF report. What it does | # | Agent | Job | |---|-------|-----| | 1 | **Extractor** | Scrapes the job posting, or infers the role from the","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.","installCommand":null,"sourceUrl":"https://github.com/dishalodha01/ai_job_search_agent","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/dishalodha01/ai_job_search_agent","kind":"source"}],"safetyScore":66,"overallRank":20,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Multi-agent job search assistant that scores your resume against any job posting, drafts a tailored cold email, and exports a PDF report. Built with CrewAI, Gem"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T15:57:33.327Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"crewai","status":"self-declared"},{"label":"multi-agent","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":3,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"crewai","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"multi-agent","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-10-09T15:57:33.327Z","emptyReason":"No source adoption metrics were available."},"stars":0,"forks":0,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-10-09T15:57:33.320Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T15:57:33.327Z","lastCrawledAt":"2026-10-09T15:57:33.320Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-16T15:57:33.320Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"GITHUB REPOS","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":null,"setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-dishalodha01-ai-job-search-agent/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-dishalodha01-ai-job-search-agent/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-dishalodha01-ai-job-search-agent/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-dishalodha01-ai-job-search-agent/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-dishalodha01-ai-job-search-agent/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-dishalodha01-ai-job-search-agent/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_REPOS","generatedAt":"2026-10-10T08:53:46.279Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-dishalodha01-ai-job-search-agent/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-dishalodha01-ai-job-search-agent/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-dishalodha01-ai-job-search-agent/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-dishalodha01-ai-job-search-agent/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"GITHUB REPOS","verified":false,"confidence":"high","updatedAt":"2026-10-09T15:57:33.327Z","emptyReason":null},"readme":"# 🚀 AI Job Search Agent\n\nA multi-agent job-search assistant built with [CrewAI](https://github.com/crewAIInc/crewAI),\nGoogle Gemini and Streamlit. Paste a job posting URL and upload your resume — four\nspecialist agents scrape the role, score your fit against it, draft the outreach\nemail, and hand back a single downloadable PDF report.\n\n## What it does\n\n| # | Agent | Job |\n|---|-------|-----|\n| 1 | **Extractor** | Scrapes the job posting, or infers the role from the URL when the site blocks scrapers |\n| 2 | **ATS Analyst** | Counts requirements matched vs missing and computes an ATS score |\n| 3 | **Copywriter** | Drafts a tailored cold email to the hiring manager |\n| 4 | **Strategist** | Recommends similar roles and compiles everything into one report |\n\nThe report contains an ATS match score, matched and missing skills, concrete\nresume edits, recommended similar jobs, and the cold email draft — rendered as a\ndashboard in the browser and downloadable as a styled PDF.\n\n## Setup\n\nRequires **Python 3.10+**.\n\n```bash\ngit clone https://github.com/<your-username>/ai_job_search_agent.git\ncd ai_job_search_agent\n\npython -m venv venv\nvenv\\Scripts\\activate        # Windows\n# source venv/bin/activate   # macOS / Linux\n\npip install -r requirements.txt\n```\n\nAdd your API key:\n\n```bash\ncp .env.example .env         # copy .env.example .env  on Windows\n```\n\nThen open `.env` and paste your key from\n[Google AI Studio](https://aistudio.google.com/apikey):\n\n```\nGEMINI_API_KEY=your-actual-key\n```\n\n`.env` is listed in `.gitignore`, so your key stays out of version control.\n\n## Run\n\n```bash\nstreamlit run app.py\n```\n\nThe app opens at <http://localhost:8501>.\n\n## Project layout\n\n```\napp.py                    Streamlit UI, orchestration and results dashboard\nsrc/\n  crew.py                 Agent, task and Crew wiring; the shared Gemini LLM\n  tools.py                Web scraper tool + PDF resume text extraction\n  report.py               Markdown -> styled PDF rendering\n  insights.py             Pulls the score, counts and sections out of the report\n  ui.py                   CSS and HTML components for the dashboard\n  config/\n    agents.yaml           Agent roles, goals and backstories\n    tasks.yaml            Task descriptions and expected outputs\n.streamlit/config.toml    Theme\n```\n\n## Configuration\n\n| Variable | Required | Default | Purpose |\n|---|---|---|---|\n| `GEMINI_API_KEY` | yes | — | Your Google Gemini API key |\n| `GEMINI_MODEL` | no | `gemini/gemini-3.6-flash` | Override the model |\n\n### Free-tier rate limits\n\nGemini's free tier allows **20 requests per day, per model**. One full analysis\nuses most of that, so you get roughly one run per day per model. If you hit a\n`429 RESOURCE_EXHAUSTED`, either switch models:\n\n```\nGEMINI_MODEL=gemini/gemini-3.1-flash-lite\n```\n\nor enable billing on your Google AI Studio project.\n\n### Score consistency\n\nThe crew runs at `temperature=0.0, top_k=1` and the analysis task scores by\ncounting requirements rather than by impression, so repeat runs on the same\nresume and posting stay within about a point of each other. LLM output is not\nbit-for-bit reproducible, so small drift is expected.\n\n## Known limitations\n\n- Large job boards (LinkedIn, Indeed) block scrapers. The Extractor falls back to\n  inferring the role from the URL, which is less accurate than a direct\n  careers-page link.\n- Emoji are stripped from the PDF export — the core PDF fonts have no glyphs for\n  them. They remain in the on-screen report.\n- On Windows, CrewAI's verbose console output can raise `charmap` codec errors.\n  Set `PYTHONIOENCODING=utf-8` to silence them.\n\n## Security\n\nNever commit `.env`. If you ever expose your key, revoke it at\n[Google AI Studio](https://aistudio.google.com/apikey) and issue a new one.\n\n## License\n\n[MIT](LICENSE) © Disha Lodha\n","readmeExcerpt":"🚀 AI Job Search Agent A multi-agent job-search assistant built with $1, Google Gemini and Streamlit. Paste a job posting URL and upload your resume — four specialist agents scrape the role, score your fit against it, draft the outreach email, and hand back a single downloadable PDF report. What it does | # | Agent | Job | |---|-------|-----| | 1 | **Extractor** | Scrapes the job posting, or infers the role from the ","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"git clone https://github.com/<your-username>/ai_job_search_agent.git\ncd ai_job_search_agent\n\npython -m venv venv\nvenv\\Scripts\\activate        # Windows\n# source venv/bin/activate   # macOS / Linux\n\npip install -r requirements.txt"},{"language":"bash","snippet":"cp .env.example .env         # copy .env.example .env  on Windows"},{"language":"text","snippet":"GEMINI_API_KEY=your-actual-key"},{"language":"bash","snippet":"streamlit run app.py"},{"language":"text","snippet":"app.py                    Streamlit UI, orchestration and results dashboard\nsrc/\n  crew.py                 Agent, task and Crew wiring; the shared Gemini LLM\n  tools.py                Web scraper tool + PDF resume text extraction\n  report.py               Markdown -> styled PDF rendering\n  insights.py             Pulls the score, counts and sections out of the report\n  ui.py                   CSS and HTML components for the dashboard\n  config/\n    agents.yaml           Agent roles, goals and backstories\n    tasks.yaml            Task descriptions and expected outputs\n.streamlit/config.toml    Theme"},{"language":"text","snippet":"GEMINI_MODEL=gemini/gemini-3.1-flash-lite"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB REPOS","editorialOverview":"Multi-agent job search assistant that scores your resume against any job posting, drafts a tailored cold email, and exports a PDF report. Built with CrewAI, Gemini and Streamlit. 🚀 AI Job Search Agent A multi-agent job-search assistant built with $1, Google Gemini and Streamlit. Paste a job posting URL and upload your resume — four specialist agents scrape the role, score your fit against it, draft the outreach email, and hand back a single downloadable PDF report. What it does | # | Agent | Job | |---|-------|-----| | 1 | **Extractor** | Scrapes the job posting, or infers the role from the","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":413,"uniquenessScore":61,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T15:57:33.327Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T15:57:33.327Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T08:53:46.279Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/github_repos","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}