Your First Project

A step-by-step walkthrough of uploading a document, exploring it with the AI assistant, and extracting your first insights.

In this tutorial, you’ll walk through the complete Ragnerock workflow from start to finish. By the end, you’ll have uploaded a document, explored it with the Research Agent, reviewed cited sources, queried structured data, and created your first operator, covering the foundations for using Ragnerock in your own research.

No prior experience with Ragnerock is required. If you have a web browser and a document to analyze, you’re ready.

What you’ll need:

1. Sign In and Select a Project

Sign in at ragnerock.com with your account credentials. After signing in, you’ll see the project selector in the sidebar. Select an existing project or click New Project to create one.

Give your project a descriptive name like “SEC Filing Analysis”. This is where all your documents, annotations, and notebooks will live.

The project selector dropdown in the sidebar showing a list of projects with a "New Project" button at the bottom

2. Upload a Document

  1. Click the Upload button in the toolbar (or drag and drop a file onto the workspace)
  2. In the upload dialog, select or drag your PDF file
  3. Optionally assign a dataset to organize your documents
  4. Click Upload

The upload dialog showing a file selected for upload, with fields for document name and dataset assignment, and an "Upload" button

When you upload, several things happen behind the scenes:

  1. The file is uploaded to storage
  2. Text extraction pulls the readable content from the PDF
  3. Chunking splits the text into meaningful segments (paragraphs and sentences)
  4. Embedding generation creates vector representations of each chunk for semantic search

3. Check Processing Status

Processing takes a moment, anywhere from a few seconds to a couple of minutes depending on the document size.

Open the Jobs dashboard from the sidebar for detailed, real-time processing information including timelines, logs, and error details. You’ll also see a status badge in the document list as a quick indicator:

BadgeMeaning
PendingQueued for processing
ProcessingText extraction, chunking, and embedding in progress
ReadyFully processed and searchable
ErrorProcessing failed. Check the Jobs dashboard for details.

Once the status shows Ready, your document is fully indexed and searchable.

The Jobs dashboard showing a processing job with timeline, status indicators, and per-document subtask details

4. Explore the Document

In the Data section of the sidebar, you’ll see your uploaded files listed with their name and metadata. Click the Open button on any file to open it in the document viewer, where you can see the actual PDF alongside the extracted content.

The document viewer shows:

  • Pages: The document broken down page by page, with extracted text for each
  • Chunks: The document split into semantic segments (paragraphs and sentences). These are the units the Research Agent searches.
  • Metadata: File size, upload date, processing status, and any custom metadata

The document viewer showing a page from the 10-K filing with the pages panel on the left and the extracted text displayed on the right

Take a moment to browse through the extracted text. If you uploaded a 10-K filing, you’ll see sections like “Risk Factors,” “Management’s Discussion and Analysis,” financial statements, and notes. All of this is now searchable, not just by keywords, but by meaning.

5. Open a Notebook and Ask Questions

Notebooks are interactive workspaces where you can have a conversation with the Research Agent about your documents and then turn those insights into data.

  1. Navigate to the Notebooks section in the sidebar
  2. Click New to create a notebook and give it a name like “10-K Exploration”
  3. Click the + button in the message input to attach your uploaded document. This tells the agent to focus on that specific file. (If you skip this, the agent searches across all your documents.)
  4. Type a question in the message input and press Enter

A notebook with the message input at the bottom, showing an attached document badge and the "+" button for attaching documents

Try something like:

What are the most significant risk factors mentioned in this filing?

The Research Agent searches through your document, finds the relevant passages, and responds with a synthesized answer. You’ll see the response stream in. The agent formats its output with clear headings, bullet points, and most importantly, citations that link back to the original text.

The notebook showing the user's question and the agent's response with formatted text and citation markers

Here are a few more questions worth trying:

Summarize the revenue breakdown by business segment.

What does management say about their competitive position?

Are there any pending legal proceedings discussed in this filing?

Each follow-up message builds on the conversation context. If you asked about risk factors first, you can follow up with:

Which of those risk factors are new compared to the prior year’s filing?

The agent remembers what you’ve discussed and refines its analysis accordingly. Learn more about what the Research Agent can do on the Notebooks page.

6. View Citations

Every claim the Research Agent makes is backed by citations, references to specific passages in your source documents. This is fundamental to how Ragnerock works, because in financial research, you need to verify every insight against the original source.

In the agent’s response, you’ll see citation markers. Click on any citation to:

  • See the original text: the exact passage from the document that supports the claim
  • Jump to the source: navigate directly to the page and location in the original document
  • Verify the context: read the surrounding text to ensure the excerpt hasn’t been taken out of context

A citation popover showing the source document name, page number, and the exact quoted passage, with a "View in document" link

For example, when the agent says “Apple reported $383.3 billion in net sales,” you can click through to the exact line in the 10-K that states that figure.

7. Run a Query

Every Ragnerock project includes built-in tables you can query immediately with SQL. Open the Query Explorer from the sidebar and try these queries:

SELECT name, file_type, created_at
FROM documents
ORDER BY created_at DESC

This lists all documents in your project. You can also query the document_metadata table, which is a default operator included in every project:

SELECT *
FROM document_metadata
LIMIT 10

The Query Explorer showing a SQL query in the editor, with results displayed in a table below

Click Run (or press Shift+Enter) to execute the query. Results appear in a table below the editor with row counts and execution time.

You can also run queries from inside a notebook by adding a Query cell. The results become a DataFrame artifact that you can import into code cells for further analysis.

8. Create Your First Operator

Now that you’ve explored your data interactively, let’s operationalize a simple analysis. Operators define structured outputs that Ragnerock produces for every document you process.

Navigate to the Workflows section in the sidebar, click Operators, then New Operator.

Configure the operator:

  1. Name: filing_summary
  2. Description: “Extract basic filing metadata”
  3. Scope: Select Document from the dropdown

In the schema builder, add these fields:

FieldTypeConstraintsDescription
company_namestringrequiredFull legal name of the filing company
filing_typeenumrequired; values: “10-K”, “10-Q”, “8-K”, “proxy”, “other”SEC filing type
fiscal_yearstringrequiredFiscal year (e.g., “FY2024”)

Write a generation prompt:

Identify the company name, filing type, and fiscal year from this SEC filing.
Use the full legal name as it appears in the filing header.
Classify the filing type based on the document header and content.
For fiscal_year, use the format "FY2024" for the most recent year discussed.

Click Save, then create a workflow with this operator and run it on your document. Check the Jobs dashboard for progress. Once complete, query your results:

SELECT document_name, company_name, filing_type, fiscal_year
FROM filing_summary

The operator creation form with the schema builder showing the three fields configured

For more on operator design, see Operators and Workflows.

9. Export Your Results

Once you’ve found insights worth keeping, any DataFrame artifact in a notebook (from agent responses or query cells) can be imported into a Python variable for further analysis. This requires connecting your notebook to a JupyterLab kernel. Once connected, click the artifact badge and select Import. The data becomes immediately available:

# After importing a DataFrame artifact as `risk_factors`
import pandas as pd

df = pd.DataFrame(risk_factors)
print(f"Total risk factors identified: {len(df)}")
print(df.groupby('category').size().sort_values(ascending=False))

This workflow (ask questions, get structured data, analyze programmatically) is the core notebook loop. You move fluidly between natural language exploration and quantitative analysis without leaving the workspace.

What You’ve Accomplished

You’ve now completed the full Ragnerock workflow:

  1. Signed in and selected a project
  2. Uploaded a document and watched it get processed into searchable chunks
  3. Explored the document in the viewer
  4. Asked questions using the Research Agent in a notebook
  5. Verified citations linking agent responses to source text
  6. Queried built-in tables and your own operator results with SQL
  7. Created an operator to extract structured data from your documents
  8. Exported results for downstream analysis

This is the foundation for everything else in Ragnerock. From here, you can scale up: upload entire data libraries, build multi-stage workflows, and process hundreds of documents automatically.

Next Steps

  • Dive deeper into Data Sources to learn about data management, processing, and organization
  • Learn how Annotations work with operators and workflows
  • Explore Notebooks to master the interactive research workflow
  • Set up custom extraction with Operators and Workflows