Conversation
update devcontainer configuration, add .editorconfig, and enhance VSCode settings for improved development workflow
There was a problem hiding this comment.
Pull request overview
This PR reorganizes the search domain into a dedicated immermatch.search_api package and updates the codebase/tests/docs to use the new module locations, alongside adding strategy/search-api documentation to support ongoing modularization.
Changes:
- Move/standardize search orchestration + providers under
immermatch/search_api/and update imports/patch targets accordingly. - Add
immermatch.search_apipackage exports via__init__.py. - Add/refresh documentation (roadmap + agent guidance) and update repo structure references.
Reviewed changes
Copilot reviewed 19 out of 21 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/test_search_provider.py | Updates imports to immermatch.search_api.search_provider. |
| tests/test_search_agent.py | Updates imports and @patch(...) targets to immermatch.search_api.search_agent. |
| tests/test_integration.py | Updates integration test imports and Gemini patch targets to new search module path. |
| tests/test_bundesagentur.py | Updates imports and patch targets to immermatch.search_api.bundesagentur. |
| immermatch/search_api/serpapi_provider.py | Adjusts doc references and imports to parent-level models after package move. |
| immermatch/search_api/search_provider.py | Updates models import to parent package (..models). |
| immermatch/search_api/search_agent.py | Updates imports/doc references to the new search_api module locations. |
| immermatch/search_api/bundesagentur.py | Adjusts doc references and imports to parent-level models after package move. |
| immermatch/search_api/init.py | New package initializer re-exporting search API surface. |
| immermatch/app.py | Updates UI layer imports to immermatch.search_api.*. |
| daily_task.py | Updates cron entrypoint import to immermatch.search_api.search_agent. |
| README.md | Updates docs to reflect new search_api/ project structure. |
| CLAUDE.md | Updates module map references to search_api/*. |
| AGENTS.md | Updates “source of truth” paths and architecture references to search_api/*. |
| docs/strategy/ROADMAP.md | Adds roadmap document under docs/strategy/. |
| docs/strategy/AGENT.md | Adds strategy specialist agent guidance. |
| docs/search-api/AGENT.md | Adds Search API specialist agent guidance and decision-log template. |
| .vscode/settings.json | Adds repo VS Code settings (Copilot agent/terminal auto-approve config). |
| .github/prompts/write-tests.prompt.md | Updates suggested mocking patch paths to immermatch.search_api.*. |
| .github/copilot-instructions.md | Updates instructions’ module map references to search_api/*. |
Comments suppressed due to low confidence (1)
immermatch/app.py:58
- These imports have been moved to
immermatch.search_api.*, but the old top-level modules (immermatch/search_agent.py,immermatch/search_provider.py) no longer appear to exist in the package. If anything outside this repo imports the old paths, this becomes a breaking change. Consider adding thin shim modules at the old locations that re-export the new APIs (or explicitly documenting/bumping the version to reflect the breaking import-path change).
from immermatch.search_api.search_agent import ( # noqa: E402
generate_search_queries,
profile_candidate,
search_all_queries,
)
from immermatch.search_api.search_provider import ( # noqa: E402
get_provider,
get_provider_fingerprint,
parse_provider_query, # noqa: E402
)
| - SerpApi: `@patch("immermatch.search_api.serpapi_provider.serpapi_search")` | ||
| - Bundesagentur: `@patch("immermatch.search_api.bundesagentur.requests.get")` |
There was a problem hiding this comment.
The suggested patch targets here don’t match the current implementations: serpapi_provider has no serpapi_search symbol (it uses GoogleSearch(...).get_dict() inside search_jobs()), and bundesagentur.py uses httpx rather than requests. Update these examples to patch the actual call sites (e.g., immermatch.search_api.serpapi_provider.GoogleSearch.get_dict / search_jobs, and immermatch.search_api.bundesagentur.httpx.Client.get / _get_with_retry) so new tests follow correct mocking patterns.
| - SerpApi: `@patch("immermatch.search_api.serpapi_provider.serpapi_search")` | |
| - Bundesagentur: `@patch("immermatch.search_api.bundesagentur.requests.get")` | |
| - SerpApi: `@patch("immermatch.search_api.serpapi_provider.GoogleSearch.get_dict")` | |
| - Bundesagentur: `@patch("immermatch.search_api.bundesagentur.httpx.Client.get")` |
- Added `search_agent.py` to generate optimized job search queries using LLM. - Introduced `search_provider.py` to define an abstract search-provider interface and factory. - Created `serpapi_provider.py` to implement Google Jobs search via SerpApi, adhering to the SearchProvider protocol. - Enhanced job search functionality with support for multiple providers and query localization. - Included detailed prompts for candidate profiling and job search query generation.
563a13a to
45b859e
Compare
No description provided.