Evaluating job posts
This notebook provides sample code for conducting a text analysis using EDSL, an open-source library for simulating surveys, experiments and other research with AI agents and large language models.
Using a dataset of job posts as an example, we demonstrate how to:
Import data into EDSL
Create questions about the data
Design an AI agent to answer the questions
Select a language model to generate responses
Analyze results as a formatted dataset
Technical setup
Before running the code below please ensure that you have completed setup:
Create a Coop account and activate remote inference to run surveys at the Expected Parrot server. You can use an Expected Parrot API key or your own API Keys for language models that you want to use.
Our Starter Tutorial also provides examples of EDSL basic components.
Selecting data for review
First we identify some data for review. Data can be created using the EDSL tools or imported from other sources. For purposes of this demo we import a set of job posts:
[1]:
job_posts = [
"Oversee daily operations, manage staff, and ensure customer satisfaction in a fast-paced retail environment.",
"Craft engaging and informative blog posts on health and wellness topics to boost website traffic and engage readers.",
"Analyze sales data using statistical tools to identify trends and provide actionable insights to the marketing team.",
"Prepare gourmet dishes that comply with restaurant standards and delight customers with unique flavor combinations.",
"Design creative visual content for marketing materials, including brochures, banners, and digital ads, using Adobe Creative Suite.",
"Develop, test, and maintain robust software solutions to improve business processes using Python and Java.",
"Craft coffee drinks and manage the coffee station while providing excellent customer service in a busy café.",
"Manage recruitment processes, conduct interviews, and oversee employee benefit programs to ensure a motivated workforce.",
"Assist veterinarians by preparing animals for surgery, administering injections, and providing post-operative care.",
"Design aesthetic and practical outdoor spaces for clients, from residential gardens to public parks.",
"Install and repair residential plumbing systems, including water heaters, pipes, and fixtures to ensure proper functionality.",
"Develop comprehensive marketing strategies that align with company goals, including digital campaigns and branding efforts.",
"Install, maintain, and repair electrical wiring, equipment, and fixtures to ensure safe and effective operation.",
"Provide personalized fitness programs and conduct group fitness classes to help clients achieve their health goals.",
"Diagnose and repair automotive issues, perform routine maintenance, and ensure vehicles meet safety standards.",
"Lead creative campaigns, from concept through execution, coordinating with graphic designers and content creators.",
"Educate students in mathematics using innovative teaching strategies to enhance understanding and interest in the subject.",
"Drive sales through engaging customer interactions, understanding client needs, and providing product solutions.",
"Fold dough into pretzel shapes ensuring each is uniformly twisted and perfectly salted before baking.",
"Address customer inquiries and issues via phone and email, ensuring high levels of satisfaction and timely resolution.",
]
Constructing questions about the data
Next we create some questions about the data. EDSL provides a variety of question types that we can choose from based on the form of the response that we want to get back from the model (multiple choice, free text, checkbox, linear scale, etc.). Learn more about question types.
Note that we use a {{ placeholder }}
in each question text in order to parameterize the questions with the individual job posts in the next step:
[2]:
from edsl import (
QuestionList,
QuestionLinearScale,
QuestionMultipleChoice,
QuestionYesNo,
QuestionFreeText,
)
q1 = QuestionList(
question_name="category_list",
question_text="Draft a list of increasingly specific categories for the following job post: {{ job_post }}",
max_list_items=3, # optional
)
q2 = QuestionLinearScale(
question_name="specific_scale",
question_text="How specific is this job post: {{ job_post }}",
question_options=[0, 1, 2, 3, 4, 5],
option_labels={0: "Unclear", 1: "Not at all specific", 5: "Highly specific"},
)
q3 = QuestionMultipleChoice(
question_name="skill_choice",
question_text="What is the skill level required for this job: {{ job_post }}",
question_options=["Entry level", "Intermediate", "Advanced", "Expert"],
)
q4 = QuestionYesNo(
question_name="technical_yn",
question_text="Is this a technical job? Job post: {{ job_post }}",
)
q5 = QuestionFreeText(
question_name="rewrite_text",
question_text="""Draft an improved version of the following job post: {{ job_post }}""",
)
Building a survey
We combine the questions into a survey in order to administer them together:
[3]:
from edsl import Survey
questions = [q1, q2, q3, q4, q5]
survey = Survey(questions)
If we want the agent/model to have information about prior questions in the survey we can add targeted or full memories (learn more about adding survey rules/logic):
[4]:
# Memory of a specific question is presented with another question:
# survey = survey.add_targeted_memory(q2, q1)
# Full memory of all prior questions is presented with each question (token-intensive):
# survey = survey.set_full_memory_mode()
Adding data to the questions
We add the contents of each ticket into each question as an independent “scenario” for review. This allows us to create versions of the questions for each job post and deliver them to the model all at once. EDSL provides many methods for generating scenarios from different data sources (PDFs, CSVs, docs, images, tables, dicts, etc.). Here we import the list from above:
[5]:
from edsl import ScenarioList, Scenario
scenarios = ScenarioList.from_list("job_post", job_posts)
Designing AI agents
A key feature of EDSL is the ability to create personas for AI agents that the language models are prompted to use in generating responses to the questions. This is done by passing a dictionary of traits to Agent objects:
[6]:
from edsl import AgentList, Agent
agent = Agent(traits={"persona":"You are a labor economist."})
Selecting language models
EDSL allows us to select the language models to use in generating results. To see all available services:
[7]:
from edsl import ModelList, Model
Model.services()
[7]:
Service Name | |
---|---|
0 | anthropic |
1 | azure |
2 | bedrock |
3 | deep_infra |
4 | deepseek |
5 | |
6 | groq |
7 | mistral |
8 | ollama |
9 | openai |
10 | perplexity |
11 | together |
12 | xai |
A current list of available models can be viewed here.
Here we select GPT 4o (if no model is specified, this model is also used by default):
[8]:
model = Model("gpt-4o")
Running the survey
We run the survey by adding the scenarios, agent and model with the by()
method and then calling the run()
method:
[9]:
results = survey.by(scenarios).by(agent).by(model).run()
Job UUID | 569cd72c-6973-46a6-a424-661d30c19c7f |
Progress Bar URL | https://www.expectedparrot.com/home/remote-job-progress/569cd72c-6973-46a6-a424-661d30c19c7f |
Exceptions Report URL | None |
Results UUID | 26700dc5-eb44-476b-bd5b-15de80da5873 |
Results URL | https://www.expectedparrot.com/content/26700dc5-eb44-476b-bd5b-15de80da5873 |
This generates a dataset of Results
that we can analyze with built-in methods for data tables, dataframes, SQL, etc. We can see a list of all the components that can be analyzed:
[10]:
results.columns
[10]:
0 | |
---|---|
0 | agent.agent_index |
1 | agent.agent_instruction |
2 | agent.agent_name |
3 | agent.persona |
4 | answer.category_list |
5 | answer.rewrite_text |
6 | answer.skill_choice |
7 | answer.specific_scale |
8 | answer.technical_yn |
9 | cache_keys.category_list_cache_key |
10 | cache_keys.rewrite_text_cache_key |
11 | cache_keys.skill_choice_cache_key |
12 | cache_keys.specific_scale_cache_key |
13 | cache_keys.technical_yn_cache_key |
14 | cache_used.category_list_cache_used |
15 | cache_used.rewrite_text_cache_used |
16 | cache_used.skill_choice_cache_used |
17 | cache_used.specific_scale_cache_used |
18 | cache_used.technical_yn_cache_used |
19 | comment.category_list_comment |
20 | comment.rewrite_text_comment |
21 | comment.skill_choice_comment |
22 | comment.specific_scale_comment |
23 | comment.technical_yn_comment |
24 | generated_tokens.category_list_generated_tokens |
25 | generated_tokens.rewrite_text_generated_tokens |
26 | generated_tokens.skill_choice_generated_tokens |
27 | generated_tokens.specific_scale_generated_tokens |
28 | generated_tokens.technical_yn_generated_tokens |
29 | iteration.iteration |
30 | model.frequency_penalty |
31 | model.inference_service |
32 | model.logprobs |
33 | model.max_tokens |
34 | model.model |
35 | model.model_index |
36 | model.presence_penalty |
37 | model.temperature |
38 | model.top_logprobs |
39 | model.top_p |
40 | prompt.category_list_system_prompt |
41 | prompt.category_list_user_prompt |
42 | prompt.rewrite_text_system_prompt |
43 | prompt.rewrite_text_user_prompt |
44 | prompt.skill_choice_system_prompt |
45 | prompt.skill_choice_user_prompt |
46 | prompt.specific_scale_system_prompt |
47 | prompt.specific_scale_user_prompt |
48 | prompt.technical_yn_system_prompt |
49 | prompt.technical_yn_user_prompt |
50 | question_options.category_list_question_options |
51 | question_options.rewrite_text_question_options |
52 | question_options.skill_choice_question_options |
53 | question_options.specific_scale_question_options |
54 | question_options.technical_yn_question_options |
55 | question_text.category_list_question_text |
56 | question_text.rewrite_text_question_text |
57 | question_text.skill_choice_question_text |
58 | question_text.specific_scale_question_text |
59 | question_text.technical_yn_question_text |
60 | question_type.category_list_question_type |
61 | question_type.rewrite_text_question_type |
62 | question_type.skill_choice_question_type |
63 | question_type.specific_scale_question_type |
64 | question_type.technical_yn_question_type |
65 | raw_model_response.category_list_cost |
66 | raw_model_response.category_list_one_usd_buys |
67 | raw_model_response.category_list_raw_model_response |
68 | raw_model_response.rewrite_text_cost |
69 | raw_model_response.rewrite_text_one_usd_buys |
70 | raw_model_response.rewrite_text_raw_model_response |
71 | raw_model_response.skill_choice_cost |
72 | raw_model_response.skill_choice_one_usd_buys |
73 | raw_model_response.skill_choice_raw_model_response |
74 | raw_model_response.specific_scale_cost |
75 | raw_model_response.specific_scale_one_usd_buys |
76 | raw_model_response.specific_scale_raw_model_response |
77 | raw_model_response.technical_yn_cost |
78 | raw_model_response.technical_yn_one_usd_buys |
79 | raw_model_response.technical_yn_raw_model_response |
80 | scenario.job_post |
81 | scenario.scenario_index |
For example, we can filter, sort, select, limit, shuffle, sample and print some components of results in a table:
[11]:
(
results
.filter("specific_scale in [3,4,5]")
.sort_by("skill_choice")
.select(
"model",
"persona",
"job_post",
"category_list",
"specific_scale",
"skill_choice",
"technical_yn",
)
)
[11]:
model.model | agent.persona | scenario.job_post | answer.category_list | answer.specific_scale | answer.skill_choice | answer.technical_yn | |
---|---|---|---|---|---|---|---|
0 | gpt-4o | You are a labor economist. | Address customer inquiries and issues via phone and email, ensuring high levels of satisfaction and timely resolution. | ['Customer Service', 'Customer Support Specialist', 'Phone and Email Support Representative'] | 3 | Entry level | No |
1 | gpt-4o | You are a labor economist. | Design creative visual content for marketing materials, including brochures, banners, and digital ads, using Adobe Creative Suite. | ['Graphic Design', 'Marketing Graphic Design', 'Adobe Creative Suite Marketing Design'] | 5 | Intermediate | Yes |
2 | gpt-4o | You are a labor economist. | Assist veterinarians by preparing animals for surgery, administering injections, and providing post-operative care. | ['Animal Care', 'Veterinary Support', 'Veterinary Surgical Assistant'] | 5 | Intermediate | No |
3 | gpt-4o | You are a labor economist. | Install and repair residential plumbing systems, including water heaters, pipes, and fixtures to ensure proper functionality. | ['Plumbing Jobs', 'Residential Plumbing Jobs', 'Residential Plumbing Installation and Repair Jobs'] | 5 | Intermediate | Yes |
4 | gpt-4o | You are a labor economist. | Diagnose and repair automotive issues, perform routine maintenance, and ensure vehicles meet safety standards. | ['Automotive Technician', 'Automotive Technician - Maintenance and Repair', 'Automotive Technician - Maintenance, Repair, and Safety Compliance'] | 3 | Intermediate | Yes |
5 | gpt-4o | You are a labor economist. | Fold dough into pretzel shapes ensuring each is uniformly twisted and perfectly salted before baking. | ['Food Preparation', 'Baking', 'Pretzel Baking'] | 5 | Intermediate | No |
[12]:
results.select("rewrite_text")
[12]:
answer.rewrite_text | |
---|---|
0 | Job Title: Retail Operations Manager Job Description: We are seeking a dynamic and experienced Retail Operations Manager to lead and inspire our team in a vibrant and fast-paced retail environment. In this role, you will be responsible for overseeing daily operations, managing and developing staff, and ensuring an exceptional customer experience. Your leadership will be pivotal in driving efficiency, enhancing team performance, and achieving our business goals. Key Responsibilities: - Oversee and coordinate daily retail operations to ensure smooth and efficient functioning. - Lead, mentor, and develop a diverse team of staff to achieve their full potential. - Implement strategies to enhance customer satisfaction and ensure an outstanding shopping experience. - Monitor inventory levels and coordinate with suppliers to maintain optimal stock levels. - Analyze sales data to identify trends and develop strategies to improve sales performance. - Ensure compliance with company policies and industry regulations. - Foster a positive and inclusive work environment that encourages collaboration and innovation. Qualifications: - Proven experience in retail management or a similar role. - Strong leadership and team management skills. - Excellent communication and interpersonal abilities. - Ability to thrive in a fast-paced, dynamic environment. - Strong problem-solving skills and attention to detail. - Proficiency in retail management software and MS Office Suite. Join our team and play a key role in shaping the future of our retail operations. Apply today to make a meaningful impact in a company that values innovation and excellence. |
1 | We are seeking a talented writer to create captivating and informative blog posts on health and wellness topics. Your work will play a crucial role in enhancing our website's traffic and engaging our readers. If you have a passion for health and wellness and a knack for crafting compelling content, we'd love to hear from you! |
2 | Job Title: Sales Data Analyst Job Description: We are seeking a skilled Sales Data Analyst to join our dynamic team. In this role, you will leverage your expertise in statistical analysis to examine sales data, identify key trends, and deliver actionable insights that will empower our marketing team to make informed decisions. Key Responsibilities: - Utilize advanced statistical tools and techniques to analyze sales data. - Identify patterns, trends, and correlations within the data to uncover valuable insights. - Collaborate with the marketing team to translate data findings into strategic recommendations. - Prepare comprehensive reports and visualizations to effectively communicate insights. - Continuously monitor data quality and implement improvements to enhance data accuracy. Qualifications: - Proven experience in data analysis, preferably in a sales or marketing environment. - Proficiency in statistical software and data visualization tools. - Strong analytical and problem-solving skills. - Excellent communication skills to convey complex data insights clearly and concisely. - Ability to work collaboratively with cross-functional teams. Join us and play a pivotal role in driving our marketing strategies through data-driven insights! |
3 | Join our culinary team as a Gourmet Chef, where your creativity and expertise will shine! We are seeking a talented individual to craft exquisite dishes that meet our high restaurant standards and captivate our guests with innovative and delightful flavor combinations. If you have a passion for culinary excellence and a flair for creating memorable dining experiences, we would love to hear from you. |
4 | Join our dynamic team as a Creative Designer! We are seeking a talented individual to craft visually stunning marketing materials that captivate and engage. Your role will involve designing innovative brochures, eye-catching banners, and compelling digital ads using Adobe Creative Suite. If you have a keen eye for design and a passion for creativity, we would love to hear from you! |
5 | Join our dynamic team as a Software Developer, where you'll have the opportunity to design, implement, and sustain cutting-edge software solutions that enhance business operations. We're looking for someone proficient in Python and Java to drive innovation and efficiency in our processes. If you're passionate about leveraging technology to solve complex problems and improve organizational performance, we want to hear from you! |
6 | Join Our Team as a Barista at Our Bustling Café! Are you passionate about crafting exceptional coffee experiences? We are seeking an enthusiastic and skilled Barista to join our vibrant team. In this role, you will have the opportunity to create a variety of delicious coffee beverages and ensure the smooth operation of our coffee station. Your commitment to delivering outstanding customer service will be key in providing our patrons with memorable visits. Key Responsibilities: - Expertly prepare and serve a range of coffee drinks with precision and flair. - Maintain and manage the coffee station, ensuring cleanliness and efficiency. - Engage with customers to provide a welcoming and personalized service experience. - Collaborate with team members to uphold our café's high standards and positive atmosphere. Qualifications: - Previous experience as a barista or in a similar role is preferred. - Strong customer service skills and a passion for coffee. - Ability to thrive in a fast-paced environment and multitask effectively. - Excellent communication and teamwork abilities. If you have a love for coffee and a dedication to customer satisfaction, we would love to hear from you. Apply today to become a part of our dynamic café community! |
7 | Job Title: Human Resources Manager Job Description: We are seeking a dynamic and experienced Human Resources Manager to join our team. In this pivotal role, you will be responsible for managing the end-to-end recruitment processes, conducting comprehensive interviews, and overseeing our employee benefit programs. Your efforts will ensure that we maintain a motivated and high-performing workforce. Key Responsibilities: - Lead and manage the full recruitment cycle, from sourcing and interviewing to onboarding new talent. - Conduct thorough and insightful interviews to identify top candidates who align with our company culture and values. - Oversee and continuously improve our employee benefit programs to enhance employee satisfaction and retention. - Collaborate with department heads to understand their staffing needs and develop effective recruitment strategies. - Foster a positive work environment that encourages employee engagement and professional growth. Qualifications: - Proven experience in human resources management, particularly in recruitment and benefits administration. - Strong interpersonal and communication skills. - Ability to work collaboratively with diverse teams and manage multiple priorities. - A strategic thinker with a proactive approach to problem-solving. Join us and contribute to building a motivated and thriving workforce. Apply today! |
8 | Join Our Team as a Veterinary Assistant! Are you passionate about animal care and looking to make a difference in the lives of pets and their families? We are seeking a dedicated and compassionate Veterinary Assistant to support our veterinarians in delivering exceptional care. Key Responsibilities: - Prepare animals for surgery with care and precision - Administer injections and medications as directed by veterinarians - Provide attentive post-operative care to ensure a smooth recovery - Assist with routine check-ups and other veterinary procedures What We Offer: - A supportive and collaborative work environment - Opportunities for professional growth and development - The chance to work with a team that values compassion and excellence in animal care If you have a love for animals and a commitment to their well-being, we would love to hear from you. Apply today to join our dedicated team! |
9 | Join our team as a Landscape Designer, where you'll have the opportunity to create beautiful and functional outdoor environments that inspire and delight. From transforming residential gardens into personal oases to designing vibrant public parks that enhance community life, your work will have a lasting impact. If you have a passion for blending aesthetics with practicality and a keen eye for detail, we want to hear from you. Apply today to help shape the outdoor spaces of tomorrow. |
10 | Join our team as a Residential Plumbing Specialist! We are seeking a skilled professional to install and repair plumbing systems in residential settings. Your expertise will be essential in ensuring the proper functionality of water heaters, pipes, and fixtures. If you are committed to delivering high-quality service and have a keen eye for detail, we would love to hear from you. Apply today to be part of a dynamic team dedicated to excellence in plumbing solutions. |
11 | Join our team as a Marketing Strategist! We are seeking a creative and driven individual to develop innovative marketing strategies that align with our company's objectives. In this role, you will design and implement comprehensive plans, including impactful digital campaigns and cohesive branding initiatives. If you are passionate about driving brand success and eager to make a significant impact, we would love to hear from you! |
12 | Job Title: Electrical Technician Job Description: Are you a skilled electrical technician with a passion for ensuring safe and efficient operations? We are seeking a dedicated professional to join our team. In this role, you will be responsible for installing, maintaining, and repairing electrical wiring, equipment, and fixtures. Your expertise will be crucial in guaranteeing the safety and effectiveness of our electrical systems. Key Responsibilities: - Install electrical wiring and equipment according to industry standards and safety regulations. - Perform routine maintenance to ensure optimal performance of electrical systems. - Diagnose and repair electrical issues promptly to minimize downtime. - Collaborate with team members to enhance operational efficiency and safety. - Maintain accurate records of all installations, maintenance, and repairs. Qualifications: - Proven experience as an electrical technician or similar role. - Strong knowledge of electrical systems and safety procedures. - Excellent problem-solving skills and attention to detail. - Ability to work independently and as part of a team. - Relevant certifications or licenses are preferred. Join us in delivering exceptional service and safety in every project. Apply today to be a part of our dynamic team! |
13 | Join our dynamic team as a Fitness Coach, where you'll have the opportunity to craft personalized fitness programs and lead engaging group fitness classes. Your expertise will guide clients on their journey to achieving their health and wellness goals. If you're passionate about inspiring others and fostering a supportive fitness community, we want to hear from you! |
14 | Job Title: Automotive Technician Job Description: We are seeking a skilled Automotive Technician to join our team. In this role, you will be responsible for diagnosing and repairing automotive issues, performing routine maintenance, and ensuring that all vehicles meet stringent safety standards. Key Responsibilities: - Accurately diagnose and troubleshoot mechanical and electrical problems in vehicles. - Perform routine maintenance tasks such as oil changes, tire rotations, and brake inspections. - Ensure all vehicles comply with safety regulations and standards. - Maintain detailed records of services performed and parts used. - Communicate effectively with customers about their vehicle needs and repair timelines. Qualifications: - Proven experience as an automotive technician or mechanic. - Strong understanding of automotive systems and components. - Excellent problem-solving skills and attention to detail. - Ability to work independently and as part of a team. - Certification from a recognized automotive program is preferred. Join us and be part of a dedicated team committed to providing top-quality automotive service. |
15 | Job Title: Creative Campaign Lead Are you a visionary leader with a passion for driving innovative campaigns from concept to execution? We are seeking a dynamic Creative Campaign Lead to spearhead our creative initiatives. In this role, you will collaborate closely with talented graphic designers and content creators to bring compelling ideas to life. If you thrive in a fast-paced environment and have a knack for transforming concepts into impactful campaigns, we want to hear from you! Key Responsibilities: - Lead the development and execution of creative campaigns, ensuring alignment with brand strategy and objectives. - Collaborate with graphic designers and content creators to produce high-quality, engaging content. - Oversee the entire campaign process, from initial brainstorming sessions through to final execution and evaluation. - Ensure all creative materials meet the highest standards of quality and creativity. - Coordinate cross-functional teams to ensure seamless workflow and communication. Qualifications: - Proven experience in leading creative campaigns from concept to completion. - Strong leadership and project management skills. - Excellent communication and collaboration abilities. - A keen eye for design and attention to detail. - Ability to thrive in a dynamic, fast-paced environment. Join us and be at the forefront of crafting innovative and memorable campaigns that resonate with audiences. Apply today! |
16 | Join our team as a Mathematics Educator, where you'll inspire and engage students using innovative teaching strategies designed to deepen their understanding and spark their interest in mathematics. We're looking for a passionate educator who can transform complex concepts into accessible and exciting learning experiences. If you're committed to fostering a dynamic and supportive classroom environment, we invite you to apply and help shape the next generation of mathematicians! |
17 | Join our team and play a pivotal role in driving sales by creating meaningful customer interactions. You'll have the opportunity to understand client needs deeply and offer tailored product solutions that exceed their expectations. If you are passionate about building relationships and delivering exceptional service, we would love to hear from you! |
18 | Join our team as a Pretzel Artisan! We are seeking a detail-oriented individual to expertly fold dough into classic pretzel shapes. Your role will involve ensuring each pretzel is uniformly twisted and perfectly salted, ready to be baked to perfection. If you have a passion for precision and a love for creating delicious baked goods, we’d love to hear from you! |
19 | Join our team as a Customer Support Specialist! In this role, you will be the first point of contact for our valued customers, addressing their inquiries and resolving any issues they may encounter via phone and email. We are looking for someone who is dedicated to delivering exceptional service, ensuring high levels of customer satisfaction, and providing timely and effective solutions. If you have a passion for helping others and thrive in a fast-paced environment, we want to hear from you! |
Posting content to the Coop
We can post any objects to the Coop, including this notebook. Objects can be updated or modified at your Coop account, and shared with others or stored privately (default visibility is unlisted):
[13]:
survey.push(description = "Example survey: Job posts analysis", visibility = "public")
[13]:
{'description': 'Example survey: Job posts analysis',
'object_type': 'survey',
'url': 'https://www.expectedparrot.com/content/bbac6846-9857-46b4-9bf8-9508a068106d',
'uuid': 'bbac6846-9857-46b4-9bf8-9508a068106d',
'version': '0.1.45.dev1',
'visibility': 'public'}
[14]:
from edsl import Notebook
n = Notebook(path = "evaluating_job_posts.ipynb")
[15]:
info = n.push(description = "Example text analysis: evaluating job posts", visibility = "public")
info
[15]:
{'description': 'Example text analysis: evaluating job posts',
'object_type': 'notebook',
'url': 'https://www.expectedparrot.com/content/91eb58b7-7740-4f12-8786-4424d0ed4bab',
'uuid': '91eb58b7-7740-4f12-8786-4424d0ed4bab',
'version': '0.1.45.dev1',
'visibility': 'public'}
To update an object at the Coop:
[16]:
n = Notebook(path = "evaluating_job_posts.ipynb") # resave the object
n.patch(uuid = info["uuid"], value = n)
[16]:
{'status': 'success'}