One search box over everything: listings, companies, contacts, notes and the text of what was sent #29
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Postulo/postulo#29
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Search exists in exactly two places, each over its own list: the applications table (
qacross role, company and location,ApplicationFilterMixin) and the companies table (qover the company). Everything else that a person writes or keeps is findable only by knowing where it is.The text worth searching is already stored, model by model:
Company.notes,Contact.notes,JobPosting.description,ApplicationEvent.summaryandbody,Reminder.summary,CoverLetter.body,CV.summary,UploadedDocument.notes, the career record's summaries — andRenderedDocument.source_text, "text as sent", kept precisely so that "what did I claim?" can be answered without opening a PDF (documents/models.py, line 285). Nothing reads it back today.Shape
/as the keyboard shortcut (a delegated handler inapp.js, no inline script). Submitting goes to/search/?q=…, a page with results grouped by kind — listings, applications, companies, contacts, notes and events, letters, CVs, sent documents — each group capped with a more link, each hit showing the matching excerpt with the term highlighted.search(user, query)function per model using case-insensitive containment on the fields above, unioned and lightly ranked (title hits before body hits). Everything throughfor_user(); a result is never shown that its list would not show.SearchVectorcan be plugged in when the containment version gets slow, without touching the page. Not before: a personal instance has thousands of rows, not millions.source_textlinks to the application it was sent with and says "in the CV you sent on 12 May", which is the question people actually have.GET /api/v1/searchunder #12'sreadscope, and one MCP tool in #19 that wraps it.Classification
Enhancement. Not breaking: a new page, a new box, no schema.
Open questions