Inspiration
Every team has someone who just knows how things work: which job never runs on the 15th, which vendor key you never change on a Friday, who to call when the nightly sync breaks.
When that person leaves, a lot of that knowledge goes with them. A Panopto study found that 42% of what an employee knows at work isn't known by anyone else. Deloitte found that 75% of companies say keeping knowledge when people come and go is important, but only 9% are ready for it.
We kept picturing the same scene. Sarah leaves on Friday. Alex starts on Monday, with no overlap. On Tuesday the 15th, Alex runs the nightly reconciliation job and it breaks. The only warning was one email Sarah sent back in May.
Search tools help you find what a company knows. We wanted something that shows what a company is about to forget, and saves it before it's gone.
What it does
Keepline is like GitHub, but for company knowledge.
It reads Slack, email and support tickets, and saves every useful statement as a fact with who said it, when they said it, and a link back to the original message as proof. When a fact changes, the old version isn't deleted. It's marked as replaced, so you can see the full history and what the company believed on any date.
Knowledge map: Shows who actually knows what, based only on real work (tickets they closed, things they explained), never job titles. Anything only one person knows is marked in red.
Leaving and joining: Shows exactly what knowledge walks out the door when someone leaves. Their replacement, or anyone new to the team, can open the same map instead of spending weeks asking around.
Review before sharing: Each person sees what Keepline picked up from their work. Nothing is shared until they approve it. They get the credit, and anything private stays private. Direct messages are never used.
History: Every topic has a record of how it changed over time, with old and new versions side by side. You can see what the company knew on any past date.
Ask Keepline: Ask a question and get an answer with the source attached. If there's no proof, it says "I don't know, ask Mike" instead of guessing.
Test a project before it starts: Describe a plan, like "Retire CoreLink v2 before the Oct 31 deadline," and Keepline runs it 2,000 times with realistic events like people leaving, sick days, vacations and training time. For example, with no plan, CoreLink ends up with nobody who knows it in 100% of runs. If Aisha starts learning it this week, that drops to 40%. It also works when nobody is leaving, to show where any project is weak and who should learn what before it starts.
How we built it
Snowflake
Keepline is designed to run inside Snowflake, so a company's data never leaves its own account.
- Slack messages, emails and tickets are loaded into Snowflake. The text of direct messages is hidden automatically.
- Snowflake's built-in AI is set up to read new messages and pull out facts. For the demo, we ran this step on our own machines. Each fact is then linked to its author and date, and older versions are marked as replaced.
- Snowflake's search finds the source behind every answer, and its AI writes the answer using only that source.
- Access rules make sure each person only sees what they're allowed to see. The same question can return different results for different people.
- Snowflake's ability to look at data as it was on a past date powers the "what did we believe in May" view.
- Python code running inside Snowflake calculates the risk map and the handover package.
- Scheduled jobs are set up to pull out facts, update versions and refresh risk every night, using the smallest computer size, which turns itself off after one minute of no use.
Each topic gets a risk score:
Risk = how important it is x how few people know it x how likely those people are to leave
The rest of the system
- The core is written in Python. It pulls out facts, stores the knowledge history, searches it, answers questions and runs the risk, handover, onboarding and project testing features. The whole thing rebuilds on a laptop in about a second.
- The chat assistant uses Claude, but it can only answer using what our system gives it. Every source it mentions is checked, and any made-up source is removed. It also works without internet using a simpler version.
- The website is built with Next.js and React and hosted on Vercel. The public demo uses saved data so it always loads quickly.
- There is also a version that runs directly inside Snowflake.
How we proved it works
First, we wrote down 168 true facts about a made-up credit union called Harbourline. This was our answer key.
Then we created its Slack messages, emails and tickets from those facts, and made them messy on purpose: typos, slang, bot spam, forwarded duplicates, and wrong statements from people who didn't really know the topic.
Keepline only ever saw the messages, never the answer key. We added an automatic check that fails if our code ever reads the answer key.
Finally, we asked it 216 questions it had never seen and graded the answers against the key. We only ran this test once.
Results on 216 new questions (plain search vs Keepline):
- Confidently wrong answers: 71.8% vs 22.2%
- Correct answers with a real source (out of 137 answerable): 35.8% vs 43.1%
- Sent to the right person (out of 21 cases): 12 vs 21
- How well its confidence matched reality (lower is better): 0.269 vs 0.053
That's three times fewer confident mistakes. When Keepline doesn't know, it says so.
Challenges we ran into
Testing honestly: You can't grade "company memory" without knowing the truth. So we wrote the truth first, then the messy data, and locked the test questions so we couldn't tweak our system to fit them.
Facts that change: The hard part isn't finding a fact, it's knowing which version is current. Telling the difference between a message that replaces an old rule and one that just mentions it took a lot of attempts. One wrong replacement is still in our data.
Stopping the AI from making things up: The assistant can only answer from what our system gives it, and any source it didn't actually get from our system is removed.
Knowing when to hold back: We trained the system to decide when to answer, when to say "I don't know," and when to point to a person. The confidence part worked well on new questions. The part that picks the exact cut-off points did well on practice questions but not on the final test. With only 388 practice questions, it learned them too closely and didn't carry over. We're reporting that honestly.
Snowflake permissions: Getting access rules to work the same for everyone took care. One setting was quietly letting people see more than they should until we turned it off.
Accomplishments that we're proud of
- A working product, not just slides: the knowledge map, handover review, history, answers with sources, and project testing all run on the same knowledge base.
- Confidently wrong answers dropped from 72% to 22%, and it picked the right person 21 out of 21 times, on questions it had never seen.
- It runs inside Snowflake, and we tested its search, AI, access rules, history and Python features on a real account.
- Privacy comes first: direct messages are never used, nothing is shared without the person's approval, and it's never used for performance reviews.
What we learned
- The most useful answer is often "I don't know, ask Aisha." Being honest about what it doesn't know mattered more than being clever.
- Keeping a history is what makes company knowledge trustworthy. A fact without a date and an author is just a rumour.
- Test against the real answers, not a gut feeling. Writing the answer key first changed how we built everything else.
- Share what didn't work too. Part of our system didn't hold up on the final test, and saying so made the rest of our results more believable.
What's next for Keepline
- Direct connections to Slack, email and ticket systems, sending data straight into the company's Snowflake account.
- Turning on the automatic nightly fact extraction inside Snowflake, and moving project testing there too.
- A trial with a real small or medium-sized company, starting with a free scan of their knowledge risks.
- Learning from real use, so decisions about when to answer, hold back or point to a person get better with real feedback instead of 388 practice questions.
Log in or sign up for Devpost to join the conversation.